This saved about 1.4MB which should help it load a bit faster on the web UI. For whatever reason, the tiled-windows.jpeg was actually bigger than as a png, so I left it.
91 lines
3.5 KiB
Markdown
91 lines
3.5 KiB
Markdown
# beansprout
|
||
|
||

|
||

|
||
|
||
## Overview
|
||
|
||
A tiling window manager for the [river](https://codeberg.org/river/river/) Wayland compositor written in Zig.
|
||
The window manager communicates using the [river-window-management-v1](protocol/river-window-management-v1.xml)
|
||
protocol, as well as some of River's additional Wayland protocols.
|
||
|
||
Beansprout uses a primary/stack tiling layout inspired by dwm with a customizable ratio and primary count.
|
||
Similarly, beansprout has a 32-bit tag system, rather than workspaces. Each output has its own tags and own
|
||
primary count/ratio.
|
||
|
||
## Building
|
||
|
||
Requires [Zig](https://ziglang.org/) 0.15.1 or later.
|
||
|
||
### Dependencies
|
||
|
||
To compile beansprout, you'll need the dependencies found below. I've listed the package names for Gentoo and
|
||
Debian/Ubuntu, but they likely exist on all major distros.
|
||
|
||
Needed at both build-time and runtime:
|
||
|
||
| Dependency | Gentoo Name | Debian/Ubuntu Name |
|
||
|--------------------|-----------------------------|---------------------|
|
||
| wayland-client | `dev-libs/wayland` | `libwayland-dev` |
|
||
| pixman | `x11-libs/pixman` | `libpixman-1-dev` |
|
||
| xkbcommon | `x11-libs/libxkbcommon` | `libxkbcommon-dev` |
|
||
| fcft | `media-libs/fcft` | `libfcft-dev` |
|
||
|
||
Only needed at build-time:
|
||
|
||
| Dependency | Gentoo Name | Debian/Ubuntu Name |
|
||
|--------------------|------------------------------|---------------------|
|
||
| wayland-protocols | `dev-libs/wayland-protocols` | `wayland-protocols` |
|
||
|
||
Optional (for building man pages):
|
||
|
||
| Dependency | Gentoo Name | Debian/Ubuntu Name |
|
||
|--------------------|------------------------------|---------------------|
|
||
| scdoc | `app-text/scdoc` | `scdoc` |
|
||
|
||
#### Note for Gentoo Users
|
||
|
||
Beansprout is available in my personal [ebuild repo](https://codeberg.org/bwbuhse/buhserepo) and in GURU.
|
||
|
||
### Build
|
||
|
||
Build and install with:
|
||
|
||
```
|
||
zig build -Doptimize=ReleaseSafe --prefix ~/.local install
|
||
```
|
||
|
||
Run `zig build -h` to see a list of all options.
|
||
|
||
## Usage
|
||
|
||
You can either add `beansprout` to the river `init` file or directly run `river -c beansprout`.
|
||
|
||
If no keybinds are configured (e.g. missing or broken config), beansprout provides
|
||
fallback keybinds including `Ctrl+Alt+Delete` to exit the River session, `Super+Shift+R`
|
||
to reload config, and `Super+T` to spawn a terminal.
|
||
|
||
If beansprout crashes, you can use River's hardcoded `Ctrl+Alt F1`–`F12` bindings to
|
||
switch to another TTY. From there, you can kill River or restart beansprout (you will
|
||
need to set `WAYLAND_DISPLAY` yourself, e.g. `WAYLAND_DISPLAY=wayland-1 beansprout`).
|
||
|
||
## Configuration
|
||
|
||
Beansprout is configured with a [KDL](https://kdl.dev) file at
|
||
`$XDG_CONFIG_HOME/beansprout/config.kdl`. See [docs/CONFIGURATION.md](docs/CONFIGURATION.md)
|
||
for a full reference and [examples/config.kdl](examples/config.kdl) for an example config.
|
||
|
||
## Licensing
|
||
|
||
This project follows the [REUSE Specification](https://reuse.software/spec-3.3/),
|
||
all files have SPDX copyright and license information and/or are listed under
|
||
`REUSE.toml`.
|
||
|
||
In overview:
|
||
|
||
- beansprout's source code is released under the GPL-3.0-only license.
|
||
- beansprout's documentation is released under the CC-BY-4.0 license.
|
||
- beansprout's examples are released under the CC0-1.0 license.
|
||
|
||
All licenses can be found under `LICENSES`
|
||
|