What is the difference between DESKTOP_SESSION, XDG_SESSION_DESKTOP, and XDG_CURRENT_DESKTOP?

9

2

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.

Sora Minazuki

Posted 2016-05-07T01:04:46.020

Reputation: 139

Answers

1

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:

Xen2050

Posted 2016-05-07T01:04:46.020

Reputation: 12 097