Proof Portal
Omarchy
ProbeLabs65 findings · 95 requirementsA proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.
GTK4/libadwaita apps don't follow the Omarchy theme
Reported by akitaonrails · filed Aug 19, 2026 · open at source
At a glance
- 1 · What is claimed?
- Only the report text below — no validator has restated it as checkable claims yet.
- 2 · What does it affect?
- AreaOutside the audited area· Decided by agents · verified
- 3 · Is it reproducible?
- No validation has been run yet.
- 4 · What remains unclear?
- Not validated yet: no claims, no reproducer.
- 5 · What happens next?
- Decided by agents and verified by a second, independent agent — see the decision.
Original report
System details
RTX 5090, Omarchy 4.0.0-1 (also verified against current quattro branch source)
What's wrong?
Stock Omarchy applies no theming at all to GTK4/libadwaita applications. Nautilus, Geary, GNOME Calendar and friends render in default Adwaita colors regardless of the active Omarchy theme.
Steps: omarchy theme set <any-theme>, then open Nautilus or Geary — colors never change.
Root cause: libadwaita ignores the gtk-theme setting by design. The only user-level lever it honors is @define-color overrides in ~/.config/gtk-4.0/gtk.css, and Omarchy never writes that file. I checked the quattro source: the only themed GTK CSS shipped anywhere is for the Hyprland share-picker.
(For the record: #2356, #2789 and #1425 asked for this and were all closed as "COMPLETED" within the same 25-minute window on 2026-02-01 — that looks like a bulk tracker cleanup; nothing was actually implemented.)
How we solved it locally (offer to contribute)
I've been running a theme-set hook since 2026-08-17 that fixes this for GTK4, ~60 lines of bash + sed, no new dependencies:
- Reads the active theme's
colors.tomland generates~/.config/gtk-4.0/gtk.csswith the full set of libadwaita@define-colorvariables (window/view/headerbar/sidebar/card/popover backgrounds and foregrounds, accent, destructive/success/warning/error, selection). - Picks the text color drawn on the accent with a luma-distance test (whichever of background/foreground is further from the accent in perceived brightness). Verified against all 22 stock themes: worst-case separation is 86/255 (miasma), everything else ≥ 100. A naive "is the accent dark" test fails on the five light themes.
- Restarts
--gapplication-servicedaemons (nautilus, geary, gnome-calendar) after writing the CSS, because libadwaita reads the user stylesheet only at process startup — closing the window is not enough, the daemon survives and keeps painting a days-old theme. SIGTERM is safe: all of them are D-Bus activatable and respawn on demand.
Measured caveats worth knowing before implementing:
- GTK3 cannot be recolored this way.
@define-colorin the user stylesheet is provider-scoped and does not reach the theme's rules — Adwaita rendered identically with and without overrides (verified with an offscreen render, not by eye). GTK3 apps still need an approximate binary theme viagtk-theme. - Importing a large third-party CSS first and overriding on top renders identically to pure overrides, so pure overrides are preferable (avoids parsing ~238 KB per app launch).
Question
Would a PR adding GTK4 palette generation to the theme-set pipeline be desirable? If yes, where should it live — a default hook in config/omarchy/hooks/theme-set.d/, or wired into omarchy-theme-set directly? Happy to prepare it with before/after captures across several stock themes.
View raw text
## System details RTX 5090, Omarchy 4.0.0-1 (also verified against current `quattro` branch source) ## What's wrong? Stock Omarchy applies no theming at all to GTK4/libadwaita applications. Nautilus, Geary, GNOME Calendar and friends render in default Adwaita colors regardless of the active Omarchy theme. Steps: `omarchy theme set <any-theme>`, then open Nautilus or Geary — colors never change. Root cause: libadwaita ignores the `gtk-theme` setting by design. The only user-level lever it honors is `@define-color` overrides in `~/.config/gtk-4.0/gtk.css`, and Omarchy never writes that file. I checked the `quattro` source: the only themed GTK CSS shipped anywhere is for the Hyprland share-picker. (For the record: #2356, #2789 and #1425 asked for this and were all closed as "COMPLETED" within the same 25-minute window on 2026-02-01 — that looks like a bulk tracker cleanup; nothing was actually implemented.) ## How we solved it locally (offer to contribute) I've been running a `theme-set` hook since 2026-08-17 that fixes this for GTK4, ~60 lines of bash + sed, no new dependencies: 1. Reads the active theme's `colors.toml` and generates `~/.config/gtk-4.0/gtk.css` with the full set of libadwaita `@define-color` variables (window/view/headerbar/sidebar/card/popover backgrounds and foregrounds, accent, destructive/success/warning/error, selection). 2. Picks the text color drawn *on* the accent with a luma-distance test (whichever of background/foreground is further from the accent in perceived brightness). Verified against all 22 stock themes: worst-case separation is 86/255 (miasma), everything else ≥ 100. A naive "is the accent dark" test fails on the five light themes. 3. Restarts `--gapplication-service` daemons (nautilus, geary, gnome-calendar) after writing the CSS, because libadwaita reads the user stylesheet only at process startup — closing the window is not enough, the daemon survives and keeps painting a days-old theme. SIGTERM is safe: all of them are D-Bus activatable and respawn on demand. Measured caveats worth knowing before implementing: - **GTK3 cannot be recolored this way.** `@define-color` in the user stylesheet is provider-scoped and does not reach the theme's rules — Adwaita rendered identically with and without overrides (verified with an offscreen render, not by eye). GTK3 apps still need an approximate binary theme via `gtk-theme`. - Importing a large third-party CSS first and overriding on top renders identically to pure overrides, so pure overrides are preferable (avoids parsing ~238 KB per app launch). ## Question Would a PR adding GTK4 palette generation to the theme-set pipeline be desirable? If yes, where should it live — a default hook in `config/omarchy/hooks/theme-set.d/`, or wired into `omarchy-theme-set` directly? Happy to prepare it with before/after captures across several stock themes.
Validation
Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.
Linked
Not linked to any known issue, other report or change yet.
Decision
Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.
- Out of scopeDecided by agents · verified · 2026-10-09 04:49 UTC