2

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

4

2 回答 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 回答