From f72656b72e5822481a4bc15b75d19b61b1bb7bc8 Mon Sep 17 00:00:00 2001 From: Leon Henrik Plickat Date: Fri, 2 Oct 2020 15:53:08 +0200 Subject: river-layout: create and implement protocol Replace the current layout mechanism based on passing args to a child process and parsing it's stdout with a new wayland protocol. This much more robust and allows for more featureful layout generators. Co-authored-by: Isaac Freund --- doc/river-layouts.7.scd | 86 ------------------------------------------------- 1 file changed, 86 deletions(-) delete mode 100644 doc/river-layouts.7.scd (limited to 'doc/river-layouts.7.scd') diff --git a/doc/river-layouts.7.scd b/doc/river-layouts.7.scd deleted file mode 100644 index 6b76846..0000000 --- a/doc/river-layouts.7.scd +++ /dev/null @@ -1,86 +0,0 @@ -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 who is assisted by open -source contributors. For more information about river's development, see -. - -# SEE ALSO - -*river*(1), *riverctl*(1), *rivertile*(1) -- cgit v1.2.3