If you have a mostly Gnome system then you can make sure to run these lines when you login:
dconf write /org/gnome/desktop/interface/color-scheme "'prefer-dark'"
dconf write /org/gnome/desktop/interface/gtk-theme "'Adwaita-dark'"
I have two simple shell scripts, prefer-light
and prefer-dark
that I run when I want to switch:
❯ cat $(which prefer-dark)
#!/nix/store/xy4jjgw87sbgwylm5kn047d9gkbhsr9x-bash-5.2p37/bin/bash
dconf write /org/gnome/desktop/interface/color-scheme "'prefer-dark'"
dconf write /org/gnome/desktop/interface/gtk-theme "'Adwaita-dark'"
❯ cat $(which prefer-light)
#!/nix/store/xy4jjgw87sbgwylm5kn047d9gkbhsr9x-bash-5.2p37/bin/bash
dconf write /org/gnome/desktop/interface/color-scheme "'prefer-light'"
dconf write /org/gnome/desktop/interface/gtk-theme "'Adwaita'"
If you want to go deeper and also affect Qt applications and such, then you can always look at the Home Manager source code to see the files that it writes when you follow the tutorials.