creek

A malleable and minimalist status bar for the River compositor

git clone https://git.8pit.net/creek.git

commits

2024-03-23 guix: Reference Guix pixman upstream issue Sören Tempel
2024-03-23 guix: Build pixman without gnuplot debugging output Sören Tempel
2024-03-23 Seat: Fix indention Sören Tempel
2024-03-15 Wayland: Do not destroy the registry in registerGlobals Sören Tempel
2024-03-14 Input: Use existing bound seat from state Sören Tempel

Clone the repository to access all 137 commits.

README

Creek is a dwm-inspired malleable and minimalist status bar for the River Wayland compositor. The implementation is a hard fork of version 0.1.3 of the levee status bar. Compared to levee, the main objective is to ease recombination and reuse by providing a simpler interface for adding custom information to the status bar. The original version of levee only provides builtin support for certain modules, these have to be written in Zig and compiled into levee. This fork pursues an alternative direction by allowing arbitrary text to be written to standard input of the status bar process, this text is then displayed in the status bar.

Additionally, the following new features have been added:

Screenshot

Screenshot of River with a creek status bar

The screenshot features three active tags: tag 2 is currently focused and has one active window, tag 4 is not focused but is occupied (i.e. has windows), and tag 9 has an urgent window. In the middle of the status bar, the current title of the selected window on the focused tag is displayed. On the right-hand side, the current time is shown, this is information is generated using date(1) (see usage example below).

Build

Since Zig is presently rather unstable, this software relies heavily on Guix. Similar to Nix, Guix is a functional package manager which enables long-term reproducible builds. Unfortunately, Guix still packages Zig version 0.10.1, hence it might be challenging to build creek without Guix.

In order to install creek using Guix run:

$ git clone --recursive https://git.8pit.net/creek.git
$ cd creek
$ guix time-machine -C channels.scm -- package -f guix.scm

If you want to hack on creek using Guix:

$ guix time-machine -C channels.scm -- shell -D -f guix.scm

Configuration

This version of creek can be configured using several command-line options:

Example:

$ creek -fn Terminus:size=12 -hg 18 -nf 0xffffff -nb 0x000000

Usage Example

In order to display the current time in the top-right corner, invoke creek as follows:

$ ( while date; do sleep 1; done ) | creek

Note that for more complex setups, a shell script may not be the best option.

Dependencies