brewery

beer

public

A terminal worth pouring time into

Star0tarball
clone
ssh://git@git.notashelf.dev:33/notashelf/beer.git
README.mdMarkdown65 lines2.8 KB

🍺 beer

A terminal worth pouring time into.

A small, fast, Wayland-native terminal emulator written in Rust drawn entirely on the CPU, with no GPU pipeline, no tabs, no ligatures, and no async runtime to get in the way.

Why another terminal?

Two reasons, actually. The first one and the one that motivated me try and build my own terminal is, obviously, that I just wanted to. While I don’t necessarily find Wayland interesting, I’ve been meaning to get a bit acquainted with it for personal reasons. That, combined with my personal disagreements with foot’s handling of fullscreen transparency, and a C codebase I found hard to keep up to date if I were to fork, I decided to look for a new terminal.

Most terminals reach for the GPU and a stack of abstractions before they draw a single glyph. beer goes the other way. It takes its cues from foot to keep the moving parts few, render with the CPU through wl_shm, talk to a real PTY, and stay out of the way. Since I could not identify and settle with a terminal that checks all the boxes, I decided to write one for real.

The result is a terminal that starts instantly, sits quietly in the background, and spends its cycles on your shell rather than on itself. It is the kind of tool you forget is running which, for a terminal, is the highest compliment. Pour one, get to work.

Project status

beer is pre-1.0 but already comfortable as a daily driver on Wayland. It renders truecolor text with styled attributes and colour emoji, scrolls back with incremental search, handles mouse selection and clipboard, follows the compositor’s fractional scale, and speaks the kitty keyboard, graphics, and text-sizing protocols. It runs standalone or as a daemon that hosts many windows from one process.

Feature requests are welcome, but not everything will be implemented.

Manual pages (beer(1), beer.toml(5), beer-themes(7)) are generated from doc/ with scdoc and installed by the package; a commented starting config lives at contrib/beer.toml.

What’s in here

This is a Cargo workspace with two crates:

  • crates/beer - the terminal application itself. Start here for the feature list, installation, configuration, and day-to-day use.
  • crates/beer-protocols - the reusable, self-documenting building blocks the terminal is made of, and a readable reference for the escape sequences and protocols beer speaks.

If you just want to run it, head to the application README. If you are curious how a terminal actually talks to the programs inside it, the protocols README is a friendly tour.

License

EUPL-1.2.