Go to the first, previous, next, last section, table of contents.


This utility is used to connect to the inspect server of a running window manager. The client must be able to connect to the display that the window manager is running on to be able to connect to the inspect server. The display is fetched from the $DISPLAY variable or the command line option -display.

When successfully connected, a welcome message is displayed by the window manager and a common Python prompt is shown. Python expressions and statements can now be entered. They will be evaluated in the window manager, and the results or tracebacks will be printed.

The code will be evalated in an environment containing all builtin functions and the variable wm, which points to the WindowManager object representing the window manager.

An example session (long lines have been wrapped):

[petli@sid petli]$ inspect_plwm 
Welcome to PLWM at :0
>>> wm
<__main__.PLWM instance at 82148a8>
>>> wm.default_screen.clients.values()
[<__main__.MyClient instance at 822ec28>,
 <__main__.MyClient instance at 8215ce8>,
 <__main__.MyClient instance at 8217370>,
 <__main__.MyClient instance at 822bfc0>]
>>> import sys
>>> map(lambda c: sys.stdout.write(c.get_title() + '\n'),
[None, None, None, None]

Note that modules can be imported, and that sys.stdout and sys.stderr will output in the terminal window inspect_plwm is running in, even though the expressions are evaluated inside the window manager.

Multi-line statements can also be written with a small kludge: The lines must start with exactly one space, and one signals that the suite is finished by entering an empty line (without any space at all). Example:

>>>  for c in wm.default_screen.clients.values():
...    print c.get_title(), c.geometry()
xterm (516, 30, 502, 732, 3)
xterm (0, 30, 508, 732, 3)
WMManager (100, 0, 63, 71, 3)
emacs@sid.cendio.se (192, 18, 632, 744, 3)

Go to the first, previous, next, last section, table of contents.