<div align="center">
<h1>
river-dwindle
</h1>
</div>

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.
```
+--------------------+---------------------+
| | |
| | |
| | |
| +----------+----------+
| | 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.