I ran into a nasty theming issue where GTK3 themes still worked, but GTK4/libadwaita Flatpak apps looked broken/unstyled or half-themed. GNOME settings were correct:
gsettings get org.gnome.desktop.interface gtk-theme
# 'Adwaita'
gsettings get org.gnome.desktop.interface color-scheme
# 'prefer-dark'
A fresh user account worked perfectly, so the system themes were fine.
The actual culprit was a Flatpak override:
flatpak override --show --user
It showed:
[Environment]
GTK_THEME=
That looks harmless, but it is not. GTK_THEME was still set — just set to an empty string. GTK/libadwaita still sees that as an override, and it can break normal Adwaita/libadwaita styling.
The fix:
flatpak override --user --unset-env=GTK_THEME
flatpak override --user --unset-env=GTK2_RC_FILES
flatpak override --user --unset-env=QT_STYLE_OVERRIDE
Then verify:
flatpak override --show --user
There should be no [Environment] GTK_THEME= entry anymore.
You can also check inside a Flatpak app:
flatpak run --command=env org.gnome.TextEditor | grep GTK_THEME
Expected: no output.
After unsetting GTK_THEME, libadwaita/GTK4 Flatpak apps rendered correctly again.
Extra debugging trick that found it:
strace -f -e trace=mkdir,mkdirat,openat,openat2,statx,access,rename,unlink,unlinkat -s 300 \
-o /tmp/flatpak-instance.trace \
flatpak run -vv org.gnome.TextEditor
The verbose Flatpak output showed the sandbox being launched with:
--setenv
GTK_THEME
''
So the lesson is: empty env var is not the same as unset env var. If GTK/libadwaita apps look cursed, check Flatpak overrides before nuking themes, dconf, caches, or your whole user profile.
Disclaimer: Generated by GPT 5.5