ba9df86472
main is a better term to use here for several reasons: 1. It is more accurate: "master" implies that the designated views have some kind of control over the other views, which is not the case. "main" better expresses that the difference between the "main" view and others is one of importance/focus. 2. It is a shorter word. 2 whole characters saved! 3. It reduces the chance of future development time being lost to good-intentioned people complaining about usage of the word master as has recently happened with regards to the default git branch name.
87 lines
3.1 KiB
Markdown
87 lines
3.1 KiB
Markdown
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.
|
|
|
|
# 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:
|
|
|
|
. The amount of visible clients (integer)
|
|
. The amount of views dedicated as main (integer)
|
|
. The screen size multiplier for the main area (float between 0.0 and 1.0)
|
|
. The useable width of the output (integer)
|
|
. The useable height of the output (integer)
|
|
|
|
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.
|
|
|
|
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
|
|
outputted window configurations is an error and will cause river to fall back
|
|
to the full layout.
|
|
|
|
River will apply the position and dimensions in the order they are outputted to
|
|
the visible windows in the stack from top to bottom.
|
|
|
|
The output of a layout generator is not required to remain the same when called
|
|
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.
|
|
|
|
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.
|
|
|
|
```
|
|
0 0 500 500
|
|
500 0 500 500
|
|
0 500 500 500
|
|
500 500 500 500
|
|
```
|
|
|
|
# AUTHORS
|
|
|
|
Maintained by Isaac Freund <ifreund@ifreund.xyz> who is assisted by open
|
|
source contributors. For more information about river's development, see
|
|
<https://github.com/ifreund/river>.
|
|
|
|
# SEE ALSO
|
|
|
|
*river*(1), *riverctl*(1), *rivertile*(1)
|