Узнайте, какое окно активно в Gnome / Linux / Ubuntu из Python? - PullRequest
4 голосов
/ 08 февраля 2011

Есть ли способ получить список всех окон, которые открыты в настоящее время, и посмотреть, какое окно вверху (то есть активное?) Из Python?

Это использует Gnome в Ubuntu Linux.

wnck выглядит так, как будто это возможно, но в документации очень мало.

Ответы [ 2 ]

11 голосов
/ 23 мая 2013

Вот тот же код, использующий современные библиотеки GObject Introspection вместо устаревшего метода 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 . Это не характерно для python, но весь смысл использования GObject Introspection заключается в том, чтобы иметь одинаковый API на всех языках благодаря привязкам gir.

Кроме того, Ubuntu поставляется как с wnck, так и с соответствующей gir привязкой из коробки, но если вам необходимо установить их:

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

Это также установит libwnck-3-dev, который не является необходимым, но установит полезную документацию, которую вы можете прочитать, используя DevHelp

8 голосов
/ 08 февраля 2011
import wnck
screen = wnck.screen_get_default()
window_list = screen.get_windows()
active_window = screen.get_active_window()

См. Также Получить заголовок активного окна в X и WnckScreen в документации.Другие вопросы, содержащие wnck , содержат полезные примеры кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...