2

現在のLinuxセッションで使用されているディスプレイサーバーの名前をPythonで取得するにはどうすればよいですか?たとえば、ユーザーがXorgとWaylandのどちらを使用しているか知りたいです。

4

2 に答える 2

1

XlibDisplayポインターと、ServerVendor()および場合によってはを呼び出す方法が必要になりますVendorRelease()

を使用すると、 gdk_x11_display_get_xdisplay()pygtkを使用してを取得できます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 に答える