7 KiB
Omarchy Install Script — AI Prompt
This is a ready-to-paste prompt for any capable AI to generate a customized Omarchy-derived install script that integrates these dotfiles.
You are going to create a Linux install shell script derived from Omarchy (DHH's opinionated Arch + Hyprland setup — https://omarchy.org, https://github.com/basecamp/omarchy). Target: single-user Arch-based Hyprland desktop.
Produce a clean, idempotent install.sh (bash, set -euo pipefail) plus supporting files, structured into small sourced functions so each step is auditable. Do not leave stubs, dead menu entries, or commented-out code. If a removal empties a parent menu, remove the parent too.
1. Packages to remove from the install
- Shell tools:
try - TUIs: Lazydocker, Clamp (match Omarchy's spelling —
cliamp/climp) - GUIs: Obsidian, Pinta, Signal, OBS Studio, Kdenlive
- Commercial apps: remove every entry in Omarchy's "Commercial apps" install group and the "Commercial apps" menu/submenu itself.
- Default web apps (frameless PWA wrappers): remove all of them — the install hook, every generated
.desktopfile, and shipped icons.
2. Browser swap
- Do not install Chromium.
- Install Brave Beta (https://brave.com/origin/linux/beta/) and wire it as default everywhere Omarchy referenced Chromium:
xdg-mimedefaults,$BROWSER, Hyprland keybinds, walker/wofi entries, any remaining PWA launcher. - Prefer an official scriptable Arch install path for the Beta channel; if no Beta AUR package exists, fall back to the Beta artifact from the URL above via a documented method. Do not silently substitute stable Brave.
3. Terminal swap — Alacritty → WezTerm, themed by Omarchy
- Replace Alacritty with WezTerm everywhere Omarchy sets the default terminal:
$TERMINAL, HyprlandSuper+Return(and any terminal keybind), walker/wofi,xdgterminal handling, and any scripts that callalacritty(e.g. Omarchy'somarchy-launch-*helpers). - Make WezTerm follow Omarchy's live theme. Omarchy switches themes by symlinking the active theme into
~/.config/omarchy/current/theme/and each theme ships analacritty.toml. Implement this:- Add a generator (
omarchy-wezterm-themeor similar) that converts the current theme'salacritty.tomlcolor table into a WezTerm color table written to~/.config/omarchy/current/theme/wezterm.lua(returning a Lua table offoreground/background/cursor/ansi/brights/selection). - Run the generator during install and hook it into
omarchy-theme-setso it regenerates on every theme switch, then signals WezTerm to reload (WezTerm auto-reloads config; ensureautomatically_reload_config = true). - Ship a WezTerm config that loads it:
local ok, theme = pcall(dofile, wezterm.home_dir .. "/.config/omarchy/current/theme/wezterm.lua"); if ok then config.colors = theme end, with a safe fallback if the file is absent.
- Add a generator (
- Confirm every Omarchy theme that previously had
alacritty.tomlnow yields a working WezTerm palette.
4. Integrating these dotfiles (repo: brianpooe/dotfiles)
These dotfiles are the source of truth for editor/shell/terminal config. Integrate them into the install without breaking Omarchy's theme switcher. Read the repo first; key facts:
- Theming is env-var-driven (Kanagawa).
.zshrcreadsKANAGAWA_THEME(wave|dragon) and exportsNVIM_THEME / TMUX_THEME / STARSHIP_THEME / WEZTERM_THEME / STARSHIP_CONFIG, and writes~/.config/tmux/current-theme.conf.wezterm.lua,tmux.conf,theme.lua(kanagawa.nvim) and starship all consume these. - This conflicts with Omarchy's per-app theme switching. Resolve it explicitly — pick one and implement consistently, do not half-wire both:
- Option A (recommended): WezTerm follows Omarchy's live theme (section 3); the editor/shell stack (nvim, tmux, starship) stays Kanagawa via the dotfiles'
KANAGAWA_THEMEenv chain, independent of Omarchy. Document that terminal colors and editor colors are decoupled by design. To avoid a clash, drop the dotfiles' hardcoded Kanagawa palette fromwezterm.luaand replace it with the Omarchy-theme loader from section 3. - Option B: Make nvim/tmux/starship also follow Omarchy themes by having
omarchy-theme-setsetKANAGAWA_THEME/regenerate the selector files — only viable for Omarchy themes that have a Kanagawa-equivalent; state the limitation.
- Option A (recommended): WezTerm follows Omarchy's live theme (section 3); the editor/shell stack (nvim, tmux, starship) stays Kanagawa via the dotfiles'
- Deploy via symlinks (GNU stow or
ln -sfn), idempotently, mirroring the repo's own README mapping:nvim, tmux, starship, lazygit, wezterm, zed → ~/.config/...;.config/.ideavimrc → ~/.ideavimrc;.zshrc,.gitconfig → ~. Back up any pre-existing target before symlinking. Clone the repo to~/dotfiles(or accept a path arg) and link from there sogit pullkeeps things live. - Distro: the dotfiles are Arch-native — no dnf/Fedora cleanup needed. Just install their dependencies via Omarchy's package step (pacman/yay):
zsh, zsh-syntax-highlighting, zsh-autosuggestions, fzf, fd, bat, eza, zoxide, tmux, lazygit, neovim, starship. The.zshrcalready sources zsh plugins from/usr/share/zsh/plugins/...and fzf from/usr/share/fzf/, and itsupdatealias already usespacman -Syu. Installnvmper the dotfiles' note and tpm (~/.tmux/plugins/tpm) so tmux works on first launch. - WezTerm config reconciliation: the repo's
wezterm.luais already Linux-only (no macOS/Windows branches). Use it as the base, but swap its Kanagawa-by-env palette for the Omarchy-theme loader (section 3) so the chosen option above holds. - Set zsh as the login shell if the dotfiles assume it (they do —
.zshrcauto-attaches tmux).
5. Menu changes — Super + Alt + Space launcher
Remove these submenus and all their entries:
- Setup menu: System Sleep, DNS, Security
- Install menu: Web App, Services, TUI, Development, Editor, Terminal, Browser, AI, Gaming, Windows
If "Setup" or "Install" has no children left, remove the parent. Update keybind hints/docs referencing removed menus.
6. Deliverables
install.sh— idempotent entry point, safe to re-run.- Sourced modules (e.g.
lib/packages.sh,lib/menus.sh,lib/browser.sh,lib/terminal.sh,lib/dotfiles.sh). - Modified launcher menu config (match Omarchy's walker/wofi/rofi).
- The WezTerm theme generator + the
omarchy-theme-sethook. README.md: prerequisites, what was removed vs upstream Omarchy, the terminal/browser swaps, how dotfiles are linked, and the theming decision (Option A/B) you made and why.- A diff-style summary listing every removal, both swaps, and each dotfile integration point, so a reviewer can verify nothing was missed.
Constraints
- Linux/Arch only. No macOS/Windows/WSL branches (the dotfiles are already stripped of these — keep them that way).
- Don't invent package or Omarchy script names — if unsure what Omarchy calls something, say so and ask rather than guess.
- shellcheck-clean. No
curl | bashfrom untrusted sources. Pin versions where Omarchy does. - Begin by listing the files you plan to produce, then output each in full.