如何通过Python脚本列出Linux上所有打开的窗口?

时间:2018-09-27 22:25:55

标签: python user-interface x11 xlib

我希望能够从Python脚本中获取在Linux桌面上打开的所有窗口的列表。我想这将需要通过Xlib或其他x11或xdisplay库进行工作。这将等同于Win32的EnumWindows API调用上的Linux。

理想情况下,我希望能够使用它来获取每个打开的窗口的标题/标题文本以及位置/大小信息的列表。

是否有来自Python的函数调用返回此信息?

1 个答案:

答案 0 :(得分:0)

安装python-xlib

pip3 install python-xlib

尝试一下:

from Xlib import display

d = display.Display()
root = d.screen().root

query = root.query_tree()

for c in query.children:
    # returns window name or None
    name = c.get_wm_name()
    if name: 
        print(name)

我不确定其他属性。 query.childrenWindow个对象的列表,因此对这些对象的一些研究应该可以发现一些东西。

Window对象docs