My personal Omarchy workstation configuration, managed with Chezmoi. I share it as a reference for other Omarchy users; it is not a turnkey distribution and several pieces are tied to my hardware and installed applications.
The current snapshot was last validated with Omarchy 4.0.4-1.
- Hyprland display, input, window, and autostart overrides.
- A customized Agents panel for Claude, Codex, and Grok subscription and usage information.
- A customized notification service with persistent reminder behavior.
- Guarded OpenRGB controls and an Omarchy RGB panel for an MSI MS-7E49 system.
- One-click switching between SteelSeries speaker and headset routing.
- Neru-powered mouseless navigation with custom hint, grid, and scroll controls.
- HEY CLI integration in the Omarchy menu and bar.
- A guarded local Qwen/llama.cpp server launcher.
- A searchable command palette plus small workstation helper scripts.
| Path | Contents |
|---|---|
dot_config/hypr/ |
Hyprland and display overrides |
dot_config/omarchy/ |
Shell layout, hooks, extensions, and custom plugins |
dot_local/bin/ |
Personal command-line helpers |
dot_local/share/cmds/ |
Searchable command recipes |
packages/ |
Arch and AUR recovery inventories; not applied by Chezmoi |
state/ |
Omarchy version and service snapshots; not applied by Chezmoi |
Chezmoi encodes destination attributes in source names. For example,
dot_bashrc becomes ~/.bashrc, executable_foo becomes an executable named
foo, and private_state.json becomes state.json with group and world
permissions removed. private_ controls destination permissions; it does not
hide or encrypt repository content.
.chezmoi.toml.tmpl creates a local, untracked Chezmoi configuration during
chezmoi init. It asks whether the machine is a desktop or laptop and whether
to enable three optional integrations:
| Setting | Desktop default | Laptop default | Controls |
|---|---|---|---|
machineType |
desktop |
laptop |
Desktop monitor/ICC and SlimBlade overrides versus an automatic laptop display |
enableMsiRgb |
on | off | MSI/OpenRGB configs, commands, desktop entry, state seeds, shell plugin, and command recipes |
enableArctis |
on | off | Arctis helper, service, desktop/MIME integration, autostart, and shell widget |
enableLocalQwen |
on | off | Local Qwen server launcher |
The generated values live only in ~/.config/chezmoi/chezmoi.toml. To revisit
the questions later, run chezmoi init --prompt, inspect chezmoi diff, and
then apply deliberately.
Install Chezmoi, clone the source state, and inspect the proposed changes before applying anything:
omarchy pkg add chezmoi
chezmoi init https://github.com/bandoyer/dotfiles.git
chezmoi diffOnly after reviewing and adapting the files for your machine:
chezmoi apply -vApplying another person's dotfiles can overwrite existing configuration. A fork or disposable test account is the safest place to experiment.
- Desktop/laptop rendering and optional integrations are controlled by the local machine profile described above.
- The OpenRGB launchers expect a locally installed, checksum-pinned build under
~/.local/opt/openrgb-msi7e49/. The binary is intentionally not committed, and the launchers refuse to run if it is absent or does not match. - The ASUS PG32UCDM ICC profile is not redistributed here. The monitor config
uses it only when the profile has been installed separately at
~/.local/share/color/icc/PG32UCDM-Standard.icm. - The RGB controls are allowlisted for the specific MSI motherboard and ENE memory devices documented in the plugin.
- The tracked RGB state and appearance files are create-once seeds. Chezmoi installs them only when missing, then leaves live color, power, history, and favorite changes local to the workstation.
- The audio widget and systemd service require Arctis Sound Manager commands
installed separately as
asm-output-toggle,asm-gui, andasm-daemon. - The Neru bindings and service require
neru-bin. The tracked config is based on Neru 1.51.0 and includes a keyboard-layout-specific recursive grid. - The HEY menu and bar entries require the public
37signals.heyplugin and HEY CLI. Install the plugin separately withomarchy plugin add https://github.com/basecamp/omarchy-hey-plugin.git --enable; credentials remain outside Chezmoi. - The workspace-layout bar widget, the swap recipe, and
~/.config/omarchy/workspace-layout.jsonrequire the publicbjarneo.workspace-layoutplugin. Install it separately withomarchy plugin add https://github.com/bjarneo/omarchy-workspace-layout.git --enable; the plugin regenerates~/.config/hypr/omarchy-workspace-layout.lua, whichhyprland.lualoads only when present. - The file-manager bindings and the directory MIME handler require
flea-bin.flea --defaultandflea --pickerown their marked blocks inbindings.lua. notes-backupand its hourly timer commit and push a private notes clone at~/Work/notes; clone that repository before enabling the timer.- The
qwen38-serverhelper expects a local Qwen GGUF, chat template, and API key file under~/.local/; none of those assets or credentials are tracked. - The lock watchdog is a temporary mitigation for
omacom/omarchy#7106. - The package and service lists are recovery inventories, not installation scripts. Review them against the current Omarchy release and your own hardware before using them.
Custom systemd units are restored but are not enabled automatically. Enable them only after their applications and dependencies have been installed.
Omarchy edits live files under the home directory. Re-add only the files you
intentionally changed; avoid a blanket chezmoi re-add, which can capture
volatile application state. Then review both unstaged and staged content before
pushing:
chezmoi re-add ~/.bashrc ~/.config/PATH_TO_CHANGED_FILE
chezmoi cd
git status --short
git diff
git add -p
git diff --cached --check
git diff --cached
git commit
git push
exitchezmoi re-add updates files that are already managed. Use
chezmoi add PATH_TO_FILE when intentionally adding a new file. Run a secret
scanner such as Gitleaks against the worktree and Git history before publishing
newly added configuration.
For profile-backed files such as monitors.lua, input.lua, autostart.lua,
shell.json, mimeapps.list, and the command catalog, use
chezmoi edit TARGET and update the appropriate template branch. Do not replace
those templates by re-adding one machine's rendered file.
Use chezmoi update -v to pull and apply changes already pushed from another
machine.
Credentials, sessions, caches, browser profiles, downloaded binaries, and
files owned by /usr/share/omarchy do not belong in this repository. In
particular, never commit SSH private keys, GitHub or cloud credentials, Codex,
Claude, or Grok authentication files, password-manager data, browser cookies,
keyrings, HEY credentials, local model API keys, or the complete
.codex-remote-lab directory.
Recreate credentials through their installers and authentication flows, use a
password-manager template, or store encrypted Chezmoi source files. Treat
.gitignore as defense in depth rather than as a substitute for reviewing the
staged diff and history.
The Agents collectors read local provider authentication only when requesting
the signed-in account's usage or subscription metadata. They do not commit
credentials or generated usage records; runtime output stays under
~/.local/state/omarchy/agents/usage/.
My original code and configuration are available under the MIT License. Derived and third-party material retains its original ownership and license; see Third-party notices.