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:
OnlyShowIn=KDE;kde;cinnamon;Cinnamon;
NotShowIn=bspwm;
Hidden=true
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… 
========
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.