- Two spaces for indentation, no tabs
- Use bash 5 syntax:
[[ ]]for conditionals, not[ ]. Don't quote variables inside[[ ]](e.g.,[[ -n $var ]]not[[ -n "$var" ]])
All commands start with omakub-. Prefixes indicate purpose:
app- app/app-folder managementcmd-- check if commands exist, misc utility commandspkg-- package management helpersenv-- envs variable managementfont-- fonts managementkeybindings-- GNOME keybindings managementrefresh-- copy default config to user's~/.config/restart-- restart a componentlaunch-- open applicationsinstall-- install optional softwaretoggle-- toggle features on/offtheme-- theme managementupdate-- update components
Use these instead of raw shell commands:
omakub-cmd-missing/omakub-cmd-present- check for commandsomakub-pkg-missing/omakub-pkg-present- check for packagesomakub-pkg-add- install packages (from APT)
config/- default configs copied to~/.config/default/themed/*.tpl- templates with{{ variable }}placeholders for theme colorsthemes/*/colors.toml- theme color definitions (accent, background, foreground, color0-15)
To copy a default config to user config with automatic backup:
omakub-refresh-config fastfetch/config.jsoncThis copies ~/.local/share/omakub/config/fastfetch/config.jsonc to ~/.config/fastfetch/config.jsonc.
To create a new migration, run omakub-dev-add-migration --no-edit. This creates a migration file named after the unix timestamp of the last commit.
Migration format:
- First is shebang line
- Start with an
echodescribing what the migration does - Use
$OKUB_PATHto reference the omakub directory