river-bsp-layout

Custom River layout manager that creates a Binary Space Partition / Grid layout using river-layout-toolkit
3 Window Example:
+----------------+----------------+
| | |
| | |
| +----------------+
| | |
| | |
+----------------+----------------+
4 Window Example:
+----------------+----------------+
| | |
| | |
+----------------+----------------+
| | |
| | |
+----------------+----------------+
Installing
Fedora
Other - Cargo
Building
- Make sure you have
cargoinstalled. The recommended means of installation is withrustup.shfrom https://www.rust-lang.org/tools/install - Clone this repo with
- Enter the cloned directory
- run
- Move the compiled binary from
target/release/river-bsp-layoutto any directory in your$PATH- With
cargoinstalled, one option would be to move the the binary to$HOME/.cargo/bin
- With
CLI
Starting in version 2.0.0, river-bsp-layout allows the padding of each inner and outer edge to be set independently of the other edges. This allows for more diverse configurations, such as featured in the Examples Section.
CLI Help
CLI Examples

In this configuration, all inner gaps are set to 5 pixels, and all outer gaps are set to 10, except the top gap, which is 0, so top windows sit flush with the bar.
This config can be achieved with the following invocation

This config features uniform outer gaps of 10 pixels and inner gaps of 5 pixels on each edge.

This config is mostly to demonstrate the possibilities of individually configurable edge gaps.
riverctl Commands
river-bsp-layout supports the following commands from riverctl send-layout-cmd:
riverctl send-layout-cmd bsp-layout outer-gap #- Sets all outer gaps to #riverctl send-layout-cmd bsp-layout og-left #- Set only the left outer gap to #riverctl send-layout-cmd bsp-layout og-right #- Set only the right outer gap to #riverctl send-layout-cmd bsp-layout og-bottom #- Set only the bottom outer gap to #riverctl send-layout-cmd bsp-layout og-top #- Set only the top outer gap to #riverctl send-layout-cmd bsp-layout inner-gap #- Sets all inner gaps to #riverctl send-layout-cmd bsp-layout ig-left #- Set only the left inner gap to #riverctl send-layout-cmd bsp-layout ig-right #- Set only the right inner gap to #riverctl send-layout-cmd bsp-layout ig-bottom #- Set only the bottom inner gap to #riverctl send-layout-cmd bsp-layout ig-top #- Set only the top inner gap to #
Starting from River init
Assuming you are using a default bash init script, replace the following lines at the end of the file
&
with
&