如何在Python中获取当前Linux会话中使用的显示服务器的名称? 我想知道用户是否使用Xorg或Wayland。
答案 0 :(得分:1)
您需要一个Xlib Display
指针以及一种调用ServerVendor()和可能VendorRelease()
的方法。
使用。pygtk
,您可以使用gdk_x11_display_get_xdisplay()获取Display *
更新:我更正了:gtkmm
对此功能有约束力,但pygtk
显然没有。
该库仍然可以提供对ServerVendor()
返回的信息的访问(快速搜索显示多个调用,但其中大多数似乎用于兼容性解决方法)。
即使Python-Xlib似乎也未提供与ServerVendor()
的绑定。您可能必须编写自己的模块。
答案 1 :(得分: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)