如何在 Python 中获取当前 Linux 会话中使用的显示服务器的名称?例如,我想知道用户是否使用 Xorg 或 Wayland。
问问题
505 次
2 回答
1
您将需要一个 XlibDisplay
指针和一种方法来调用ServerVendor()和可能VendorRelease()
的 .
使用.pygtk
,您可以使用gdk_x11_display_get_xdisplay()来获取Display *
更新:我的立场得到纠正:gtkmm
有一个绑定到这个函数,但pygtk
显然没有。
该库仍然可能提供对返回的信息的访问ServerVendor()
(快速搜索显示几个调用,但其中大多数似乎用于兼容性解决方法)。
甚至Python-Xlib似乎也没有提供对ServerVendor()
. 您可能必须编写自己的模块。
于 2012-06-06T19:38:18.560 回答
1
我不确切知道这对 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)
于 2012-06-06T19:39:12.930 回答