Picture of brandon

👋 I'm Brandon Kase, a peripatetic pupil of typed FP 👨‍💻 (⁠and eating food 🍴⁠🍜⁠)⁠. I make zk tools 🔨⚡️ at O(1) Labs for Mina Protocol 🪶⁠.

Introducing Barbq

Introducing Barbq

TUIs for life. Barbq 🍖 is a TUI-based status-bar for macOS.

barbq status bar
barbq status bar

Barbq is a simple, no frills, terminal-based status bar. I host it in an instance of alacritty terminal which I pin to the top of the screen using the yabai tiling window manager.

To be clear: The above is not a Linux system. I am running macOS 10.15. You're just seeing the wonderful kitty terminals, yabai window manager, and barbq status bar inside alacritty.

Features

  • Widgets for yabai tabs, internal/external ip addrs, volume, battery, wifi, date
  • Volume info grabbed via low-level C executable to avoid overhead of invoking osascript
  • Resource efficient
  • Modular and extensible
  • Stable enough that this author has been using barbq 100% of the time for over a month

Future work

  • Support other data sourcing methods in addition to interval-based polling
  • Cleaner and more usable layout methods for views
  • More refined UI work regarding, colors, positiong, margins, and unicode decorations

Installation

For up-to-date installation instructions visit the GitHub project.

Under the hood

Barbq is written in Haskell. And is this author's first "real" Haskell project.

Since this is a side-project, long-cuts were made in order to do things in an interesting manner. Look for future blog posts on the two interesting pieces here: (1) Using free applicative functors for creating model data to feed views and (2) building terminal-UI components in UI-paradigm-agnostic comonadic style.

I welcome all code reviews! If you have any experience with Haskell, I'd appreciate feedback on my code. Please open an issue in the project to let me know!