哪个窗口具有当前焦点?

哪个窗口具有当前焦点?

我想(通过编程)知道哪个窗口当前处于焦点。有没有独立于窗口管理器的方式来发现这一点?

否则,如何确定 Compiz 或 Metacity 中哪个窗口具有焦点?

答案1

你想要的是libwnck(如果你只是对 Windows 感兴趣)或(如果您对 Windows 及其拥有的应用程序感兴趣)。

答案2

您可以使用的另一件事是xdotool:

xdotool getwindowfocus

将返回焦点窗口的窗口 ID,并且:

xdotool getwindowfocus getwindowname

会告诉你它的名字。

答案3

尝试使用 wnck 库,然后使用此代码:

import wnck
import gtk

while True:
if __name__ == '__main__':
    screen = wnck.screen_get_default()
    screen.force_update()
    while True:
        while gtk.events_pending():
            gtk.main_iteration()
        #time.sleep(0.5)
        print screen.get_active_window().get_name()

答案4

如果你能将某些内容 ping 回到 shell:

xdpyinfo | grep focus

应该管用。

编辑:为了获得稍微干净的输出,请尝试以下操作:

xdpyinfo | grep -Eo 'window 0x[^,]+' | cut -d" " -f2

相关内容