dotfiles/omarchy
2026-06-07 17:35:15 +00:00
..
files feat(omarchy): tag WezTerm window in Hyprland for terminal opacity 2026-06-07 17:35:15 +00:00
lib feat(omarchy): tag WezTerm window in Hyprland for terminal opacity 2026-06-07 17:35:15 +00:00
install.sh feat: add layered Omarchy installer with WezTerm + Brave Origin 2026-06-07 17:25:44 +00:00
README.md feat(omarchy): tag WezTerm window in Hyprland for terminal opacity 2026-06-07 17:35:15 +00:00

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

  1. Clones Omarchy to ~/.local/share/omarchy (override with OMARCHY_REPO / OMARCHY_REF).
  2. Patches the package list (lib/packages.sh) before Omarchy installs.
  3. Runs Omarchy's own installer (install.sh) for the full system setup.
  4. 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.sh is 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 package brave-origin-beta-bin) and set as default with omarchy-default-browser.
  • Because omarchy-launch-webapp routes 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 id org.wezfurlong.wezterm.desktop). Omarchy's Super+Return runs xdg-terminal-exec, which honors that file.
  • WezTerm follows the active Omarchy theme: .config/wezterm/wezterm.lua reads ~/.config/omarchy/current/theme/colors.toml (the palette Omarchy generates for every theme), falling back to Kanagawa Wave when Omarchy is absent. A theme-set hook (~/.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_THEME env chain in .zshrc, independent of Omarchy. (WEZTERM_THEME from 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