Узнайте, какое окно активно в Gnome/Linux/Ubuntu из Python?
Есть ли способ получить список всех окон, которые открыты в настоящее время, и посмотреть, какое окно вверху (то есть активное?) Из Python?
Это использует Gnome в Ubuntu Linux.
wnck выглядит так, как будто это может сделать это, но в документации очень не хватает.
2 ответа
import wnck
screen = wnck.screen_get_default()
window_list = screen.get_windows()
active_window = screen.get_active_window()
Смотрите также Получить заголовок активного окна в X и WnckScreen в документации. Другие вопросы, содержащие wnck, содержат полезные примеры кода.
Вот тот же код, использующий современные библиотеки 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