Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
RIVER-LAYOUTS(7)       Miscellaneous Information Manual	      RIVER-LAYOUTS(7)

       river-layouts - Details on layout generators for	river

       River can use external window management	layouts. To get	such a layout,
       river will run an executable and	parse its output. This document	out-
       lines how such a	layout generator interacts with	river.

       When running the	executable, river will provide it with five parameters
       which are appended to the end of	the command in the following order:

       1.   The	amount of visible clients (integer)
       2.   The	amount of views	dedicated as main (integer)
       3.   The	screen size multiplier for the main area (float	between	0.0
	   and 1.0)
       4.   The	useable	width of the output (integer)
       5.   The	useable	height of the output (integer)

       A layout	generator may choose to	ignore any of these values except for
       the first one.

       River expects four integer values for each window: The x	position, the
       y position, the width and the height. These must	be separated by	spa-
       ces. 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 out-
       putted 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 de-
       pend on external	factors	or be completely random.

       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 out-
       put. While layout generators are	free to	place windows everywhere (in-
       cluding 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.

       Below is	an example output of a layout generator	for four visible win-
       dows. 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

       Maintained by Isaac Freund <>	who is assisted	by
       open source contributors. For more information about river's develop-
       ment, see <>.

       river(1), riverctl(1), rivertile(1)	  2021-03-04		      RIVER-LAYOUTS(7)


Want to link to this manual page? Use this URL:

home | help