aboutsummaryrefslogtreecommitdiff
path: root/doc/river-layouts.7.scd
diff options
context:
space:
mode:
Diffstat (limited to 'doc/river-layouts.7.scd')
-rw-r--r--doc/river-layouts.7.scd33
1 files changed, 20 insertions, 13 deletions
diff --git a/doc/river-layouts.7.scd b/doc/river-layouts.7.scd
index 4692168..06ace54 100644
--- a/doc/river-layouts.7.scd
+++ b/doc/river-layouts.7.scd
@@ -1,14 +1,17 @@
RIVER-LAYOUTS(7) "github.com/ifreund/river"
# NAME
+
river-layouts - Details on layout generators for river
# DESCRIPTION
+
River can use external window management layouts. To get such a layout, river
-will run an executable and parse its output. This document outlines how such
-a layout generator interacts with river.
+will run an executable and parse its output. This document outlines how such a
+layout generator interacts with river.
# INPUT
+
When running the executable, river will provide it with five parameters which
are appended to the end of the command in the following order:
@@ -22,10 +25,11 @@ A layout generator may choose to ignore any of these values except
for the first one.
# OUTPUT
+
River expects four integer values for each window: The x position, the y
-position, the width and the height. These must be separated by spaces. A
-window configuration having fewer or more than four values is an error and will
-cause river to fall back the full layout.
+position, the width and the height. These must be separated by spaces. A window
+configuration having fewer or more than four values is an error and will cause
+river to fall back the full layout.
A layout generator needs to output position and size for every visible window.
The window configurations are separated by a newline. Too few or too many
@@ -40,24 +44,26 @@ with identical parameters. Layouts are allowed to also depend on external
factors or be completely random.
# WINDOW DIMENSIONS and POSITION
+
Layout generators are not supposed to include padding or leave space for window
borders. The window dimensions will be shrunk by river to make space for these.
River enforces a minimal window width and height of 50.
Layout generators operate on a special coordinate grid from 0 to the maximum
-useable width or height of an output with the coordinate 0-0 being positioned at
-the top-left corner of the useable area of an output. While layout generators
-are free to place windows everywhere (including coordinates below zero or above
-the maximum width or height of an output), beware that the relative positioning
-of this grid on the screen can not be expected to remain constant. River applies
-an offset to window positions, depending on outer padding and the presence of
-desktop widgets like bars. Layout generators can therefore not position windows
-at exact screen coordinates.
+useable width or height of an output with the coordinate 0-0 being positioned
+at the top-left corner of the useable area of an output. While layout
+generators are free to place windows everywhere (including coordinates below
+zero or above the maximum width or height of an output), beware that the
+relative positioning of this grid on the screen can not be expected to remain
+constant. River applies an offset to window positions, depending on outer
+padding and the presence of desktop widgets like bars. Layout generators can
+therefore not position windows at exact screen coordinates.
Layout generators are not required to make use of the entire available space.
Windows may overlap.
# EXAMPLE
+
Below is an example output of a layout generator for four visible windows. In
this example layout all four windows have a size of 500 by 500 and are arranged
in a grid.
@@ -76,4 +82,5 @@ source contributors. For more information about river's development, see
<https://github.com/ifreund/river>.
# SEE ALSO
+
*river*(1), *riverctl*(1), *rivertile*(1)