В чем разница между DESKTOP_SESSION, XDG_SESSION_DESKTOP и XDG_CURRENT_DESKTOP?

9

Я хочу определить, какой менеджер рабочего стола я использую, и обнаружил, что есть три переменные среды DESKTOP_SESSION, XDG_SESSION_DESKTOPи XDG_CURRENT_DESKTOPкоторые могут помочь мне в этом. Но в чем именно разница между этими тремя переменными? Заранее спасибо.

Сора Миназуки
источник

Ответы:

2

Я не уверен, каковы официальные причины наличия множества разных переменных, скорее всего, разные менеджеры окон и дисплеев все делают свои собственные конкретные конфигурации.

Но все они выглядят одинаково, поэтому использование любого из них должно работать ...

Вот что у Mint XFCE:

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

а также

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

Или (с env):

XDG_MENU_PREFIX=xfce-
UPSTART_JOB=startxfce4

Ваша лучшая ставка (если у вас есть wmctrl) может быть в сочетании с grep / cut:

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

Вы также можете использовать другой диспетчер окон и диспетчер дисплеев, и в некоторых разных дистрибутивах данные хранятся в разных местах, так что путаница царит . Смотрите эти очень похожие вопросы:

Xen2050
источник