Как я могу узнать то, что моя настольная среда использует Python? Мне нравится, когда результат гном или KDE или иначе.
Проверено в Ubuntu 9.10:
>>> import os
>>> os.environ.get('DESKTOP_SESSION')
'gnome'
Правка: Как упоминалось в комментариях ниже, такой подход не будет работать для некоторых ОС. Два других ответа дают обходные пути.
Вы можете попробовать это:
def detect_desktop_environment():
desktop_environment = 'generic'
if os.environ.get('KDE_FULL_SESSION') == 'true':
desktop_environment = 'kde'
elif os.environ.get('GNOME_DESKTOP_SESSION_ID'):
desktop_environment = 'gnome'
else:
try:
info = getoutput('xprop -root _DT_SAVE_MODE')
if ' = "xfce4"' in info:
desktop_environment = 'xfce'
except (OSError, RuntimeError):
pass
return desktop_environment
И прочитать обсуждение здесь: http://ubuntuforums.org/showthread.php?t=1139057
Иногда люди управляют смесью настольных сред. Сделайте ваше приложение Desktop-Agnostic, используя XDG-Utils ; Это означает использование XDG-Open
, чтобы открыть файл или URL, с использованием документов XDG-пользовательских документов
, чтобы найти папку Docs, XDG-E-mail
для отправки E -Мал, и так далее.