devilspie1
Perform actions on windows as they are created
Usage
devilspie [OPTION] ...
configuration-files ...
Overview
devilspie is a program which can detect windows as they are created, and perform actions on them if they match as set of criteria.
The configuration files are a set of s-expressions. For documentation and examples, see /usr/share/doc/devilspie/.
Command-lines options:
-
-a --apply-to-existing -
Apply to all existing windows instead of just new windows.
-
-d --debug -
Output debug information
-
-l --list-symbols -
List available symbols supported in input files.
-ssymname--symbol-doc=symname-
Get detailed help on symbol symname ('all' for all symbols).
Allowed symbols
In the input files, the following symbols are known by devilspie:
is-
String equality, (is a b) means a is the same as b.
contains-
Substring, (contains haystack needle) means haystack contains needle.
matches-
Regexp matches, (matches str pattern) means the regexp pattern matches str.
window_name-
Return the title of the current window (String).
window_role-
Return the role (as determined by the WM_WINDOW_ROLE hint) of the current window (String).
window_class-
Return the class of the current window (String).
window_xid-
Return the X11 window id of the current window (Integer).
application_name-
Return the application name (as determined by libwnck) of the current window (String).
window_property-
Returns the given property of the window, e.g. pass "_NET_WM_STATE" (String).
window_workspace-
Returns the workspace a window is on (Integer).
debug-
Debugging function, outputs the current window's title, name, role and geometry (Returns TRUE).
print-
Print args (without trailing 0 returns boolean).
println-
Print args (with trailing 0 returns boolean).
str-
Transform parameters into strings and concat them.
hex-
Transform the integer parameter into an unsigned hexadecimal string (with 0x prefix).
geometry-
Set position + size (as tring) of current window (returns boolean).
fullscreen-
Make the current window fullscreen (returns TRUE).
focus-
Focus the current window (returns TRUE).
center-
Center position of current window (returns boolean).
maximize-
Maximise the current window (returns TRUE).
maximize_vertically-
Maximise vertically the current window (returns TRUE).
maximize_horizontally-
Maximise horizontally the current window (returns TRUE).
unmaximize-
Un-maximise the current window (returns TRUE).
minimize-
Minimise the current window (returns TRUE).
unminimize-
Un-minimise the current window (returns TRUE).
shade-
Shade ("roll up") the current window (returns TRUE).
unshade-
Un-shade ("roll down") the current window (returns TRUE).
close-
Close the current window (returns TRUE).
pin-
Pin the current window to all workspaces (returns TRUE).
unpin-
Unpin the current window from all workspaces (returns TRUE).
stick-
Make the current window stick to all viewports (returns TRUE).
unstick-
Unstick the window from viewports (returns TRUE).
set_workspace-
Move the window to a specific workspace number, counting from 1 (returns boolean).
set_viewport-
Move the window to a specific viewport number, counting from 1 (returns boolean).
skip_pager-
Remove the current window from the window list (returns TRUE).
skip_tasklist-
Remove the current window from the pager (returns TRUE).
above-
Set the current window to be above all normal windows (returns TRUE).
below-
Set the current window to be below all normal windows (returns TRUE).
decorate-
Add the window manager decorations to the current window (returns boolean).
undecorate-
Remove the window manager decorations from the current window (returns boolean).
wintype-
Set the window type of the current window (returns boolean). Accepted values are: normal, dialog, menu, toolbar, splashscreen, utility, dock, desktop.
opacity-
Change the opacity level (as integer in 0..100) of the current window (returns boolean).
spawn_async-
Execute a command in the background (returns boolean). Command is given as a single string, or as a series of strings (similar to execl).
spawn_sync-
Execute a command in the foreground (returns command output as string, or FALSE on error). Command is given as a single string, or as a series of strings (similar to execl).
Releases
12 releases since Debian 3.1 (Sarge); the text changed 4 times.
--apply-to-existing since Debian 5.0 (Lenny);
--debug since Debian 5.0 (Lenny);
--list-symbols since Arch Linux 2026-11-01;
-a since Debian 5.0 (Lenny);
-d since Debian 5.0 (Lenny);
-l since Arch Linux 2026-11-01.