通过 Python 发现 Gnome/Linux/Ubuntu 上哪个窗口处于活动状态?

发布于 2024-10-16 10:33:20 字数 129 浏览 6 评论 0原文

有没有什么方法可以从Python获取当前打开的所有窗口的列表,并查看哪个窗口位于顶部(即活动窗口?)?

这是在 Ubuntu Linux 上使用 Gnome。

wnck 看起来可以做到这一点,但它非常缺乏文档。

Is there any way to get a list of all windows that are open at present and see what window is at the top (i.e. active?) from Python?

This is using Gnome on Ubuntu Linux.

wnck looks like it might do this, but it's very lacking in documentation.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你曾走过我的故事 2024-10-23 10:33:20

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

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 参考手册 / (来自 Gitlab Gnome 的存储库)。它不是特定于 python 的,但使用 GObject Introspection 的全部目的是在所有语言中拥有相同的 API,这要归功于 gir 绑定。

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

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

这还将安装 libwnck-3- dev,这不是必需的,但会安装有用的文档,您可以使用 DevHelp 阅读

Here's the same code using the modern GObject Introspection libraries instead of the now deprecated PyGTK method Josh Lee posted:

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()

As for documentation, check out the Libwnck Reference Manual / (Repository from Gitlab Gnome). It is not specific for python, but the whole point of using GObject Introspection is to have the same API across all languages, thanks to the gir bindings.

Also, Ubuntu ships with both wnck and its corresponding gir binding out of the box, but if you need to install them:

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

This will also install libwnck-3-dev, which is not necessary but will install useful documentation you can read using DevHelp

洛阳烟雨空心柳 2024-10-23 10:33:20
import wnck
screen = wnck.screen_get_default()
window_list = screen.get_windows()
active_window = screen.get_active_window()

另请参阅文档中的获取 X 中的活动窗口标题和 WnckScreen。其他包含 wnck 的问题有有用的代码示例。

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

See also Get active window title in X, and WnckScreen in the documentation. Other questions containing wnck have useful code samples.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文