Discover what window is active on Gnome/Linux/Ubuntu from Python? Discover what window is active on Gnome/Linux/Ubuntu from Python? linux linux

Discover what window is active on Gnome/Linux/Ubuntu from Python?


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, WnckGtk.init([])  # necessary if not using a Gtk.main() loopscreen = Wnck.Screen.get_default()screen.force_update()  # recommended per Wnck documentationwindow_list = screen.get_windows()active_window = screen.get_active_window()

As for documentation, check out the Libwnck Reference Manual. 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


import wnckscreen = 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.