获取在python中运行显示服务器的名称

时间:2012-06-06 18:21:29

标签: python linux unix xorg

如何在Python中获取当前Linux会话中使用的显示服务器的名称? 我想知道用户是否使用Xorg或Wayland。

2 个答案:

答案 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)