Omarchy
On Omarchy, Milo takes the environment's background, foreground, border, surface and terminal palette so it feels native to whichever theme is active. What it never gives up: Vermilion is Milo, Moss is Offline, and a terminal is a real terminal.
Theme variables → Milo tokens
An Omarchy theme is a directory of per-app config files (alacritty.toml, hyprland.conf, waybar.css, mako.ini, walker.css, neovim.lua, backgrounds/). Milo reads the shared values once at launch and again on omarchy-theme-set, and maps them onto its structural tokens. Semantic accents are not mapped.
| Omarchy value | Found in | Milo token | Rule |
|---|---|---|---|
background | alacritty.toml [colors.primary] · waybar.css @define-color | --surface-primary | Inherited. Light or dark set chosen by its luminance. |
foreground | alacritty.toml · walker.css | --text-primary | Inherited if it clears 7:1 on background; otherwise Milo's own ink for that set. |
border (active/inactive) | hyprland.conf col.active_border | --hairline-strong / --hairline | Inherited. Milo's window edge matches its neighbours. |
| surface (bar/notification bg) | waybar.css · mako.ini | --surface-secondary, --surface-tertiary | Inherited. |
| terminal palette (16) | alacritty.toml [colors.normal] | terminal pane only | Passed through untouched to any terminal Milo opens. |
| accent / selection | walker.css · waybar.css | not mapped | --milo-agent stays Vermilion. --offline-signal stays Moss. Theme accent is used nowhere in Milo. |
| font | alacritty.toml [font] | --font-mono | Inherited for mono roles. Display serif and interface sans stay Milo's. |
| background image | backgrounds/ | level 0 environment | Left alone. Milo's nature and art imagery sits inside its own window. |
Two Hyprland tiles
This mock is drawn with Milo's tokens on a carbon Hyprland ground. The right tile is a real Alacritty window in production — Milo does not render a fake one. The Moss border is the tile edge; the Vermilion edge on the left tile means Milo is currently acting.
◇ Euangelion · Task
Render Day 1 voice track
- Load reference clip0.8s
- Synthesise 2,140 words1m 12s
- Normalise loudness—
Production: "Open terminal beside this" → Alacritty opens with cwd set to the task's workspace → Hyprland tiles it to the right. Documented in FUTURE_APP_REQUIREMENTS.md; not built here.
What holds
- 01Hyprland is the window manager. Milo never draws a window inside a window, never fakes a tile, never manages another app's frame.
- 02Voice and Quick Entry are Hyprland binds (
SUPER + SPACE,SUPER + K) that summon the level-3 pill over any workspace. Milo's window does not need focus. - 03Theme change is live: tokens update on the
omarchy-theme-sethook without a restart. Imagery re-maps (National Park on light themes, Nous on dark). - 04Milo Vermilion and Signal Moss are fixed constants. A theme whose accent happens to be orange or green does not become Milo; Milo keeps its own.
- 05Mako notifications carry Milo's UI language and the ◉ glyph; they use the theme's notification surface, not Milo's.
- 06Heavy work is niced and thermally aware on the Omarchy laptop; Milo shows the reading in the executor line rather than hiding it.
Verified vs documented
omarchy-theme-set hook, Hyprland binds, and "open terminal beside this". These are production behaviours listed in FUTURE_APP_REQUIREMENTS.md.
NOT DONENo screenshot on real Hyprland exists in this package. The first-boot run on wkgd-macbook has not completed.