This is not an issue with any Linux distro specifically, but with all distros in general. If anyone out there’s had this issue, I’m sure you’ve shared my pain. I’d struggled with getting flatpaks to follow the (dark) system theme I set for a while, and I finally just got it fixed, so I thought I’d run through the process real quick:
- make sure you’re setting a theme that has a flatpak version available (I chose
adw-gtk3{,-dark}
) - install the flatpak versions: as of writing,
gtk3
flatpak themes are the only ones you need to download, but if your theme doesn’t include agtk4
variant, YMMV - install the
gtk
themes for your desktop environment and ensure they are in the proper location - enable
gtk
themes ingsettings
- A couple last-ditch effort recommendations if 1-4 doesn’t work
Here’s the steps expanded:
Choose a theme you can get in a desktop version – a good place to see if you can find the theme you want is gnome-look.org. Make sure if you use both user and system flatpaks you have a theme for both (I personally only use userspace flatpaks from flathub to avoid complications) Here’s the current list of flatpak theme runtimes as of writing:
❯ clear && flatpak search --user --columns=app theme | grep org.gtk | sort -n
org.gtk.Gtk3theme.Adapta
org.gtk.Gtk3theme.Adapta-Brila
org.gtk.Gtk3theme.Adapta-Brila-Eta
org.gtk.Gtk3theme.Adapta-Eta
org.gtk.Gtk3theme.Adapta-Nokto
org.gtk.Gtk3theme.Adapta-Nokto-Eta
org.gtk.Gtk3theme.Adementary
org.gtk.Gtk3theme.Adwaita-dark
org.gtk.Gtk3theme.adw-gtk3
org.gtk.Gtk3theme.adw-gtk3-dark
org.gtk.Gtk3theme.Akwa
org.gtk.Gtk3theme.Akwa-dark
org.gtk.Gtk3theme.Akwa-light
org.gtk.Gtk3theme.Ambiance
org.gtk.Gtk3theme.Arc
org.gtk.Gtk3theme.Arc-Dark
org.gtk.Gtk3theme.Arc-Darker
org.gtk.Gtk3theme.Arc-Darker-solid
org.gtk.Gtk3theme.Arc-Dark-solid
org.gtk.Gtk3theme.Arc-Lighter
org.gtk.Gtk3theme.Arc-Lighter-solid
org.gtk.Gtk3theme.Arc-solid
org.gtk.Gtk3theme.Breeze
org.gtk.Gtk3theme.Catppuccin-blue
org.gtk.Gtk3theme.Catppuccin-green
org.gtk.Gtk3theme.Catppuccin-orange
org.gtk.Gtk3theme.Catppuccin-pink
org.gtk.Gtk3theme.Catppuccin-purple
org.gtk.Gtk3theme.Catppuccin-red
org.gtk.Gtk3theme.Catppuccin-teal
org.gtk.Gtk3theme.Catppuccin-yellow
org.gtk.Gtk3theme.Chicago95
org.gtk.Gtk3theme.Communitheme
org.gtk.Gtk3theme.CrosAdapta
org.gtk.Gtk3theme.deepin
org.gtk.Gtk3theme.deepin-dark
org.gtk.Gtk3theme.elementary
org.gtk.Gtk3theme.Flat-Remix-GTK-Blue
org.gtk.Gtk3theme.Flat-Remix-GTK-Blue-Dark
org.gtk.Gtk3theme.Flat-Remix-GTK-Blue-Darker
org.gtk.Gtk3theme.Flat-Remix-GTK-Blue-Darker-Solid
org.gtk.Gtk3theme.Flat-Remix-GTK-Blue-Darkest
org.gtk.Gtk3theme.Flat-Remix-GTK-Blue-Darkest-NoBorder
org.gtk.Gtk3theme.Flat-Remix-GTK-Blue-Darkest-Solid
org.gtk.Gtk3theme.Flat-Remix-GTK-Blue-Darkest-Solid-NoBorder
org.gtk.Gtk3theme.Flat-Remix-GTK-Blue-Dark-Solid
org.gtk.Gtk3theme.Flat-Remix-GTK-Blue-Solid
org.gtk.Gtk3theme.Flat-Remix-GTK-Green
org.gtk.Gtk3theme.Flat-Remix-GTK-Green-Dark
org.gtk.Gtk3theme.Flat-Remix-GTK-Green-Darker
org.gtk.Gtk3theme.Flat-Remix-GTK-Green-Darker-Solid
org.gtk.Gtk3theme.Flat-Remix-GTK-Green-Darkest
org.gtk.Gtk3theme.Flat-Remix-GTK-Green-Darkest-NoBorder
org.gtk.Gtk3theme.Flat-Remix-GTK-Green-Darkest-Solid
org.gtk.Gtk3theme.Flat-Remix-GTK-Green-Darkest-Solid-NoBorder
org.gtk.Gtk3theme.Flat-Remix-GTK-Green-Dark-Solid
org.gtk.Gtk3theme.Flat-Remix-GTK-Green-Solid
org.gtk.Gtk3theme.Flat-Remix-GTK-Red
org.gtk.Gtk3theme.Flat-Remix-GTK-Red-Dark
org.gtk.Gtk3theme.Flat-Remix-GTK-Red-Darker
org.gtk.Gtk3theme.Flat-Remix-GTK-Red-Darker-Solid
org.gtk.Gtk3theme.Flat-Remix-GTK-Red-Darkest
org.gtk.Gtk3theme.Flat-Remix-GTK-Red-Darkest-NoBorder
org.gtk.Gtk3theme.Flat-Remix-GTK-Red-Darkest-Solid
org.gtk.Gtk3theme.Flat-Remix-GTK-Red-Darkest-Solid-NoBorder
org.gtk.Gtk3theme.Flat-Remix-GTK-Red-Dark-Solid
org.gtk.Gtk3theme.Flat-Remix-GTK-Red-Solid
org.gtk.Gtk3theme.Flat-Remix-GTK-Yellow
org.gtk.Gtk3theme.Flat-Remix-GTK-Yellow-Dark
org.gtk.Gtk3theme.Flat-Remix-GTK-Yellow-Darker
org.gtk.Gtk3theme.Flat-Remix-GTK-Yellow-Darker-Solid
org.gtk.Gtk3theme.Flat-Remix-GTK-Yellow-Darkest
org.gtk.Gtk3theme.Flat-Remix-GTK-Yellow-Darkest-NoBorder
org.gtk.Gtk3theme.Flat-Remix-GTK-Yellow-Darkest-Solid
org.gtk.Gtk3theme.Flat-Remix-GTK-Yellow-Darkest-Solid-NoBorder
org.gtk.Gtk3theme.Flat-Remix-GTK-Yellow-Dark-Solid
org.gtk.Gtk3theme.Flat-Remix-GTK-Yellow-Solid
org.gtk.Gtk3theme.Greybird
org.gtk.Gtk3theme.Greybird
org.gtk.Gtk3theme.Greybird-dark
org.gtk.Gtk3theme.Greybird-Geeko-Dark
org.gtk.Gtk3theme.Greybird-Geeko-Light
org.gtk.Gtk3theme.Helium
org.gtk.Gtk3theme.Helium-dark
org.gtk.Gtk3theme.High-Sierra
org.gtk.Gtk3theme.High-Sierra-Dark
org.gtk.Gtk3theme.Jade-1
org.gtk.Gtk3theme.Jade-1-Amber
org.gtk.Gtk3theme.Jade-1-Aqua
org.gtk.Gtk3theme.Jade-1-Blue
org.gtk.Gtk3theme.Jade-1-Gray
org.gtk.Gtk3theme.Jade-1-Green
org.gtk.Gtk3theme.Jade-1-Indigo
org.gtk.Gtk3theme.Jade-1-Purple
org.gtk.Gtk3theme.Jade-1-Red
org.gtk.Gtk3theme.Jade-1-Teal
org.gtk.Gtk3theme.Lounge
org.gtk.Gtk3theme.Lounge-compact
org.gtk.Gtk3theme.Lounge-night
org.gtk.Gtk3theme.Lounge-night-compact
org.gtk.Gtk3theme.Matcha-aliz
org.gtk.Gtk3theme.Matcha-azul
org.gtk.Gtk3theme.Matcha-dark-aliz
org.gtk.Gtk3theme.Matcha-dark-azul
org.gtk.Gtk3theme.Matcha-dark-pueril
org.gtk.Gtk3theme.Matcha-dark-sea
org.gtk.Gtk3theme.Matcha-light-aliz
org.gtk.Gtk3theme.Matcha-light-azul
org.gtk.Gtk3theme.Matcha-light-pueril
org.gtk.Gtk3theme.Matcha-light-sea
org.gtk.Gtk3theme.Matcha-pueril
org.gtk.Gtk3theme.Matcha-sea
org.gtk.Gtk3theme.Materia
org.gtk.Gtk3theme.Materia-compact
org.gtk.Gtk3theme.Materia-dark
org.gtk.Gtk3theme.Materia-dark-compact
org.gtk.Gtk3theme.Materia-light
org.gtk.Gtk3theme.Materia-light-compact
org.gtk.Gtk3theme.Materia-nord
org.gtk.Gtk3theme.Materia-nord-compact
org.gtk.Gtk3theme.Mint-Y
org.gtk.Gtk3theme.Mint-Y-Aqua
org.gtk.Gtk3theme.Mint-Y-Blue
org.gtk.Gtk3theme.Mint-Y-Brown
org.gtk.Gtk3theme.Mint-Y-Dark
org.gtk.Gtk3theme.Mint-Y-Dark-Aqua
org.gtk.Gtk3theme.Mint-Y-Dark-Blue
org.gtk.Gtk3theme.Mint-Y-Dark-Brown
org.gtk.Gtk3theme.Mint-Y-Darker
org.gtk.Gtk3theme.Mint-Y-Darker-Aqua
org.gtk.Gtk3theme.Mint-Y-Darker-Blue
org.gtk.Gtk3theme.Mint-Y-Darker-Brown
org.gtk.Gtk3theme.Mint-Y-Darker-Grey
org.gtk.Gtk3theme.Mint-Y-Darker-Orange
org.gtk.Gtk3theme.Mint-Y-Darker-Pink
org.gtk.Gtk3theme.Mint-Y-Darker-Purple
org.gtk.Gtk3theme.Mint-Y-Darker-Red
org.gtk.Gtk3theme.Mint-Y-Darker-Sand
org.gtk.Gtk3theme.Mint-Y-Darker-Teal
org.gtk.Gtk3theme.Mint-Y-Dark-Grey
org.gtk.Gtk3theme.Mint-Y-Dark-Orange
org.gtk.Gtk3theme.Mint-Y-Dark-Pink
org.gtk.Gtk3theme.Mint-Y-Dark-Purple
org.gtk.Gtk3theme.Mint-Y-Dark-Red
org.gtk.Gtk3theme.Mint-Y-Dark-Sand
org.gtk.Gtk3theme.Mint-Y-Dark-Teal
org.gtk.Gtk3theme.Mint-Y-Grey
org.gtk.Gtk3theme.Mint-Y-Orange
org.gtk.Gtk3theme.Mint-Y-Pink
org.gtk.Gtk3theme.Mint-Y-Purple
org.gtk.Gtk3theme.Mint-Y-Red
org.gtk.Gtk3theme.Mint-Y-Sand
org.gtk.Gtk3theme.Mint-Y-Teal
org.gtk.Gtk3theme.Mojave-light
org.gtk.Gtk3theme.Numix
org.gtk.Gtk3theme.Numix-Frost
org.gtk.Gtk3theme.Numix-Frost-Light
org.gtk.Gtk3theme.Obsidian-2
org.gtk.Gtk3theme.Obsidian-2-Amber
org.gtk.Gtk3theme.Obsidian-2-Aqua
org.gtk.Gtk3theme.Obsidian-2-Gray
org.gtk.Gtk3theme.Obsidian-2-Green
org.gtk.Gtk3theme.Obsidian-2-Indigo
org.gtk.Gtk3theme.Obsidian-2-Mint
org.gtk.Gtk3theme.Obsidian-2-Purple
org.gtk.Gtk3theme.Obsidian-2-Red
org.gtk.Gtk3theme.Obsidian-2-Teal
org.gtk.Gtk3theme.Plata
org.gtk.Gtk3theme.Plata
org.gtk.Gtk3theme.Plata-Compact
org.gtk.Gtk3theme.Plata-Compact
org.gtk.Gtk3theme.Plata-Lumine
org.gtk.Gtk3theme.Plata-Lumine
org.gtk.Gtk3theme.Plata-Lumine-Compact
org.gtk.Gtk3theme.Plata-Lumine-Compact
org.gtk.Gtk3theme.Plata-Noir
org.gtk.Gtk3theme.Plata-Noir
org.gtk.Gtk3theme.Plata-Noir-Compact
org.gtk.Gtk3theme.Plata-Noir-Compact
org.gtk.Gtk3theme.Pop
org.gtk.Gtk3theme.Pop-dark
org.gtk.Gtk3theme.Pop-light
org.gtk.Gtk3theme.Pop-slim-dark
org.gtk.Gtk3theme.Pop-slim-light
org.gtk.Gtk3theme.Qogir
org.gtk.Gtk3theme.Qogir
org.gtk.Gtk3theme.Qogir-dark
org.gtk.Gtk3theme.Qogir-light
org.gtk.Gtk3theme.Qogir-light
org.gtk.Gtk3theme.Qogir-manjaro
org.gtk.Gtk3theme.Qogir-manjaro
org.gtk.Gtk3theme.Qogir-manjaro-dark
org.gtk.Gtk3theme.Qogir-manjaro-dark
org.gtk.Gtk3theme.Qogir-manjaro-light
org.gtk.Gtk3theme.Qogir-manjaro-light
org.gtk.Gtk3theme.Qogir-manjaro-win
org.gtk.Gtk3theme.Qogir-manjaro-win
org.gtk.Gtk3theme.Qogir-manjaro-win-dark
org.gtk.Gtk3theme.Qogir-manjaro-win-dark
org.gtk.Gtk3theme.Qogir-manjaro-win-light
org.gtk.Gtk3theme.Qogir-manjaro-win-light
org.gtk.Gtk3theme.Qogir-ubuntu
org.gtk.Gtk3theme.Qogir-ubuntu
org.gtk.Gtk3theme.Qogir-ubuntu-dark
org.gtk.Gtk3theme.Qogir-ubuntu-dark
org.gtk.Gtk3theme.Qogir-ubuntu-light
org.gtk.Gtk3theme.Qogir-ubuntu-light
org.gtk.Gtk3theme.Qogir-ubuntu-win
org.gtk.Gtk3theme.Qogir-ubuntu-win
org.gtk.Gtk3theme.Qogir-ubuntu-win-dark
org.gtk.Gtk3theme.Qogir-ubuntu-win-dark
org.gtk.Gtk3theme.Qogir-ubuntu-win-light
org.gtk.Gtk3theme.Qogir-ubuntu-win-light
org.gtk.Gtk3theme.Qogir-win
org.gtk.Gtk3theme.Qogir-win
org.gtk.Gtk3theme.Qogir-win-dark
org.gtk.Gtk3theme.Qogir-win-dark
org.gtk.Gtk3theme.Qogir-win-light
org.gtk.Gtk3theme.Qogir-win-light
org.gtk.Gtk3theme.Sierra-Negra
org.gtk.Gtk3theme.SolArc-Dark
org.gtk.Gtk3theme.Yaru
org.gtk.Gtk3theme.Yaru-Amber
org.gtk.Gtk3theme.Yaru-Amber
org.gtk.Gtk3theme.Yaru-Amber-dark
org.gtk.Gtk3theme.Yaru-Amber-dark
org.gtk.Gtk3theme.Yaru-Amber-light
org.gtk.Gtk3theme.Yaru-Amber-light
org.gtk.Gtk3theme.Yaru-Aqua
org.gtk.Gtk3theme.Yaru-Aqua
org.gtk.Gtk3theme.Yaru-Aqua-dark
org.gtk.Gtk3theme.Yaru-Aqua-dark
org.gtk.Gtk3theme.Yaru-Aqua-light
org.gtk.Gtk3theme.Yaru-Aqua-light
org.gtk.Gtk3theme.Yaru-Aubergine
org.gtk.Gtk3theme.Yaru-Aubergine-dark
org.gtk.Gtk3theme.Yaru-Aubergine-light
org.gtk.Gtk3theme.Yaru-bark
org.gtk.Gtk3theme.Yaru-bark-dark
org.gtk.Gtk3theme.Yaru-Blue
org.gtk.Gtk3theme.Yaru-Blue
org.gtk.Gtk3theme.Yaru-Blue-dark
org.gtk.Gtk3theme.Yaru-Blue-dark
org.gtk.Gtk3theme.Yaru-Blue-light
org.gtk.Gtk3theme.Yaru-Blue-light
org.gtk.Gtk3theme.Yaru-Brown
org.gtk.Gtk3theme.Yaru-Brown
org.gtk.Gtk3theme.Yaru-Brown-dark
org.gtk.Gtk3theme.Yaru-Brown-dark
org.gtk.Gtk3theme.Yaru-Brown-light
org.gtk.Gtk3theme.Yaru-Brown-light
org.gtk.Gtk3theme.Yaru-Cinnamon
org.gtk.Gtk3theme.Yaru-Cinnamon
org.gtk.Gtk3theme.Yaru-Cinnamon-dark
org.gtk.Gtk3theme.Yaru-Cinnamon-dark
org.gtk.Gtk3theme.Yaru-Cinnamon-light
org.gtk.Gtk3theme.Yaru-Cinnamon-light
org.gtk.Gtk3theme.Yaru-dark
org.gtk.Gtk3theme.Yaru-Deepblue
org.gtk.Gtk3theme.Yaru-Deepblue
org.gtk.Gtk3theme.Yaru-Deepblue-dark
org.gtk.Gtk3theme.Yaru-Deepblue-dark
org.gtk.Gtk3theme.Yaru-Deepblue-light
org.gtk.Gtk3theme.Yaru-Deepblue-light
org.gtk.Gtk3theme.Yaru-Green
org.gtk.Gtk3theme.Yaru-Green
org.gtk.Gtk3theme.Yaru-Green-dark
org.gtk.Gtk3theme.Yaru-Green-dark
org.gtk.Gtk3theme.Yaru-Green-light
org.gtk.Gtk3theme.Yaru-Green-light
org.gtk.Gtk3theme.Yaru-Grey
org.gtk.Gtk3theme.Yaru-Grey
org.gtk.Gtk3theme.Yaru-Grey-dark
org.gtk.Gtk3theme.Yaru-Grey-dark
org.gtk.Gtk3theme.Yaru-Grey-light
org.gtk.Gtk3theme.Yaru-Grey-light
org.gtk.Gtk3theme.Yaru-Lavender
org.gtk.Gtk3theme.Yaru-Lavender-dark
org.gtk.Gtk3theme.Yaru-Lavender-light
org.gtk.Gtk3theme.Yaru-light
org.gtk.Gtk3theme.Yaru-magenta
org.gtk.Gtk3theme.Yaru-magenta-dark
org.gtk.Gtk3theme.Yaru-MATE
org.gtk.Gtk3theme.Yaru-MATE
org.gtk.Gtk3theme.Yaru-MATE-dark
org.gtk.Gtk3theme.Yaru-MATE-dark
org.gtk.Gtk3theme.Yaru-MATE-light
org.gtk.Gtk3theme.Yaru-MATE-light
org.gtk.Gtk3theme.Yaru-olive
org.gtk.Gtk3theme.Yaru-olive-dark
org.gtk.Gtk3theme.Yaru-Orange
org.gtk.Gtk3theme.Yaru-Orange
org.gtk.Gtk3theme.Yaru-Orange-dark
org.gtk.Gtk3theme.Yaru-Orange-dark
org.gtk.Gtk3theme.Yaru-Orange-light
org.gtk.Gtk3theme.Yaru-Orange-light
org.gtk.Gtk3theme.Yaru-Pink
org.gtk.Gtk3theme.Yaru-Pink
org.gtk.Gtk3theme.Yaru-Pink-dark
org.gtk.Gtk3theme.Yaru-Pink-dark
org.gtk.Gtk3theme.Yaru-Pink-light
org.gtk.Gtk3theme.Yaru-Pink-light
org.gtk.Gtk3theme.Yaru-prussiangreen
org.gtk.Gtk3theme.Yaru-prussiangreen-dark
org.gtk.Gtk3theme.Yaru-Purple
org.gtk.Gtk3theme.Yaru-Purple
org.gtk.Gtk3theme.Yaru-Purple-dark
org.gtk.Gtk3theme.Yaru-Purple-dark
org.gtk.Gtk3theme.Yaru-Purple-light
org.gtk.Gtk3theme.Yaru-Purple-light
org.gtk.Gtk3theme.Yaru-Red
org.gtk.Gtk3theme.Yaru-Red
org.gtk.Gtk3theme.Yaru-Red-dark
org.gtk.Gtk3theme.Yaru-Red-dark
org.gtk.Gtk3theme.Yaru-Red-light
org.gtk.Gtk3theme.Yaru-Red-light
org.gtk.Gtk3theme.Yaru-remix
org.gtk.Gtk3theme.Yaru-remix-dark
org.gtk.Gtk3theme.Yaru-remix-light
org.gtk.Gtk3theme.Yaru-sage
org.gtk.Gtk3theme.Yaru-sage-dark
org.gtk.Gtk3theme.Yaru-Teal
org.gtk.Gtk3theme.Yaru-Teal
org.gtk.Gtk3theme.Yaru-Teal-dark
org.gtk.Gtk3theme.Yaru-Teal-dark
org.gtk.Gtk3theme.Yaru-Teal-light
org.gtk.Gtk3theme.Yaru-Teal-light
org.gtk.Gtk3theme.Yaru-Yellow
org.gtk.Gtk3theme.Yaru-Yellow-dark
org.gtk.Gtk3theme.Yaru-Yellow-dark
org.gtk.Gtk3theme.Yaru-Yellow-light
org.gtk.Gtk3theme.Yaru-Yellow-light
org.gtk.Gtk3theme.Zukitre
org.gtk.Gtk3theme.Zukitwo
You can see at the top of the list adw-gtk3
and adw-gtk3-dark
are separate packages, so if you wanted to support both light and dark modes, install them both:
❯ for T in adw-gtk3 adw-gtk3-dark; do flatpak install -uy org.gtk.Gtk3theme.$T; done
Code language: Bash (bash)
See if there’s a packaged or scripted version of the same theme on your distro before installing from Gnome Look – I lucked out and there was one already in the AUR (number 3 looked good to me!):
❯ paru -Ss adw-gtk3
<strong>aur</strong>/<strong>adw-gtk35.3-1</strong> [<strong>+43 ~3.15</strong>]
The theme from libadwaita ported to GTK-3
<strong>aur</strong>/<strong>adw-gtk3-git1.0.r2.a2a0114-1</strong> [<strong>+15 ~1.21</strong>]
The theme from libadwaita ported to GTK-3
<strong>aur</strong>/<strong>adw-gtk-theme1.1-2</strong> [<strong>+12 ~1.00</strong>]
LibAdwaita Theme for all GTK3 and GTK4 Apps. NOTE: This is a meta package
which uses adw-gtk3 for GTK3 and official LibAdwaita theme for GTK4
Code language: Bash (bash)
If you do have to install a theme package manually, just remember they can go in either /usr/share/themes/.
(system-wide) or $HOME/.local/share/themes
(user), but not both!
Go to kcm_style
in your KDE settings panel and choose “Configure GNOME/GTK Application Style” (top right)
❯ systemsettings <strong>kcm</strong>_style
Code language: Bash (bash)
Last step (hopefully):
Tell gsettings
your defaults – this has to be done from the command line unless you have dconf-editor
or gnome-tweaks
installed for some reason (unusual and unnecessary for a KDE-centric system). Here’s the key-value pairs:
❯ gsettings set org.gnome.desktop.interface gtk-theme 'adw-gtk3-dark';
gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'
Code language: Bash (bash)
Replace the values at the end with your particular theme and preference, of course (again, I choose adw-gtk3-dark
, mostly because I knew it would be the best supported theme). Obviously, if you don’t 'prefer-dark'
that second line is optional.
OK now try starting one of the flatpaks you’ve been having issues with and see how it went!
If it’s still not loading in your preferred theme, I’d go back and check the steps to make sure you covered them properly. You can try gsettings get
on org.gnome.desktop.interface gtk-theme
to check that it has your proper value, or check /usr/share/themes
to make sure a folder exists with the name of the theme you thought you installed (manually or with a package manager) or $HOME/.local/share/themes/
if you installed it manually to your user folder.
If those all seem legit, check out xsettingsd
: It looks like it’s a dependency of kde-gtk-config
on Arch Linux currently, so you might already have it:
❯ pacman -Qi xsettingsd
Name : xsettingsd
Version : 1.0.2-1
Description : Provides settings to X11 applications via the XSETTINGS specification
Architecture : x86_64
URL : https://github.com/derat/xsettingsd
Licenses : custom:BSD
Groups : None
Provides : None
Depends On : libx11 gcc-libs
Optional Deps : None
Required By : kde-gtk-config
Optional For : None
Conflicts With : None
Replaces : None
Installed Size : 78.82 KiB
Packager : Antonio Rojas <arojas@archlinux.org>
Build Date : Mon 09 Aug 2021 04:16:10 AM PDT
Install Date : Sat 16 Mar 2024 10:31:30 PM PDT
Install Reason : Installed as a dependency for another package
Install Script : No
Validated By : Signature
Code language: Bash (bash)
Do the usual checks to make sure it’s running (it’s only visible using systemctl --user
in Arch):
❯ systemctl --user status xsettingsd.service
● xsettingsd.service - XSETTINGS-protocol daemon
Loaded: loaded (/usr/lib/systemd/user/xsettingsd.service; static)
Active: active (running) since Sat 2024-03-23 14:35:18 PDT; 1h 52min ago
Main PID: 469119 (xsettingsd)
Tasks: 1 (limit: 9084)
Memory: 156.0K (peak: 696.0K swap: 344.0K swap peak: 344.0K zswap: 55.8K)
CPU: 4ms
CGroup: /user.slice/user-1000.slice/user@1000.service/session.slice/xsettingsd.service
└─469119 /usr/bin/xsettingsd
Mar 23 14:35:18 purplehippo systemd[1283]: Started XSETTINGS-protocol daemon.
Mar 23 14:35:18 purplehippo xsettingsd[469119]: xsettingsd: Loaded 14 settings from /home/avery/.config/xsettingsd/xsettingsd.conf
Mar 23 14:35:18 purplehippo xsettingsd[469119]: xsettingsd: Created window 0xc00001 on screen 0 with timestamp 5373106
Mar 23 14:35:18 purplehippo xsettingsd[469119]: xsettingsd: Selection _XSETTINGS_S0 is owned by 0x0
Mar 23 14:35:18 purplehippo xsettingsd[469119]: xsettingsd: Took ownership of selection _XSETTINGS_S0
Mar 23 14:53:07 purplehippo xsettingsd[469119]: xsettingsd: Reloading configuration
Mar 23 14:53:07 purplehippo xsettingsd[469119]: xsettingsd: Loaded 14 settings from /home/avery/.config/xsettingsd/xsettingsd.conf
Code language: JavaScript (javascript)
If it’s having an issue, try restarting it, or you can examine the configuration file it creates automatically in your $XDG_CONFIG_HOME
dir and make sure it all looks reasonable:
❯ bat $XDG_CONFIG_HOME/xsettingsd/xsettingsd.conf
──────┬──────────────────────────────────────────────────────────────────────────────────────────────────────
│ File: /home/avery/.config/xsettingsd/xsettingsd.conf
──────┼──────────────────────────────────────────────────────────────────────────────────────────────────────
1 │ Gdk/UnscaledDPI 98304
2 │ Gdk/WindowScalingFactor 1
3 │ Gtk/EnableAnimations 1
4 │ Gtk/DecorationLayout "icon:minimize,maximize,close"
5 │ Net/ThemeName "adw-gtk3-dark"
6 │ Gtk/PrimaryButtonWarpsSlider 0
7 │ Gtk/ToolbarStyle 3
8 │ Gtk/MenuImages 1
9 │ Gtk/ButtonImages 1
10 │ Gtk/CursorThemeSize 64
11 │ Gtk/CursorThemeName "Posy_Cursor_125_175"
12 │ Net/SoundThemeName "ocean"
13 │ Net/IconThemeName "Papirus"
14 │ Gtk/FontName "Noto Sans, 10"
15 │
──────┴──────────────────────────────────────────────────────────────────────────────────────────────────────
Code language: JavaScript (javascript)
if THAT all looks fine, there was one last thing on wiki.archlinux.org that looked like it might work (especially with Window Manager-type setups like minimal tiling desktop such as sway and dwm – although, if you’re into minimal WMs, not sure if you’d like flatpaks – in any event, nobody’s a monolith…). You could put something like this in $HOME/bin
and call it refresh-flatpak-themes
(etc.) then run it when you see one getting dodgy:
#!/usr/bin/env bash
for FLATPAK_APP in "$HOME/.var/app/*"; do
[ -d "$HOME/.var/app/$FLATPAK_APP/config/gtk-3.0" ] ||
/usr/bin/ln -s "$HOME/.config/gtk-3.0" "$HOME/.var/app/$FLATPAK_APP/config/"
done
Code language: JavaScript (javascript)
Which basically just loops through each flatpak app you have in your user’s .var
folder, checks to see if it has a gtk-3.0
definition folder, and if not, makes a symbolic link to where one usually lives in your $XDG_CONFIG_HOME
. You could try making the symlink to one manually to see if it works before setting up a script, but if it works out, hey, go for it.
Another option I saw which looks pretty elegant is outlined here on a xerolinux-specific BB, but should apply to pretty much any distro using the xdg user-dirs
spec:
❯ export GTK3_THEME=(name of preferred theme);
flatpak --user override --filesystem=$HOME/.local/share/themes;
flatpak --user override --filesystem=$XDG_CONFIG_HOME/gtk-3.0:ro;
for FLATPAK_APP in $HOME/.var/app/*; do flatpak --user override \
$FLATPAK_APP --env=GTK_THEME=$GTK3_THEME; done
Code language: PHP (php)
Quick pointers for troubleshooting:
- The
user-dirs.dirs
file usually lives at $HOME/.config/user-dirs.dirs
- Any
$VARIABLE
can be echoed to the screen using echo $VARNAME
(make sure they’re properly set)