8

I want to detect which desktop manager I am running, and I found out that there are three environment variables, DESKTOP_SESSION , XDG_SESSION_DESKTOP , and XDG_CURRENT_DESKTOP which could help me do so. But what exactly is the difference between these three variables? Thanks in advance.

0

I'm not sure what the official reasons are for having many different variables, most likely different window & display managers all do their own particular configurations.

But all of them look the same, so using any one should work...

Here's what Mint's XFCE has:

$ echo $DESKTOP_SESSION 
xfce
$ echo $XDG_SESSION_DESKTOP 
xfce
$ echo $XDG_CURRENT_DESKTOP 
XFCE

and also

$ echo $SESSION
xfce
$ echo $MDMSESSION 
xfce
$ echo $GDMSESSION 
xfce

Or (from env):

XDG_MENU_PREFIX=xfce-
UPSTART_JOB=startxfce4

Your best bet (if you've got wmctrl) may be this combined with grep/cut:

$ wmctrl -m
Name: Xfwm4
Class: xfwm4
PID: 5449
Window manager's "showing the desktop" mode: N/A

You can also be using a different Window Manager and Display Manager, and some different distributions store data in different places, so confusion reigns supreme. See these very related Q's:

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.