No description
Find a file
2026-02-16 18:36:35 +01:00
docs Finish wiring up the TagOverlay 2026-02-16 11:33:48 -06:00
examples Wire up TagOverlay into Config 2026-02-16 11:33:43 -06:00
LICENSES Add REUSE licensing for non-code files 2026-02-11 14:50:04 -06:00
protocol Implement river-input-management-v1 and river-libinput-config-v1 2026-02-09 12:55:47 -06:00
src Finish wiring up the TagOverlay 2026-02-16 11:33:48 -06:00
.gitignore initial commit 2025-05-03 21:07:26 -05:00
build.zig Add initial bar support 2026-02-13 10:07:48 -06:00
build.zig.zon Add clock to the bar 2026-02-13 12:20:35 -06:00
README.md Add fcft to README 2026-02-16 09:13:34 -06:00
REUSE.toml Update README.md, add docs/CONFIGURATION.md 2026-02-11 20:22:41 -06:00

beansprout

Overview

A tiling window manager for the river Wayland compositor written in Zig. The window manager communicates using the river-window-management-v1 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 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

Note for Gentoo Users

Beansprout is available in my personal ebuild repo. Right now, it's just a live ebuild, but I will add versioned ebuilds once v0.1.0 is released.

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 you need to exit river, for example, if beansprout crashes, you can use river's hardcoded Ctrl+Alt+Delete keybind.

Configuration

Beansprout is configured with a KDL file at $XDG_CONFIG_HOME/beansprout/config.kdl. See docs/CONFIGURATION.md for a full reference and examples/config.kdl for an example config.

Licensing

This project follows the REUSE Specification, 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