GTK4 and libadwaita apps ignore the Omarchy theme
Nautilus and other GTK4/libadwaita apps stay Adwaita gray on Omarchy 4. Omarchy only sets light or dark, so generate a gtk.css palette with a template and hook.
Omarchy does not theme GTK4 apps. omarchy-theme-set-gnome only sets color-scheme, gtk-theme and icon-theme, so Nautilus follows light or dark and nothing else. Fix it yourself: add a gtk.css.tpl template in ~/.config/omarchy/themed/ that maps colors.toml onto libadwaita @define-color names, then a theme-set hook that copies the result to ~/.config/gtk-4.0/gtk.css and restarts the app. Chromium is themed separately and does work.
Omarchy themes your terminal, Neovim, btop, Chromium and the whole Quickshell desktop. GTK4 and libadwaita apps are the hole in that list. Open Nautilus on Tokyo Night or Osaka Jade and you get stock Adwaita gray. This is true on every 4.0.x release including 4.0.4, and it was true on 3.x too.
The fix
There is no setting to flip. You have to generate the stylesheet yourself using two extension points Omarchy already supports: theme templates and the theme-set hook.
- Create a template so every theme switch produces a palette file:
mkdir -p ~/.config/omarchy/themed
cat > ~/.config/omarchy/themed/gtk.css.tpl <<'EOF'
@define-color window_bg_color {{ background }};
@define-color window_fg_color {{ foreground }};
@define-color view_bg_color {{ background }};
@define-color view_fg_color {{ foreground }};
@define-color headerbar_bg_color {{ lighter_background }};
@define-color headerbar_fg_color {{ foreground }};
@define-color sidebar_bg_color {{ dark_background }};
@define-color sidebar_fg_color {{ foreground }};
@define-color card_bg_color {{ lighter_background }};
@define-color card_fg_color {{ foreground }};
@define-color popover_bg_color {{ lighter_background }};
@define-color popover_fg_color {{ foreground }};
@define-color dialog_bg_color {{ lighter_background }};
@define-color dialog_fg_color {{ foreground }};
@define-color accent_bg_color {{ accent }};
@define-color accent_fg_color {{ background }};
@define-color accent_color {{ accent }};
@define-color destructive_bg_color {{ red }};
@define-color error_bg_color {{ red }};
@define-color success_bg_color {{ green }};
@define-color warning_bg_color {{ yellow }};
EOF
omarchy-theme-set-templates expands every .tpl in that directory against the incoming theme’s colors.toml, and user templates take priority over Omarchy’s own. The result lands at ~/.local/state/omarchy/current/theme/gtk.css.
- Create a hook that installs the generated file where GTK4 actually reads it:
mkdir -p ~/.config/omarchy/hooks/theme-set.d
cat > ~/.config/omarchy/hooks/theme-set.d/50-gtk4-palette <<'EOF'
#!/bin/bash
src="$HOME/.local/state/omarchy/current/theme/gtk.css"
[[ -f $src ]] || exit 0
mkdir -p "$HOME/.config/gtk-4.0"
cp "$src" "$HOME/.config/gtk-4.0/gtk.css"
pkill -x nautilus 2>/dev/null
EOF
omarchy-hook runs every file in theme-set.d with bash after a theme change, so the hook does not need an execute bit. It skips anything ending in .sample.
- Apply it:
omarchy theme refresh
That re-runs the whole theme pipeline against the current theme without cycling your background.
Add more app names to the pkill line only if you use them, for example gnome-calendar or gnome-text-editor. These apps keep a background process alive after their last window closes, so a plain close and reopen keeps showing the old colors. Killing one discards anything unsaved in it.
Verify it worked
cat ~/.config/gtk-4.0/gtk.css
grep -c '{{' ~/.config/gtk-4.0/gtk.css
Every line should carry a real hex value. A count above zero means a palette key in your template does not exist for that theme and the literal placeholder was left in place. Empty or missing values are what produced transparent Nautilus windows in #8380, where the reporter saw lines reading @define-color background #;.
Then open Nautilus. The window, sidebar and header bar should carry your theme’s background, and selected rows should carry the accent. Open the theme menu with Super + Ctrl + Shift + Space, pick another theme, and confirm Nautilus follows.
Why it happens
omarchy-theme-set runs a list of per-app setters after it swaps the theme in. The GNOME one, omarchy-theme-set-gnome, does exactly three things: it sets color-scheme to prefer-light or prefer-dark, sets gtk-theme to Adwaita or Adwaita-dark, and sets icon-theme from the theme’s icons.theme file. That is the whole of it in v4.0.4. There is no gtk.css.tpl in default/themed/, and no stock theme ships a gtk.css.
libadwaita is the reason a binary theme name is not enough. It deliberately ignores gtk-theme and honors only @define-color overrides in the user stylesheet at ~/.config/gtk-4.0/gtk.css, which Omarchy never writes. That is the root cause given in #7557, and #9751 reaches the same conclusion from the Nautilus side on 4.0.2.
Two competing pull requests would close the gap. #8408 generates the palette through a default/themed/gtk.css.tpl and adds a Nautilus extension that reloads it over D-Bus. #8584 writes both GTK3 and GTK4 stylesheets and reloads Files only when a window is mapped. Neither had been merged when 4.0.4 shipped on 2026-09-15.
Two limits are worth knowing before you invest in this. The author of #7557 reports that the same trick does nothing for GTK3: a @define-color override in the user stylesheet stays inside its own provider and Adwaita rendered identically with and without it. They also note that libadwaita loads the user stylesheet once when the process starts, which is why the hook restarts the app. Both are their measurements, not ours.
If that did not work
Nautilus is transparent instead of themed. You probably have a stale or broken ~/.config/gtk-3.0/gtk.css or ~/.config/gtk-4.0/gtk.css with empty color values, the symptom in #8380. Delete both, then re-run omarchy theme refresh. Note that the reporter there blames a 10-gtk.sh hook that stock Omarchy does not ship, so check ~/.config/omarchy/hooks/theme-set.d/ for something you or a plugin installed.
Icons are broken squares rather than wrong colors. Vantablack asks for a Yaru-gray icon theme and White for Yaru-grey, and neither exists on disk. omarchy-theme-set-gnome only falls back to Yaru-blue when the icons.theme file is missing, not when the name is unresolvable, and that is still how v4.0.4 ships. Check with gsettings get org.gnome.desktop.interface icon-theme. Two commenters on #7203 traced repeated Nautilus and Ghostty segfaults to the same missing theme, so treat this as more than cosmetic. The workaround in #7203 is to copy the theme into ~/.config/omarchy/themes/, write a real icon theme name such as Yaru-dark into its icons.theme, and refresh.
Chromium is not following the theme. Chromium is themed, through a different path. omarchy-theme-set-browser writes {"BrowserThemeColor": "#rrggbb", "BrowserColorScheme": "device"} into /etc/chromium/policies/managed/color.json and the equivalent directories for Chrome, Edge and Brave, then asks a running browser to reload its policy. Check that the file exists and carries your theme’s background color. The message “Theme is set by your Organization” in browser settings is expected with this design.
Chromium or Brave is stuck on an old accent. This was a Chromium bug in how policy-based themes update, reported in #1888 and confirmed by hjanuschka, who landed a fix upstream in November 2025. Omarchy’s Chromium build carried it first and Brave picked it up later. On 4.0.x you should not see it. If you do, restart the browser fully.
Qt apps. Nothing in the theme pipeline targets Qt toolkit apps either. The Omarchy shell is Quickshell, which is themed directly, but a third-party Qt application is on its own.
Related
Upstream threads about this error
38 issues on the Omarchy tracker match this error cluster. Newest fixes often appear as comments on the most-discussed threads.
| Issue | State | Comments | Opened |
|---|---|---|---|
| #7557 GTK4/libadwaita apps don't follow the Omarchy theme | open | 4 | 2026-08-19 |
| #1607 Screenshot not working · fixed by #1714 | closed | 15 | 2025-09-11 |
| #6628 Lock shell dies during normal idle->lock; session permanently locked, reboot required · fixed by #6630 | open | 17 | 2026-08-08 |
| #1403 Have you considered switching over to AGS, EWW, or Quickshell? | closed | 4 | 2025-09-02 |
| #7145 Lock screen repeatedly flashes blank due to periodic "no outputs" Wayland glitch | closed | 12 | 2026-08-16 |
| #855 Old GTK2-style file chooser shown when selecting files to upload | closed | 10 | 2025-08-16 |
| #5447 Ghostty terminal keybind launches single-instance mode that can crash all windows | open | 6 | 2026-04-25 |
| #7203 Vantablack/White themes: 'Yaru-gray' icon theme unresolvable in 4.0.0 → broken-image placeholders | open | 5 | 2026-08-17 |
| #9661 Agent skill docs reference basecamp/omarchy; `gh search` fails against the renamed repo | closed | 5 | 2026-09-01 |
| #12208 Lock screen dies during HDMI/display thrash → Hyprland “lockscreen app died” failsafe loop | open | 5 | 2026-09-17 |
Accepted answers upstream
- cosmic-files integrations · answered by zuhaibullahbaig
- Keyboard shortcut upgrade (launch and switch between 18 apps with one hand) · answered by devgizzo
- Konbini: a late-night convenience-store theme · answered by gmarziou
- Use VoxType's Quickshell OSD with Omarchy palette by default · answered by toorop
Questions people ask
- Does Omarchy theme Nautilus at all?
- Only light or dark, plus an icon theme. On 4.0.4 omarchy-theme-set-gnome sets org.gnome.desktop.interface color-scheme, gtk-theme and icon-theme. It never writes a GTK stylesheet, so the palette from colors.toml never reaches the app.
- Will an official fix land?
- Two pull requests, #8408 and #8584, propose it with different pipelines. Both were still open and unmerged as of v4.0.4 on 2026-09-15, so nothing has shipped.
- Why does Chromium say the theme is set by my organization?
- That is expected. Omarchy writes BrowserThemeColor into an enterprise policy file at /etc/chromium/policies/managed/color.json, and Chromium labels any policy-driven theme that way.
- Can I recolor GTK3 apps the same way?
- Not reliably. The reporter of #7557 measured that @define-color in the user stylesheet is provider scoped and does not reach Adwaita's own rules, so GTK3 apps still need a real binary theme.
Sources and credit
Fixes on this page were worked out by akitaonrails (Traced the cause to the missing ~/.config/gtk-4.0/gtk.css and measured which parts of the pipeline can and cannot be recolored), suleman-dawood (Pinned the gap to omarchy-theme-set-gnome setting only gtk-theme, color-scheme and icon-theme), Rowdydangerous (Reported transparent Nautilus windows caused by a gtk.css full of empty color values), pcrisho (Workaround for the unresolvable Yaru-gray icon theme on Vantablack and White), hjanuschka (Diagnosed and fixed the Chromium policy-theme bug that froze browser accent colors). Text here is our own paraphrase; follow the links for the original threads.
- issueIssue #7557: GTK4/libadwaita apps don't follow the Omarchy theme · akitaonrails · 2026-08-19
- issueIssue #9751: Nautilus doesn't follow the theme palette · suleman-dawood · 2026-09-02
- issueIssue #8380: Nautilus background transparent with Solitude theme (empty GTK color values) · Rowdydangerous · 2026-08-26
- issueIssue #7203: Vantablack/White themes: 'Yaru-gray' icon theme unresolvable in 4.0.0 · pcrisho · 2026-08-17
- issueIssue #1888: Chromium theming issue / Persistent accent color after theme change · erik-brueggemann · 2025-09-22
- prPR #8408: Theme GTK4 apps with Omarchy colors · nimixh · 2026-08-26
- prPR #8584: Theme Files and GTK apps from colors.toml · robertkokenyesi · 2026-08-27
- manualOmarchy manual: Making your own theme