Qual é a diferença entre DESKTOP_SESSION, XDG_SESSION_DESKTOP e XDG_CURRENT_DESKTOP?

9

Quero detectar qual gerenciador de desktop estou executando e descobri que existem três variáveis ​​de ambiente, DESKTOP_SESSION , XDG_SESSION_DESKTOP, e XDG_CURRENT_DESKTOPque poderia me ajudar a fazê-lo. Mas qual é exatamente a diferença entre essas três variáveis? Desde já, obrigado.

Sora Minazuki
fonte

Respostas:

2

Eu não tenho certeza do que o oficial são as razões para ter muitas variáveis ​​diferentes, provavelmente diferentes gerenciadores de janelas e telas, todos eles fazem suas próprias configurações particulares.

Mas todos eles parecem iguais, portanto, usar qualquer um deve funcionar ...

Aqui está o que o XFCE do Mint tem:

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

e também

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

Ou (de env):

XDG_MENU_PREFIX=xfce-
UPSTART_JOB=startxfce4

Sua melhor aposta (se você tiver wmctrl) pode ser combinada com grep / cut:

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

Você também pode usar um gerenciador de janelas e um gerenciador de exibição diferentes, e algumas distribuições diferentes armazenam dados em locais diferentes, para que a confusão reine suprema . Veja estes Q's muito relacionados:

Xen2050
fonte