river-dwindle 1.0.0

A 'dwindling' layout generator for the river Wayland compositor
Documentation
<div align="center">
    <h1>
        river-dwindle
    </h1>
</div>

![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.