This summary is based on (and quotes) the Qubes Community guide, this and that — especially @Sven’s extensive work, see also this thread.
The following text and screenshots describe how to change the default light theme to a global dark theme. It's just an example; feel free to adjust the appearance to your taste.
And here are the final results:
Dom0 Qube Manager, Dom0 Terminal, Fedora 35 VMs, Debian 11 VM; desktop background color #3B3941 (external full HD display)
Qubes Applications Menu is darkened as well
Note: Of course, several apps (e.g., Terminal and Gedit) can be styled in the app itself. Here, Dom0 Terminal’s background color is set to the desktop background color — because fusion. 😉
Change Appearance
Open the Appearance window:
Qubes Applications Menu --> System Tools --\> Appearance
Select Style --\> Adwaita-dark. It’s probably the most ›classic‹ and readable/contrasty of the dark styles here. But, of course, feel free …
Adjust Icons, Fonts and Settings to your taste. In all these examples here, icons are always set to Gnome and fonts to DejaVu Sans family.
Change Style in Window Manager
Open the Window Manager dialog:
Qubes Applications Menu --> System Tools --> Window Manager --> Style
- Change Theme in Style tab to G2, Wallis, or Bluebird. These are probably the most ›classic‹ and readable/contrasty. Bluebird's borders appear more elegant, but it could be difficult to grab the window’s edges in order to resize. But feel free …
Note: Most of the Qubes OS UI in dom0 is now Qt5 based and doesn’t adhere to the selected theme by default. This can be remedied by:
sudo qubes-dom0-update qt5-qtstyleplugins
Then add QT_QPA_PLATFORMTHEME=gtk2 to /etc/environment. Reboot. Done.
Install and use Gnome Tweaks
In templateVM:
sudo dnf install gnome-tweaks
Note: See How to update.
Shutdown templateVM and add Tweaks to App shortcuts of appVM in Qube Manager.
Start Tweaks in appVM.
Select Appearance --\> Themes --\> Applications --\> Adwaita-dark (adjust also all the other options to your taste):
Notes: You have to do this in the templateVM and all appVMs; changes you make in the home directory of a templateVM will not reflect in the template based VM by design. For dispVMs see this.
If you want to use gnome-settings-daemon and Gnome Tweaks, it’s probably best to delete settings.ini and .gtkrc-2.0 (see following Debian section).
To make sure QT apps look good, too: In templateVM install qt5-qtstyleplugins, gtk-murrine-engine and gnome-themes-standard. Add QT_QPA_PLATFORMTHEME=gtk2 to /etc/environment.
In Debian, things are getting a little bit trickier …
AppVMs seem to work best without gnome-settings-daemon (see end of Fedora section above). In that case set DPI in /etc/X11/Xresources/x11-common using Xft.dpi: (probably 96) in template VM.
Make sure your appVMs have both ~/.config/gtk-3.0/settings.ini and ~/gtkrc-2.0:
settings.ini
[Settings]
gtk-application-prefer-dark-theme=1
gtk-font-name=DejaVu Sans Book 12
gtk-theme-name=Adwaita-dark
gtk-icon-theme-name=Gnome
.gtkrc-2.0
include "/usr/share/themes/Adwaita-dark/gtk-2.0/gtkrc"
style "user-font"
{
font_name="DejaVu Sans Book"
}
widget_class "*" style "user-font"
gtk-font-name="DejaVu Sans Book 12"
gtk-theme-name="Adwaita-dark"
gtk-icon-theme-name="Gnome"
Put these files to /etc/skel of the templateVM, so they get created automatically if you set up a new appVM based on that templateVM.
To make sure QT apps look good, too: In templateVM install qt5-style-plugins, gtk2-engines-murrine, and gnome-themes-standard. Then add these two lines to /etc/environment:
QT_QPA_PLATFORMTHEME=gtk2
QT_SCALE_FACTOR=1
Done!
To do? Darken Firefox websites and Thunderbird emails just with userChrome.css and userContent.css, not via extensions/add-ons.
Note: Some panel (applet) icons, e.g., NetworkManager — see ›global‹ screenshot at the beginning of this guide —, notification-daemon, Joplin and Keybase, remain with white instead of dark resp. transparent backgrounds. For NetworkManager icon, see Qubes issue #2846.