Inventory

Omarchy customizations

Personal overrides vs stock Omarchy 3.8.4. Scanned from ~/.config, user services, and related home paths on 2026-09-08.

Safe edit locations only (~/.config/, ~/.local/bin/). Never edit ~/.local/share/omarchy/ — updates will overwrite it.

Quick status

AreaStatus
Active themeEvent Horizon
Active wallpaperTheme bg 08-neon-visor.jpg
FontJetBrainsMono Nerd Font
MonitorLG 34GN850 ultrawide 3440x1440@144, scale 1
Custom themes installedEvent Horizon, Aetheria
Active hooksNone (only .sample files)
DockerSee Docker (mongo and cloudflared are active with unless-stopped)
Firmware boot defaultWindows Boot Manager requested (Boot0000); awaiting local sudo authentication
Plex RAIDSee Plex & RAID (enabled, active user service mounting plex:/raid at /nas)
OllamaSee Ollama (active Vulkan service; four installed models; ai uses deepseek-coder-v2:16b-lite-instruct-q4_K_M)
Docs publish~/docs/ → Cloudflare R2 bucket omarchy via publish-omarchy-docs
Keychron Launcherudev /etc/udev/rules.d/99-keychron.rules for K8 Max + Link WebHID
SSH inboundsshd enabled; UFW 22/tcp; key-only via ~/.ssh/authorized_keys (RSA 4096 from ~/.ssh/id_rsa)
VS Code themeMonokai Dark Soda (AdamCaviness.theme-monokai-dark-soda)
Default text editorSublime Text (omarchy default editor sublime_text + mimeapps; Geany removed)
WebStorm themeMonokai Dark Soda (Islands UI + editor scheme plugin)
WebStorm WaylandNative WLToolkit + system AA font settings via custom webstorm64.vmoptions

Set Windows as the boot default

Set the UEFI firmware order to place Windows Boot Manager first. This is independent of Limine’s own menu: after applying it, the firmware launches Windows by default, while Limine / Omarchy remains the fallback entry.

# Set the persistent UEFI boot order (requires your local sudo password)
sudo efibootmgr -o 0000,0002,0003

# Verify — expected: BootOrder: 0000,0002,0003
efibootmgr -v

Boot0000 is Windows Boot Manager; Boot0002 is Limine (Omarchy); Boot0003 is the generic UEFI fallback. At last check, Limine was first; apply the command above to make Windows persistent. To restore Omarchy as the default, use sudo efibootmgr -o 0002,0000,0003.

Themes & wallpaper

Installed community themes

Both live under ~/.config/omarchy/themes/ as git clones (reinstallable):

ThemePathSource
Event Horizon (active) ~/.config/omarchy/themes/event-horizon GitHub
Aetheria ~/.config/omarchy/themes/aetheria GitHub
# Recreate installs
omarchy theme install https://github.com/OldJobobo/omarchy-event-horizon-theme
omarchy theme install https://github.com/JJDizz1L/aetheria.git

omarchy theme set "Event Horizon"
# or: omarchy theme set Aetheria

Current theme pointer: ~/.config/omarchy/current/theme.nameevent-horizon.

Extra wallpaper (not currently active)

~/.config/omarchy/backgrounds/event-horizon/wallhaven-l8v3ey_3440x1440.png

Wallhaven ID l8v3ey, sized for the 3440×1440 ultrawide. Active background symlink currently points at the theme file 08-neon-visor.jpg, not this PNG.

# Cycle theme backgrounds
omarchy theme bg next

# Or point current background at the wallhaven file manually if desired

Hyprland

Keybindings — close window on Super+Q

~/.config/hypr/bindings.conf

Stock Omarchy binds Super+W to close (killactive). Customization:

unbind = SUPER, W
bind = SUPER, Q, killactive
  • Super+W is free (no longer closes windows).
  • Super+Q closes the active window.
  • Super+Q had no stock Omarchy binding.

Keybindings — screenshots without Print Screen

~/.config/hypr/bindings.conf

Stock Omarchy binds bare Print to smart screenshot (and Super+Print to the color picker). Remapped to keys available on this keyboard; all three copy to the clipboard via omarchy-capture-screenshot … copy. Shown in Super+K via bindd descriptions:

unbind = , PRINT
bindd = SUPER, bracketleft, Screenshot region (clipboard), exec, omarchy-capture-screenshot region copy
bindd = SUPER, bracketright, Screenshot window (clipboard), exec, omarchy-capture-screenshot windows copy
bindd = SUPER, backslash, Screenshot fullscreen (clipboard), exec, omarchy-capture-screenshot fullscreen copy
ActionShortcut
Region → clipboardSuper+[
Window → clipboardSuper+]
Fullscreen → clipboardSuper+\

Super+Print color picker, Alt+Print screenrecording, and OCR on Super+Ctrl+Print remain stock (still need a Print key or the capture menu: Super+Ctrl+C).

Monitors — ultrawide scale 1

~/.config/hypr/monitors.conf

SettingStockYours
GDK_SCALE22 (unchanged)
monitor=preferred,auto,autopreferred,auto,1

Live display: LG 34GN850 (DP-1), 3440x1440@144, scale 1.00.

The commented ultrawide block in the same file suggests GDK_SCALE=1 for this class of monitor; only the Hyprland scale was changed to 1. Revisit GDK_SCALE if GTK apps look oversized/undersized.

Input — US layout

~/.config/hypr/input.conf

kb_layout = us
kb_options = compose:caps   # stock

kb_layout = us is explicit (stock leaves it commented). Caps Lock remains Compose (Omarchy default).

Look & feel — scrolling layout

~/.config/hypr/looknfeel.conf

general {
    layout = scrolling
}

scrolling {
    column_width = 0.5
}

Default tiling is Omarchy’s dwindle; this switches to Hyprland’s niri-like side-scrolling layout. Column width is 0.5 (stock Omarchy default is 0.49). Optional column_width = 0.97 for a near-full single column remains commented.

HyprMod GUI settings

~/.config/hypr/hyprland.conf sources:

source = /home/sparks/.config/hypr/hyprland-gui.conf

~/.config/hypr/hyprland-gui.conf (generated by HyprMod)

SettingValueNotes
decoration:blur:passes2
decoration:blur:size2
decoration:inactive_opacity1.0No dimming of inactive windows
ecosystem:no_donation_nagtrue
input:sensitivity-0.4Lower mouse sensitivity

Re-apply via HyprMod, or paste the same lines back into hyprland-gui.conf / hyprland.conf.

Unchanged Hyprland files (still stock)

autostart.conf, hypridle.conf, hyprlock.conf, hyprsunset.conf, xdph.conf.

Terminal & prompt

Alacritty

~/.config/alacritty/alacritty.toml (theme colors still imported from current theme)

SettingStockYours
Font size912
Window padding1410
Font familyJetBrainsMono Nerd Fontsame

Default terminal preference: Alacritty (~/.config/xdg-terminals.list).

Starship prompt

~/.config/starship.toml

Notable changes from stock:

  • Prompt format: 🍣 $directory $character (git modules removed from the main format string; git config blocks still present).
  • Success / error characters: # / ! (was / ).
  • Directory: truncation_length = 1, truncate_to_repo = false, simple [$path]($style) format.

Restore stock with:

omarchy refresh config starship.toml
# then re-apply the customizations above if needed

Git identity

~/.config/git/config

Only meaningful diff from Omarchy default is user identity:

[user]
	name = Stephen Dillon
	email = [email protected]

Aliases (co, br, ci, st) and the rest of the file match stock Omarchy.

Desktop apps & integrations

ItemLocationNotes
1Password (silent) ~/.config/autostart/1password.desktop --silent tray start
Fcitx5 / Walker ~/.config/autostart/ Stock Omarchy
Work launcher ~/.local/bin/work.sh + ~/.local/share/applications/work.desktop See Work session
Cursor (AppImage) ~/applications/Cursor.AppImage + Cursor.RollBack + Cursor.png + ~/.local/share/applications/cursor.desktop Update with python3 ~/update_cursor.py; Icon= must be absolute; ~/.local/bin/cursor symlink for CLI / work.sh
WebStorm AUR webstorm + webstorm-jre/opt/webstorm, /usr/bin/webstorm, jetbrains-webstorm.desktop omarchy pkg aur add webstorm webstorm-jre (2026.2.0.1); config under ~/.config/JetBrains/WebStorm2026.2/; Wayland via custom webstorm64.vmoptions
Sublime Text AUR sublime-text-4/usr/bin/subl, sublime_text.desktop Default GUI / $EDITOR via omarchy default editor sublime_text; ~/.local/bin/sublime_textsubl (Omarchy expects that binary name); Geany removed (omarchy pkg drop geany)
Claude / JetBrains links claude-code-url-handler.desktop + jetbrainsd.desktop Hidden desktop entries handle claude-cli:// and jetbrains:// links; registered in mimeapps.list
Hermes ~/.local/share/applications/hermes.desktop Walker app entry; hermes, hermes-acp, and hermes-agent wrappers run the user install in ~/.hermes/hermes-agent/

Default apps (~/.config/mimeapps.list): Firefox for web, Sublime Text for text/code MIME types, Nautilus for folders, imv for images, mpv for video; scheme handlers include Bruno, claude-cli, jetbrains, Claude, and Codex. $EDITOR is sublime_text in ~/.config/uwsm/default (Super+Shift+N / omarchy launch editor; log out once after changing).

Plex RAID mount

plex-raid.service is an enabled and active user service that mounts Plex’s /raid at local /nas using SSHFS. See Plex & RAID for the exact unit, lifecycle commands, and rebuild notes.

Editors (Sublime / VS Code / Cursor / JetBrains)

Sublime Text is the default text editor (MIME + $EDITOR). Monokai Dark Soda is the shared dark theme for VS Code / Cursor / WebStorm. VS Code / Cursor use the marketplace extension. WebStorm uses a local UI theme + editor scheme plugin (Islands layout, Monokai palette — accent #f92672).

# Default editor (Omarchy $EDITOR + XDG text handlers)
omarchy pkg aur add sublime-text-4   # if missing
omarchy default editor sublime_text
ln -sfn /usr/bin/subl ~/.local/bin/sublime_text
# mimeapps.list: text/* + application/x-shellscript + xml → sublime_text.desktop
omarchy pkg drop geany               # remove stock Geany if present
# WebStorm (AUR + Monokai Dark Soda theme plugin)
omarchy pkg aur add webstorm webstorm-jre
# sources: ~/themes/monokai-dark-soda/  (+ ~/themes/Monokai Dark Soda.icls)
# installed: ~/.local/share/JetBrains/WebStorm2026.2/monokai-dark-soda/
# Appearance theme + Editor color scheme both named "Monokai Dark Soda"
# VS Code
code --install-extension AdamCaviness.theme-monokai-dark-soda
# Cursor (same extension id)
cursor --install-extension AdamCaviness.theme-monokai-dark-soda

In WebStorm after install: fully quit/reopen, then Settings → Appearance → Theme → Monokai Dark Soda (editor scheme follows). Sources live under ~/themes/monokai-dark-soda/.

Custom VM options force native Wayland (WLToolkit) and system font anti-aliasing. Copy stock /opt/webstorm/bin/webstorm64.vmoptions into the config dir, then override toolkit / AA flags (full file takes precedence over the install copy):

~/.config/JetBrains/WebStorm2026.2/webstorm64.vmoptions

# …stock options…
-Dawt.toolkit.name=WLToolkit
-Dawt.useSystemAAFontSettings=on
-Dsun.java2d.xrender=true

Restart WebStorm after changing VM options. Confirm toolkit in Help → About (Toolkit: sun.awt.wl.WLToolkit).

~/.config/JetBrains/WebStorm2026.2/options/colors.scheme.xml

<application>
  <component name="EditorColorsManagerImpl">
    <global_color_scheme name="Monokai Dark Soda" />
  </component>
</application>

~/.config/Code/User/settings.json

{
  "update.mode": "none",
  "workbench.colorTheme": "Monokai Dark Soda"
}

Core palette: bg #242424, fg #f8f8f2, selection #403d3d, line highlight #3d3d3d, pink #f92672, green #a6e22e, cyan #66d9ef, yellow #ffee99.

Other present configs (low / no personal edits)

PathNotes
~/.config/waybar/Matches stock templates
~/.config/walker/Matches stock
~/.config/omarchy/hooks/*.sampleSamples only — not active
~/.config/omarchy/extensions/menu.shCommented examples only
~/.config/OpenRGB/OpenRGB used (OpenRGB.json, sizes.ors) — RGB profiles live here
~/.config/btop/btop.confDiff vs stock looks like version/format churn, not intentional tuning
Foot / Kitty / GhosttyMatch stock (theme overlay via Omarchy current theme)

Keychron Launcher (WebHID)

Linux blocks raw HID access by default, so launcher.keychron.com cannot talk to the keyboard until a udev rule opens /dev/hidraw*. Same fix as the common VIA-on-Linux PSA.

/etc/udev/rules.d/99-keychron.rules

# Keychron K8 Max (wired) — VID:PID 3434:0a80
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="0a80", MODE="0660", GROUP="input", TAG+="uaccess"
# Keychron Link dongle — 3434:d030
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="d030", MODE="0660", GROUP="input", TAG+="uaccess"
# STM32 DFU bootloader (firmware flash)
SUBSYSTEM=="usb", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="df11", MODE="0660", GROUP="input", TAG+="uaccess"
sudo udevadm control --reload-rules && sudo udevadm trigger
# user must be in the input group (already true on this machine)
  • Use a native Chromium browser (google-chrome-stable or chromium from pacman) — not Flatpak/Snap.
  • Prefer a wired USB cable with the keyboard switch set to Cable; many boards will not configure over Keychron Link.
  • Optional firmware helper: omarchy pkg add dfu-util.

SSH inbound

OpenSSH server listens on port 22 so this machine can be reached from the LAN with the existing ~/.ssh/id_rsa keypair. Password and root logins are off.

ItemValue
Usersparks
Hostnameomarch / omarch.local (Avahi)
LAN IPv410.10.10.122 (DHCP on enp42s0 — may change)
Servicesshd.service enabled + running
FirewallUFW allow 22/tcp (default incoming deny)
AuthPublic key only — ~/.ssh/authorized_keys
Key fingerprintSHA256:WCMurBpER7seisZExzgYAOdBSBZeiHOq13GUr7DLUaQ (RSA 4096)

/etc/ssh/sshd_config.d/10-local.conf

# Key-only inbound SSH
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
PubkeyAuthentication yes

~/.ssh/id_rsa.pub had been a second copy of the private key (same PEM). It was regenerated from id_rsa and copied into authorized_keys.

# From another machine that already has this private key:
ssh [email protected]
# or:
ssh [email protected]

# Recreate on a fresh box (after copying ~/.ssh/id_rsa):
ssh-keygen -y -f ~/.ssh/id_rsa | awk '{print $1" "$2" sparks@omarch"}' | tee ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa ~/.ssh/authorized_keys
chmod 644 ~/.ssh/id_rsa.pub
sudo ssh-keygen -A
sudo tee /etc/ssh/sshd_config.d/10-local.conf >/dev/null <<'EOF'
# Key-only inbound SSH
PasswordAuthentication no
KbdInteractiveAuthentication no
PermitRootLogin no
PubkeyAuthentication yes
EOF
sudo systemctl enable --now sshd
sudo ufw allow 22/tcp comment 'SSH inbound'

Client must present the matching private key. Local console login is unchanged.

Docs → Cloudflare R2

Personal HTML docs in ~/docs/ are published to the Cloudflare R2 bucket omarchy (object keys match filenames). After any doc edit, run:

publish-omarchy-docs
# or: ~/scripts/publish-omarchy-docs.sh

Auth: copy ~/.config/omarchy-docs/env.example~/.config/omarchy-docs/env, set CLOUDFLARE_ACCOUNT_ID + CLOUDFLARE_API_TOKEN (R2 edit), chmod 600 the env file. Alternative: npx wrangler@4 login.

Agent wiring: Cursor skill ~/.cursor/skills/omarchy-docs/ and always-on rule ~/.cursor/rules/omarchy-docs-r2.mdc.

Recreate checklist (new machine / after refresh)

  1. Install themes (URLs above) and omarchy theme set "Event Horizon".
  2. Restore Hyprland edits: bindings (Super+Q close; Super+[ / ] / \ screenshots → clipboard), monitors scale 1, kb_layout = us, layout = scrolling and column_width = 0.5 in looknfeel.conf, HyprMod / hyprland-gui.conf settings + source line.
  3. Alacritty: font size 12, padding 10.
  4. Starship: sushi prompt + character/directory tweaks.
  5. Git [user] name/email.
  6. Copy work.sh + work.desktop; ensure Bruno, MongoDB Compass, Firefox, and ~/hailmary exist.
  7. Install Cursor via python3 ~/update_cursor.py (or place AppImage into ~/applications/) with Cursor.png, write cursor.desktop with absolute Exec/Icon paths, and symlink ~/.local/bin/cursor.
  8. WebStorm: omarchy pkg aur add webstorm webstorm-jre; install plugin from ~/themes/monokai-dark-soda/ into ~/.local/share/JetBrains/WebStorm*/monokai-dark-soda/; select Appearance theme Monokai Dark Soda; copy custom ~/.config/JetBrains/WebStorm*/webstorm64.vmoptions (WLToolkit + AA flags); fully restart WebStorm.
  9. Sublime: omarchy pkg aur add sublime-text-4; omarchy default editor sublime_text; ln -sfn /usr/bin/subl ~/.local/bin/sublime_text; set text MIME types in ~/.config/mimeapps.list to sublime_text.desktop; omarchy pkg drop geany if installed. Log out once so $EDITOR applies.
  10. VS Code: code --install-extension AdamCaviness.theme-monokai-dark-soda and set workbench.colorTheme to Monokai Dark Soda in ~/.config/Code/User/settings.json (same extension in Cursor if desired).
  11. Docker / mongo: follow the Docker recreate steps.
  12. Plex RAID: install sshfs, create /nas, restore plex-raid.service, then run systemctl --user enable --now plex-raid. See the Plex & RAID recreate steps.
  13. Optional: copy wallhaven wallpaper into ~/.config/omarchy/backgrounds/event-horizon/.
  14. Optional: re-export OpenRGB profile from backup of ~/.config/OpenRGB/.
  15. Enable 1Password autostart desktop entry if desired.
  16. Keychron: install /etc/udev/rules.d/99-keychron.rules (K8 Max 3434:0a80, Link 3434:d030), reload udev, confirm user is in input; open launcher in native Chrome/Chromium over USB.
  17. SSH: copy ~/.ssh/id_rsa, write real id_rsa.pub + authorized_keys, host keys via sudo ssh-keygen -A, drop-in /etc/ssh/sshd_config.d/10-local.conf (key-only), sudo systemctl enable --now sshd, sudo ufw allow 22/tcp.
  18. Docs → R2: install ~/scripts/publish-omarchy-docs.sh (symlink ~/.local/bin/publish-omarchy-docs), configure ~/.config/omarchy-docs/env, then publish-omarchy-docs.

Dangerous resets

omarchy refresh hyprland   # backs up, then restores stock Hyprland configs
omarchy refresh waybar
omarchy refresh config starship.toml

After any refresh, re-apply the Hyprland / Starship / Alacritty sections above.

File index (customized)

~/.config/hypr/bindings.conf
~/.config/hypr/monitors.conf
~/.config/hypr/input.conf
~/.config/hypr/hyprland.conf          # sources hyprland-gui.conf
~/.config/hypr/hyprland-gui.conf      # HyprMod
~/.config/alacritty/alacritty.toml
~/.config/starship.toml
~/.config/git/config                  # [user] only
~/.config/mimeapps.list               # text/* → sublime_text.desktop
~/.config/uwsm/default                # export EDITOR=sublime_text
~/.local/bin/sublime_text             # -> /usr/bin/subl
~/.config/omarchy/themes/event-horizon/
~/.config/omarchy/themes/aetheria/
~/.config/omarchy/backgrounds/event-horizon/wallhaven-l8v3ey_3440x1440.png
~/.config/autostart/1password.desktop
~/.local/bin/work.sh
~/scripts/ai.py                       # ai backend: Ollama deepseek-coder-v2:16b-lite-instruct-q4_K_M (num_predict=50) → command (UI on /dev/tty)
~/.bashrc                             # ai() → re-add ai line + history -s + eval (needed for ↑ history)
~/.local/bin/ai                       # optional -> ~/scripts/ai.py (direct run; no history)
~/scripts/update_cursor.py            # download latest Cursor AppImage + rotate rollback
~/scripts/publish-omarchy-docs.sh     # push ~/docs → R2 bucket omarchy
~/.local/bin/publish-omarchy-docs     # -> ~/scripts/publish-omarchy-docs.sh
~/.config/omarchy-docs/env            # CLOUDFLARE_ACCOUNT_ID + CLOUDFLARE_API_TOKEN (chmod 600)
~/.config/omarchy-docs/env.example
~/.cursor/skills/omarchy-docs/        # agent skill: docs + R2 publish
~/.cursor/rules/omarchy-docs-r2.mdc   # always-on: publish after ~/docs edits
~/.local/bin/cursor                   # -> ~/applications/Cursor.AppImage
~/.local/share/applications/work.desktop
~/.local/share/applications/cursor.desktop
~/.local/share/applications/claude-code-url-handler.desktop  # claude-cli:// → Claude Code
~/.local/share/applications/jetbrainsd.desktop                # jetbrains:// → JetBrains daemon
~/.local/share/applications/hermes.desktop                     # Walker entry for Hermes
~/.local/bin/hermes                   # Hermes CLI wrapper
~/.local/bin/hermes-acp               # Hermes ACP wrapper
~/.local/bin/hermes-agent             # Hermes agent wrapper
~/.config/systemd/user/plex-raid.service  # SSHFS plex:/raid → /nas
~/applications/Cursor.AppImage
~/applications/Cursor.RollBack        # previous AppImage (from updater)
~/applications/Cursor.png
~/themes/Monokai Dark Soda.icls       # JetBrains editor color scheme (source; valid XML)
~/themes/monokai-dark-soda/           # WebStorm UI theme sources (Islands + scheme)
~/.local/share/JetBrains/WebStorm2026.2/monokai-dark-soda/  # installed theme plugin
~/.config/JetBrains/WebStorm2026.2/colors/Monokai Dark Soda.icls
~/.config/JetBrains/WebStorm2026.2/options/laf.xml            # Appearance: Monokai Dark Soda
~/.config/JetBrains/WebStorm2026.2/options/colors.scheme.xml  # editor: Monokai Dark Soda
~/.config/JetBrains/WebStorm2026.2/webstorm64.vmoptions       # WLToolkit + system AA fonts
~/.config/JetBrains/WebStorm2026.2/   # WebStorm config
/opt/webstorm                         # WebStorm install (AUR webstorm + webstorm-jre)
/usr/bin/webstorm
/usr/share/applications/jetbrains-webstorm.desktop
~/.config/Code/User/settings.json     # VS Code: Monokai Dark Soda + update.mode none
~/.vscode/extensions/adamcaviness.theme-monokai-dark-soda-*/
~/.config/OpenRGB/                    # RGB (if you care to back it up)
/etc/udev/rules.d/99-keychron.rules   # Keychron Launcher / VIA WebHID
/etc/ssh/sshd_config.d/10-local.conf  # key-only sshd (no passwords / no root)
~/.ssh/id_rsa                         # existing 4096 RSA keypair
~/.ssh/id_rsa.pub                     # derived from id_rsa (was previously a private-key duplicate)
~/.ssh/authorized_keys                # same pubkey — inbound SSH