OMARCHY-INVENTORY — what Omarchy actually is (from the cloned repo)
Enumerated directly from the upstream checkout (v4.0.0.alpha), not from memory.
Component map
| Layer | Implementation | Location upstream |
|---|---|---|
| Compositor | Hyprland w/ Lua config (hyprland.lua + hl.*/o.* API) |
config/hypr/, default/hypr/ |
| Desktop shell | Quickshell QML app: top bar, launcher, menu, notifications, clipboard, emojis, lock, settings panels | shell/ (shell.qml, Ui/, plugins/, services/, Commons/) |
| Bar config | JSON-driven widget layout | config/omarchy/shell.json, user override ~/.config/omarchy/shell.json |
| Menu / launcher | In-shell plugin (omarchy.menu) driven by IPC (omarchy-menu) |
bin/omarchy-menu, shell plugins |
| Notifications | Shell-native (IPC: dismiss/invoke/history) | shell services |
| Lock/idle | Shell idle service + hyprlock; timers in shell.json (idle.screensaver/lock) |
shell, bin/omarchy-apply-lock |
| Screenshots/OCR/recording | grim/slurp/hyprpicker/tesseract/gpu-screen-recorder behind omarchy-capture-* |
bin/ |
| Theming | 22 themes as colors.toml + backgrounds/; templates rendered to kitty/foot/alacritty/ghostty/btop/neovim/vscode/etc.; state under ~/.local/state/omarchy/current/ |
themes/, default/themed/*.tpl, bin/omarchy-theme-* |
| CLI | ~200 omarchy-* commands + omarchy router with groups & metadata comments |
bin/, GROUP_DESCRIPTIONS |
| Env model | $OMARCHY_PATH (uwsm session env) points at deployed tree /usr/share/omarchy; every script/QML resolves through it |
default/uwsm/env.d/10-omarchy |
| Shell rc | bash (not zsh!): default/bashrc → sources $OMARCHY_PATH/default/bash/rc |
default/bash* |
| Fonts | JetBrains Mono Nerd (basic), iA Writer, omarchy glyph font | default/fonts/ |
| Login | SDDM (+ optional uwsm session), Plymouth/Limine for full installs | install/login/, default/sddm/ |
Installer side effects (what we deliberately do NOT run)
install/config/all.sh touches: theme-system, lockout limits, PAM, ssh paths,
docker, snapper, locate db, systemd services, firewall.install/user/all.sh: git identity, chromium policies, xcompose, mise,
hardware fixes (asus/framework/dell/nvidia).install/post-install/: pacman hooks, udev rules, localdb.
Arch/CachyOS-hostile or out-of-scope pieces: limine bootloader install,
plymouth, kernel selection (linux-ptl), nvidia dkms matrix, pacman.conf
management, ISO provisioning, bash-as-login-shell. de-omarchy extracts only
the UI layer and leaves all of this to the host distro.
Runtime contract the UI depends on
OMARCHY_PATHenv var pointing at a tree containingbin/ shell/ themes/ applications/ default/ config/.~/.local/state/omarchy/current/theme.name+ generated theme modules on the
Lua package.path (written byomarchy-theme-set).- Hyprland Lua bootstrap adding
$OMARCHY_PATH/?.luato package.path — done bydefault/hypr/bootstrap.lua, which our layer loads viadofile. quickshell -n -p "$OMARCHY_PATH/shell"supervised bybin/omarchy-launch-shell.
de-omarchy satisfies all four with its own deployment root
(/usr/share/de-omarchy) so vendored code runs byte-for-byte unmodified.