| .. | ||
| files | ||
| lib | ||
| install.sh | ||
| README.md | ||
Omarchy customization layer
A layered installer that sets up Omarchy (Arch + Hyprland)
with these dotfiles and an opinionated set of removals and swaps. It does not
fork Omarchy — it patches the package list before Omarchy's own installer runs,
then layers customizations on top using Omarchy's documented extension points, so
it survives omarchy-update.
Usage
On a fresh Arch Linux system:
git clone <repo-url> ~/dotfiles
~/dotfiles/omarchy/install.sh
Re-apply just the customization layer after an omarchy-update (does not touch
the Omarchy core install):
~/dotfiles/omarchy/install.sh --layer-only
Then log out and back in (or reboot) to start the zsh + Hyprland session.
What it does
- Clones Omarchy to
~/.local/share/omarchy(override withOMARCHY_REPO/OMARCHY_REF). - Patches the package list (
lib/packages.sh) before Omarchy installs. - Runs Omarchy's own installer (
install.sh) for the full system setup. - Applies the layer: Brave Origin Beta as default browser, WezTerm as default terminal, dotfile deps + symlinks, and menu/theme overrides.
Changes vs. upstream Omarchy
Packages removed (from install/omarchy-base.packages)
| Category | Packages |
|---|---|
| Shell tools | tobi-try (the try tool) |
| TUIs | lazydocker, cliamp (Clamp) |
| GUIs | obsidian, pinta, signal-desktop, obs-studio, kdenlive |
| Commercial apps | 1password-beta, 1password-cli, spotify, typora, libreoffice-fresh |
| Browser | chromium (replaced by Brave Origin Beta) |
Note: current Omarchy has no "Commercial apps" menu — the commercial items are base packages, so they are removed from the package list.
- Default web apps (frameless PWA wrappers):
install/packaging/webapps.shis cleared, so none are installed. - Lazydocker TUI entry removed from
install/packaging/tuis.sh(Disk Usage kept).
Browser
- Brave Origin Beta (https://brave.com/origin/linux/beta/) installed via
Omarchy's native
omarchy-install-browser brave-origin(AUR packagebrave-origin-beta-bin) and set as default withomarchy-default-browser. - Because
omarchy-launch-webapproutes through the default browser, removing Chromium is safe once Brave Origin is the default.
Terminal
- WezTerm installed and set as the default terminal by writing
~/.config/xdg-terminals.list(desktop idorg.wezfurlong.wezterm.desktop). Omarchy'sSuper+Returnrunsxdg-terminal-exec, which honors that file. - WezTerm follows the active Omarchy theme:
.config/wezterm/wezterm.luareads~/.config/omarchy/current/theme/colors.toml(the palette Omarchy generates for every theme), falling back to Kanagawa Wave when Omarchy is absent. Atheme-sethook (~/.config/omarchy/hooks/theme-set.d/wezterm) bumps the config mtime after a theme switch so WezTerm live-reloads.
Menu (Super + Alt + Space)
Overrides are installed to ~/.config/omarchy/extensions/menu.sh (sourced by
omarchy-menu after its functions are defined, so the redefinitions win):
- Setup — removed: System Sleep, DNS, Security (kept: Audio, Wifi, Bluetooth, Power Profile, Monitors, Keybindings, Input, Defaults, Config).
- Install — removed: Web App, TUI, Service, Development, Editor, Terminal, Browser, AI, Gaming, Windows (kept: Package, AUR, Style).
The removed submenu functions still exist in Omarchy but are unreachable from the
launcher. Regenerate files/menu.sh from upstream if Omarchy's menu changes.
Theming model
Terminal and editor colors are decoupled by design (Option A):
- WezTerm follows whatever Omarchy theme is active.
- Neovim / tmux / starship stay on Kanagawa via the dotfiles'
KANAGAWA_THEMEenv chain in.zshrc, independent of Omarchy. (WEZTERM_THEMEfrom that chain is now unused.)
Files
| File | Purpose |
|---|---|
install.sh |
Entry point / orchestration |
lib/common.sh |
Helpers (logging, symlink-with-backup, paths) |
lib/packages.sh |
Patches Omarchy's package list / webapps / tuis |
lib/browser.sh |
Brave Origin Beta install + default |
lib/terminal.sh |
WezTerm install + default terminal |
lib/dotfiles.sh |
Dotfile deps (zsh, plugins, tpm, nvm) + symlinks |
lib/overrides.sh |
Installs menu overrides + WezTerm theme hook |
files/menu.sh |
Menu overrides (symlinked into Omarchy) |
files/theme-set-wezterm |
Theme-switch hook that reloads WezTerm |
files/hypr-wezterm.lua |
Hyprland rule tagging WezTerm as a terminal |