---
name: "devilspie"
section: "1"
platform: "linux"
package: "devilspie"
version: "0.23-6"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/devilspie"
---

# devilspie(1)

perform actions on windows as they are created

## NAME

devilspie - perform actions on windows as they are created

## SYNOPSIS

**devilspie** *\[OPTION\]...* *configuration-files...*

## DESCRIPTION

**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.

- **-s** *symname* **--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).

## BUGS

This manpage is almost useless, as it was thrown together on a train.

## AUTHOR

This manual page was written by Ross Burton \<ross@burtonini.com\>.
