Skip to content

Commit 8f29504

Browse files
committed
GTK theme: persistent dconf override for prefer-dark + adw-gtk3-dark
Operator 2026-05-10: "window opens and works (not the mios.toml defined prefer-dark mode yet)" -- GUI apps render correctly via the cairo software path but were falling back to upstream light Adwaita instead of MiOS's intended dark theme. Root cause: live `gsettings set` writes only land in the user-db (per-user ~/.config/dconf/user) and don't survive wsl --shutdown. Without a system-db cascade, every fresh user-bus session reverts to upstream defaults. Fix: ship a dconf system-db override at /etc/dconf/db/local.d/00-mios-theme + /etc/dconf/profile/user. Compiled into the binary system-db by `dconf update` (wired into build-mios.ps1's overlay phase right after the seed step). The local system-db then cascades into every user dconf profile at login, so operators see adw-gtk3-dark + prefer-dark + Adwaita icons + Adwaita Sans 11 + GeistMono Nerd Font Mono 10 + standard GNOME window button layout on first GTK app launch. Operator-overridable per-user (gsettings set ... or GNOME Tweaks) without touching the system file. .gitignore allowlist entries added for /etc/dconf/db/local.d/* + /etc/dconf/profile/* so the override files are tracked.
1 parent f6f56d4 commit 8f29504

3 files changed

Lines changed: 38 additions & 0 deletions

File tree

.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,16 @@ etc/fapolicyd/*
161161
!/etc/systemd/user/**/
162162
!/etc/systemd/user/**/10-mios-*.conf
163163

164+
# /etc/dconf/ -- system-wide GNOME / GTK defaults (color scheme,
165+
# gtk-theme, icon-theme, fonts). Cascade applied to every user-bus
166+
# at login; operator overrides per-user via gsettings / Tweaks.
167+
!/etc/dconf/
168+
!/etc/dconf/db/
169+
!/etc/dconf/db/local.d/
170+
!/etc/dconf/db/local.d/*
171+
!/etc/dconf/profile/
172+
!/etc/dconf/profile/*
173+
164174
# /etc/mios/ -- KB config (system-prompts, kb.conf.toml, eval-criteria.json) tracked here.
165175
# Runtime secrets and per-host overrides are NOT tracked (handled by mios-bootstrap.git).
166176
!/etc/mios/

etc/dconf/db/local.d/00-mios-theme

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# /etc/dconf/db/local.d/00-mios-theme
2+
#
3+
# MiOS canonical GNOME / GTK theming defaults. Applied at every
4+
# user-bus login via dconf's system-db cascade -- operator sees
5+
# adw-gtk3-dark + prefer-dark color scheme on first launch of any
6+
# GTK app without having to gsettings-set it themselves.
7+
#
8+
# Operator-overridable per-user (gsettings set ... or the GNOME
9+
# Tweaks UI). System defaults here only take effect when the
10+
# user-db doesn't have a key set.
11+
#
12+
# /etc/dconf/profile/user (ships alongside this file) wires the
13+
# local system-db into the user dconf profile cascade.
14+
15+
[org/gnome/desktop/interface]
16+
color-scheme='prefer-dark'
17+
gtk-theme='adw-gtk3-dark'
18+
icon-theme='Adwaita'
19+
cursor-theme='Adwaita'
20+
font-name='Adwaita Sans 11'
21+
monospace-font-name='GeistMono Nerd Font Mono 10'
22+
document-font-name='Adwaita Sans 11'
23+
24+
[org/gnome/desktop/wm/preferences]
25+
theme='adw-gtk3-dark'
26+
button-layout='appmenu:minimize,maximize,close'

etc/dconf/profile/user

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
user-db:user
2+
system-db:local

0 commit comments

Comments
 (0)