Subtle has a well documented config file, you can find the global config file in: $XDG_CONFIG_DIRS/subtle/subtle.rb

Custom config

To specify a custom config file you need to create a file under $XDG_CONFIG_HOME/subtle/subtle.rb or you can copy global config file. To create a user config just create $XDG_CONFIG_HOME/subtle and copy the latest config from the dist folder into it.

Note: You can find the $XDG_CONFIG_DIRS and $XDG_CONFIG_HOME values by 'env' command on unix shells.


Right after making changes to your config you have to reload subtle and it is probably a good to idea to check for common mistakes with: subtle -k

The default grab for reload is W-C-r.

Always compare your existing config with the one of the repository/tarball to get the latest options and check the latest news.


Increase step

Clients can be moved and resized per grab, this setting defines the steps.

Default: 5

Border snap

While resizing, this defines the distance before the window snaps to a border.

Default: 10

Default gravity

When there is no gravities defined by any tags, subtle uses this one as default.

Default: :center

Urgent dialogs

Make dialog windows urgent and draw focus.

Default: false

Honor size hints

Enable globally to honor size hints of windows.

Default: false

Gravity tiling

Enable gravity tiling for all gravities.

Default: false

Click to focus

Change the focus-model from hover-to-focus to click-to-focus. This might be useful for keyboard-only users.

Default: false

Skip Pointer warp

Subtle moves the pointer, e.g. when the gravity changes or a new view gets focus. This can be turned off here.

Default: false

Skip urgent warp

Urgent clients normally draw the pointer. This can be turned off here as well.

Default: false


See Styles


See Gravity


See Grabs


See Tags


See Views