Stable

garbar

Async Status Bar

A Tokio-powered status bar with modular widgets and Cairo/Pango rendering. garbar displays system information, workspaces, and more with a clean, customizable interface. Integrates seamlessly with gar or runs standalone.

Features

  • Async module architecture with Tokio runtime
  • Cairo/Pango vector rendering for crisp text
  • Battery, CPU, memory monitoring widgets
  • Workspace indicator synced with gar/i3/sway
  • Active window title display via EWMH
  • System tray with XEMBED and SNI D-Bus support
  • Per-monitor bars on multi-monitor setups
  • Quick settings integration with gartray
  • Custom script modules with click/scroll handlers
  • TOML or Lua configuration (via gar integration)
  • IPC control via garbarctl
  • Gradient backgrounds and styling
  • Click and scroll event handlers per module
  • Hot-reload config via SIGHUP or garbarctl

Quick Start Guide

Get garbar running with gar or as a standalone status bar.

1. Installation

Install garbar using the unified installer or build from source:

terminal
$ curl -fsSL https://gar.musicsian.com/install.sh | bash -s -- --component=garbar # Install via script
$ cd ~/.local/src/gardesk/garbar && cargo build --release # Or build from source

2. Running garbar

garbar can run standalone or be auto-started by gar:

terminal
$ garbar # Start garbar
$ garbar -f # Run in foreground (no daemonize)
$ garbar -c /path/to/config.toml # Custom config path
$ garbar -v # Verbose logging

3. Integration with gar

Add a gar.bar table to your gar config to auto-start garbar:

~/.config/gar/init.lua
-- Enable garbar (gar will spawn it automatically)
gar.bar = {
    height = 32,
    position = "top",
    background = "#1a1a1a",
    foreground = "#ffffff",
    modules_left = {"workspaces", "window_title"},
    modules_right = {"cpu", "memory", "battery", "datetime"},
}

4. Standalone Configuration

Without gar integration, configure garbar at ~/.config/garbar/config.toml:

terminal
$ mkdir -p ~/.config/garbar # Create config directory
$ $EDITOR ~/.config/garbar/config.toml # Edit configuration

5. Control with garbarctl

Control the running daemon with garbarctl:

terminal
$ garbarctl status # Show bar status
$ garbarctl reload # Reload configuration
$ garbarctl toggle # Toggle visibility
$ garbarctl update cpu # Force update a module

6. Configuration Priority

garbar checks configuration in this order:

  1. ~/.config/gar/init.lua — Reads gar.bar table (gar integration)
  2. ~/.config/garbar/config.toml — Standalone TOML config
  3. Built-in defaults
Releases