为什么有些(例如Emacs和Chrome)X窗口没有报告名称和类?

时间:2012-03-14 14:51:44

标签: python xlib

当我使用python-xlib使用get_input_focus()获取当前聚焦的窗口时,为Konsole正确设置了窗口名称和类,但对于Chrome和Emacs,它们只是空字符串(尽管窗口ID似乎对于所有这三个)。为什么呢?

如何获取这些窗口的标题和所有者流程?由于我使用KDE,因此使用DBUS是一种选择,但我更喜欢更通用的解决方案。

1 个答案:

答案 0 :(得分:0)

如果在此处发现类似的问题: How do I detect the currently focused application?

我对此进行了稍微修改:

cur_window = the_display.get_input_focus().focus
cur_class = None
while cur_class is None:
    cur_name = cur_window.get_wm_name()
    cur_class = cur_window.get_wm_class()
    if cur_class is None:
        cur_window = cur_window.query_tree().parent

现在可行。