Как я могу получить имя на Python сервера отображения, которое используется в текущей сессии Linux? Я хочу знать, использует ли пользователь Xorg или Wayland.
Вам понадобится указатель Xlib Display
и способ вызвать ServerVendor() и, возможно, VendorRelease()
.
С помощью .pygtk
вы можете использовать gdk_x11_display_get_xdisplay(), чтобы получить Display *
Обновление: я стою исправлено: gtkmm
имеет привязку к этой функции, но pygtk
, по-видимому, не делает.
Библиотека по-прежнему может предоставлять доступ к информации, возвращаемой ServerVendor()
(быстрый поиск показывает несколько вызовов, но большинство из них, похоже, используется для обходных путей совместимости).
Даже Python-Xlib, похоже, не привязывает к ServerVendor()
. Возможно, вам придется написать свой собственный модуль.
Я точно не знаю, что это делает с Wayland, но вы можете использовать xdpyinfo
следующим образом:
import subprocess
p = subprocess.Popen(['xdpyinfo'], stdout=subprocess.PIPE)
for line in p.communicate()[0].split('\n'):
if line.startswith('vendor'):
k, v = line.split(':')
v = v.strip()
print "%s=%s" % (k, v)