LXAppearance stopped working


I installed gnome calendar to my system. After the installation my default dark theme changed to light theme. Some icons also changed. LXAppearance can’t change the themes anymore, so I guess along with calendar came some gnome settings that overrides the LXAppearance.

Does anyone know how to change this. I don’t want any gnome stuff, just the desktop app that syncs with my google calendar.


Ok, I removed gnome-calendar and after that run:

sudo pacman -R $(pacman -Qdtq)

multiple times. After rebooting LXAppearance works again. Maybe I’ll just install another calendar.

Opinion with SOME facts. Using a gnome or kde component will pull a lot of dependencies in, so it’s probably not the best option for someone on another DE to choose. Strange things happen too (like you detail) :slight_smile:

LXAppearance requires at least a re-login for many apps to follow new theme.

I think that there are some changes to GTK.
I am still on research but it seems now we have gtk2 gtk3 and gtk4 setting at the same time and in addition, it saves settings outside the known files …

When using any Gnome, KDE or other major DE (as their developers like to think of their products), you are getting into their world, with them thinking there is no other DE except their perfect DE.
Gnome, KDE and Cinnamon (that I know of) ship their apps with dependencies which provide autostarted daemons and utilities that start in any DE user session, without any conditional checking.

Some places/ways you can find them are

ls /etc/xdg/autostart/  # .desktop files that autostart daemons/utilities
ls /usr/lib/systemd/user/  # user session service files that autostart daemons/utilities
systemctl --user list-units -t service  # autostarted and running daemons in current session

Some of them do and others don’t start if their accompanying DE is not running.
You can inspect journal and systemctl status to find out which do what.

If you decide you want to disable/override any of them, you can make a relevant override.
For .desktop files in /etc/xdg/autostart/, copy the relevant file with the same filename in $HOME/.config/autostart/*.desktop, adding a field in the [Desktop Entry] section with one of these:


Hidden=true disables it in all DEs/sessions.
OnlyShowIn= disables it in all DEs/sessions except those in the list/array.
NotShowIn=bspwm; disables it only in DEs/sessions in the list/array.
The last two require your DESKTOP_SESSION environment variable is set properly. BSPWM does not do that automatically, so you have to do it in your .profile, and/or .xprofile in your $HOME/.

For services, you can add a conditional check with an override, using systemctl --user edit service_name.service and add something like this:

Wrong method, deleted for future readers.

Edit: Unfortunately, the above method to disable user services per session does not work, because env vars are not read from systemd in the same way they are from bash or session login. If I find a working approach, I"ll update… :cry:


After you make changes, relogin and check again for success, as env vars configuration is messy in user sessions that work on more than one DE/WM.

Thank you for the answers. I look into them.

For adding more info to this, here’s what’s written as a banner in $HOME/.gtkrc-2.0

# DO NOT EDIT! This file will be overwritten by LXAppearance.
# Any customization should be done in ~/.gtkrc-2.0.mine instead.

Guess what! Cinnamon edits this same file and adds a similar banner, saying it’s being edited by Cinnamon, DO NOT EDIT! :rofl: :rofl: :rofl:
I suppose Gnome and KDE do the same thing! :rofl: :rofl: :rofl:

And since we are at BSPWM section, bspwm has its own autostart method, using dex to start XDG autostart entries. I have added a parameter to pass a bspwm session, so the changes I mention in my previous posts (OnlyShowIn, NotShowIn) have effect, since bspwm is not a known session.

# Dex (with FIXED env DESKTOP_SESSION setting)
dex -e bspwm -a -s /etc/xdg/autostart/:~/.config/autostart/
1 Like

DO NOT under any circumstances press the big shiny red button.


1 Like