table of contents
STACKTILE(1) | General Commands Manual | STACKTILE(1) |
NAME¶
stacktile - layout generator for river
SYNOPSIS¶
stacktile |
[-h] [--help] |
stacktile |
[-v] [--version] |
DESCRIPTION¶
stacktile is a layout generator for the river Wayland compositor.
stacktile divides the window list into sublayouts. Each sublayout holds at most a pre-configured amount of windows. Sublayouts are themselves arranged in a metalayout.
OPTIONS¶
-h, --help
-v, --version
CONFIGURATION¶
stacktile uses the INI file format for configuation, meaning variable-value-assignments sorted into sections.
[section] # This is a comment variable = value;
On startup stacktile will look for a file in the following locations, in this order:
- $XDG_CONFIG_HOME/stacktile/config.ini (or $HOME/.config/stacktile/config.ini should $XDG_CONFIG_HOME be unset)
- /etc/stacktile/config.ini
If no configuration file has been found, stacktile will exit.
SECTION: [config]¶
This section holds global configuration settings for stacktile, that influence all layouts on all outputs.
runtime-changes = per-output|per-tag|per-dominant-tag;
Dominant means the first active bit from right to left in the tag bitfield. As an example, if tags 1, 2 and 3 are focused, tag 1 will be the dominant one and all runtime changes are stored for tag 1.
SECTION: [output:<identifier>]¶
This section holds output specific configuration. <identifier> is either the output name (for example "Goldstar Company Ltd LG ULTRAWIDE"), the adaptor name (for example "HDMI-A-1") or the output description. These are compositor specific, use a tool like wlr-randr(1) to see the correcct values for your setup.
layouts = <layouts>;
SECTION: [layout:<name>]¶
This section is used to define a layout. The <name> is an arbitrary string without whitespace that is used to identify the layout in the output configuration.
display-name = <name>;
metalayout = linear|orthogonal|linear-center|orthogonal-center;
gravity = left|right|top|bottom;
The gravity can be changed at runtime with user commands.
sublayouts = <sublayouts>;
All but the last sublayout must have a maximum amount of windows. This is an integer separated by the sublayout name with a single colon (for example "full:2"). A sublayout will only be activated when all prior sublayouts have already reached their maximum amount of windows. The last sublayout may not not have such a limit, to prevent the layout from breaking if too many windows are present.
The limit of the primary sublayout can be changed at runtime with user commands.
main-ratio = <float>;
This value can be changed at runtime with user commands.
outer-padding = <integer>;
This value can be changed at runtime with user commands.
main-padding = <integer>;
This value can be changed at runtime with user commands.
metalayout-padding = <integer>;
This value can be changed at runtime with user commands.
sublayout-padding = <integer>;
This value can be changed at runtime with user commands.
all-padding = <integer>;
This value can be changed at runtime with user commands.
tags = <integer>;
If set, the layout will only be used when this tag is active on an output.
USER COMMANDS¶
stacktile can be controlled at runtime via user commands, which are send via the layout protovol. A tool like riverctl(1) can be used to send these.
stacktile accepts multiple commads at once, separated by a semicolon.
set <variable> =|+=|-= <value>;
See the matching variables in the layout configuration section for a description and for value limitations.
If directly setting integer variables, multiple possible values can be provided, seprated by colon (for example like this: 20:40:70) and stacktile will cycle through them.
resize-main left|right|top|bottom <value>;
exit;
AUTHOR¶
SEE ALSO¶
2022-02-23 | git.sr.ht/~leon_plickat/stacktile |