从Python发现Gnome / Linux / Ubuntu上哪些窗口处于活动状态?

时间:2011-02-08 16:53:46

标签: python linux gnome window-managers metacity

有没有办法获取目前打开的所有窗口的列表,并查看Python顶部的哪个窗口(即活动?)?

这是在Ubuntu Linux上使用Gnome。

wnck看起来可能会这样做,但它在文档中非常缺乏。

2 个答案:

答案 0 :(得分:11)

以下是使用现代GObject Introspection库的相同代码,而不是现在已弃用的PyGTK方法Josh Lee发布的:

from gi.repository import Gtk, Wnck

Gtk.init([])  # necessary if not using a Gtk.main() loop
screen = Wnck.Screen.get_default()
screen.force_update()  # recommended per Wnck documentation

window_list = screen.get_windows()
active_window = screen.get_active_window()

至于文档,请查看Libwnck Reference Manual。它不是特定于python,但使用GObject Introspection的全部意义在于所有语言都有相同的API,这要归功于gir绑定。

此外,Ubuntu附带wnck及其相应的gir绑定开箱即用,但如果您需要安装它们:

sudo apt-get install libwnck-3-* gir1.2-wnck-3.0

这也将安装libwnck-3-dev,这不是必需的,但会安装您可以使用DevHelp

阅读的有用文档

答案 1 :(得分:8)

import wnck
screen = wnck.screen_get_default()
window_list = screen.get_windows()
active_window = screen.get_active_window()

另请参阅文档中的Get active window title in X和WnckScreen。其他questions containing wnck包含有用的代码示例。