river-dwindle

![screenshot](repo_assets/desktop_screenshot.png) A 'dwindling' layout generator for the [river](https://github.com/riverwm/river) Wayland compositor Overview -------- Each view occupies half (or a larger proportion if configured) of the remaining space on the display after the views above it in the stack have been tiled. ``` +--------------------+---------------------+ | 1 | 2 | | | | | | | | | | | | | | +----------+----------+ | | 3 | 4 | | | | | | | +----------+ | | | 5 | | | | | +--------------------+----------+----------+ ``` Installation ------------ This program probably won't be packaged for individual distros. It can be installed by: ### Downloading the Binary GitLab compiles the binary for amd64 automatically. One should be attached to each [release](https://gitlab.com/thom-cameron/river-dwindle/-/releases) - including the [latest](http://gitlab.com/thom-cameron/river-dwindle/-/releases/permalink/latest) one. Just download the binary file and place it somewhere in your PATH. ### Compiling the Code Clone the repository and compile the code: ``` zsh git clone https://gitlab.com/thom-cameron/river-dwindle cd river-dwindle cargo build --release ``` Then place the resulting executable file in `target/release` somewhere in your PATH. ### Installing with Cargo Install the program with Cargo from [crates.io](https://crates.io/crates/river-dwindle): ``` zsh cargo install river-dwindle ``` Ensure that `~/.cargo/bin` is in your PATH. Usage ----- river must be told to use river-dwindle to lay out views. For example, to change the default layout from rivertile to river-dwindle in a shell script river init file, change: ``` zsh riverctl default-layout rivertile rivertile -view-padding 0 -outer-padding 0 -main-ratio 0.5 & ``` To the following: ``` zsh riverctl default-layout river-dwindle river-dwindle --view-padding 0 --outer-padding 0 --ratio 0.5 & ``` Troubleshooting --------------- One way to troubleshoot issues is to run river-dwindle in a terminal and watch the error messages it outputs. Another is to redirect its outputs to a file which can be checked in the event of an error. You can specify how you'd like this to happen in your init file. For example: ``` zsh riverctl default-layout river-dwindle river-dwindle --ratio 0.5 &> ~/.local/state/river-dwindle-log & ``` The above starts the layout generator in the background and saves the messages it outputs to the named file. Credits ------- This project uses the [river-layout-toolkit](https://github.com/MaxVerevkin/river-layout-toolkit) package to integrate with river. The code was written with reference to a [BSP layout](https://github.com/areif-dev/river-bsp-layout) written using the same library.