Next: Animating Windows, Previous: Cycling Between Windows, Up: Windows [Contents][Index]
Sawfish can trigger actions particular to each window. More
precisely, if the window’s properties match to the user set rule, then
it is executed when the window appears. Check is done in
before-add-window-hook
. (see Standard Hooks)
These rules can easily be set by configurater GUI, but there’re
functions to manipulate them. They’re defined in
sawfish.wm.ext.match-window
.
Let us see an example first:
(add-window-matcher '((WM_NAME . "^root$") (WM_CLASS . "^XTerm/xterm$")) '((ignore-program-position . t) (maximize . vertical)))
rules is an list where each element is a (property
. regex)
or a (function . arguments)
cons. In the first form,
specified property is matched against the regular expression. Allowed
properties are any of WM_NAME
, WM_CLASS
,
WM_ICON_NAME
, WM_WINDOW_ROLE
, WM_CLIENT_MACHINE
,
WM_COMMAND
, and WM_LOCALE_NAME
. In the second form,
specified function is called with window as first argument and list of
arguments specified in the cons as remaining arguments. Windows are
selected if all of these rules match.
actions is an alist. For possible keys and values, see lisp/sawfish/wm/ext/match-window.jl.
Check for invalid arguments are not done.
Opposite of add-window-matcher
, but unlike it, props are
list of properties. Example:
(remove-window-matcher '((WM_NAME . "^root$")) '(place-mode ignore-program-position))
The best place to use add-window-matcher
is in
~/.sawfish/rc. It’s because rules modified by these commands are
not necessarily saved, depending on how you run the configurator.
The rules are stored in variable match-window-profile
. Use
the above functions to modify its value. It is not recommended
to directly manipulate it.
Next: Animating Windows, Previous: Cycling Between Windows, Up: Windows [Contents][Index]