Introducing Barbq
TUIs for life. Barbq 🍖 is a TUI-based status-bar for macOS.
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!