Guide: Xfce global dark mode in Qubes 4.0 / 4.1

Another tip I came across: With a dark theme in LibreOffice, some of the toolbar icons become illegible, but installing libreoffice-style-breeze fixes this by replacing the icons with nicer ones that work well with the dark theme.

1 Like

Bump?

Sorry, not have any wiser answer then “it works for me”. But… I just use gtk-application-prefer-dark-theme=1 and nothing else for minimals since I just want them to be dark, without installing anything unnecessary in them.

1 Like

How does one do this?

Example:

  1. Open a terminal emulator in dom0.
  2. Type sudo vim /etc/environment. Press Enter.
  3. Press i.
  4. Type QT_QPA_PLATFORMTHEME=gtk2.
  5. Press Escape.
  6. Type :x. Press Enter.
1 Like

I’m a few months late, but since I don’t think this ever got addressed here:

Open a terminal in your AppVM and type:
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
(That’ll sort out libreoffice, nautilus/files and standard gnome apps like calculator.)

1 Like

Edit: Thanks @Fom for the tip. Now I see that you’re responding on Nautilus issue which doesn’t need to install any extra package. Great!

Hoping something like this makes it easy into qubes by default.

I don’t like the idea of installing inside of dom0. Too risky for a non technical user like me

Installing what exactly in dom0? You don’t seem to reply on any specific post, so it’s unclear.

TL;DR, this is great work, but a lot of things need to be done manually.
is there a well thought solution that can change the basic themes to the dark and back automatically?

Instead, for people like me who work on the computer around the clock, a light theme is required in the daytime, and a dark theme at night. I think this could be triggered from dom0. It is ok to wait a few minutes for the script to change all themes in all VMs one by one.

across all available VMs, run this for light theme
gsettings set org.gnome.desktop.interface gtk-theme “Adwaita”

this for dark
gsettings set org.gnome.desktop.interface gtk-theme “Adwaita-dark”

I’ve figured out some details towards a scripting workaround. Some specifics are per KDE.

create a global theme switcher that runs on dom0 that will

  • switch to dark/light wallpaper (i prefer plain color)
  • change dom0 terminal’s color scheme at runtime
  • get a list of running vms and change their gnome theme

some hints for dark.sh:

lookandfeeltool -a org.kde.breezedark.desktop
./change-kde-wallpaper-color.sh 50,50,100
ln -sf $HOME/.config/alacritty/tokyo-night.yaml $HOME/.config/alacritty/alacritty-theme.yaml
sleep 0.5
touch $HOME/.config/alacritty/alacritty.yml
for i in `./get-all-running-vms.sh `; do ./change-dark.sh $i; done

get-all-running-vms.sh:

qvm-ls --running --raw-data|grep AppVM |cut -f 1 -d\|

change-kde-wallpaper-color.sh:

color=$1

qdbus  org.kde.plasmashell /PlasmaShell org.kde.PlasmaShell.evaluateScript 'string:
var Desktops = desktops();

for (i=0;i<Desktops.length;i++) {
        d = Desktops[i];
        d.wallpaperPlugin = "org.kde.color";
        d.currentConfigGroup = Array("Wallpaper",
                                    "org.kde.color",
                                    "General");
        d.writeConfig("Color", "'${color}'");
}'

sleep 1
kquitapp5 plasmashell
kstart5 plasmashell > /dev/null 2>&1

can switch to dark without dealing with manual settings. I think a better tool can be integrated to dom0.

1 Like

Can you help me with fedora 38 and QT? It looks like there is no gtk2 so probably we need other set of packages.

Sorry, not a Fedora user.

I installed qgnomeplatform and it works. But maybe there is a simpler solution.

1 Like

Is there a workflow for a dark mode (themes, icons) for Debian 12?

I wouldn’t expect any of this to have changed significantly between Debian 10,11 and 12. And I’d give a try to the instructions at the end of the guide (direct link that wasn’t a direct link, my mistake, but there is a table of contents!).

If you find those to work to your satisfaction, it may be worth updating the guide to mention Debian 12, or to remove the numbers and leave only Debian :slightly_smiling_face:

If you are referring to Nautilus being broken, it’s because it doesn’t use standard GTK themes in Gnome 44.

It always uses the gtk.css from ~/.config/gtk-4.0

You can overwrite ~/.config/gtk-4.0/gtk.css with the 4.0 css file from the theme you want to use, at least that worked for me.

This file with:

/* QUBES BEGIN */
/* Do not modify text until end marker, it will get overriden on update */
/* See https://github.com/QubesOS/qubes-issues/issues/8081#issuecomment-1473412028 */

header :stuck_out_tongue: ?

Do you know another way to apply themes to nautilus?

You can add the qubes specific changes to the end of the theme, and it’s likely to overwrite any conflicting changes done by the theme.

Also it looks like QT workaround is broken in Debian 12 somehow. It not apply to KeepassXC. Also it looks like it scaling down fonts in nautilus.