README.md

April 30, 2026 ยท View on GitHub

๐Ÿค– mechabar

A mecha-themed, modular Waybar configuration.

Mechabar
Themes

Catppuccin:

Mocha (default)
Catppuccin Mocha
Macchiato
Catppuccin Macchiato
Frappe
Catppuccin Frappe
Latte
Catppuccin Latte

Feel free to open a pull request to add new themes! :^)

Prerequisites

  1. Waybar

  2. A terminal emulator (default: Kitty)

Important

If you use a different emulator, replace all kitty commands accordingly. For example:

- "on-click": "kitty -e ..."
+ "on-click": "ghostty -e ..."

Installation

  1. Back up your current config:

    mv ~/.config/waybar{,.bak}
    
  2. Clone the repository:

    git clone https://github.com/sejjy/mechabar.git ~/.config/waybar
    
  3. Install the dependencies and restart Waybar:

    ~/.config/waybar/install
    
    Dependencies (6)
    PackageCommandDescription
    bluez-utilsbluetoothctlDevelopment and debugging utilities for the bluetooth protocol stack
    brightnessctlbrightnessctlLightweight brightness control tool
    fzffzfCommand-line fuzzy finder
    networkmanagernmcliNetwork connection manager and user applications
    pacman-contribcheckupdatesContributed scripts and tools for pacman systems
    otf-commit-mono-nerd-Patched font Commit Mono from nerd fonts library

Configuration

user.jsonc

The leftmost module has no default function and is reserved for custom use. You can configure it to run any command. For example:

// modules/custom/user.jsonc

"custom/user": {
	// Run your script
	"on-click": "/path/to/your/script",
	// Restart Waybar
	"on-click-right": "pkill -SIGUSR2 waybar",
}

Binds

You can set keybinds to execute scripts from the scripts directory. For example:

# ~/.config/hypr/hyprland.conf

$scripts = ~/.config/waybar/scripts
$mod = Super
$terminal = kitty

# Launch CLI
bind = $mod, B, exec, $terminal -e $scripts/bluetooth
bind = $mod, N, exec, $terminal -e $scripts/network
bind = $mod, O, exec, $terminal -e $scripts/power
bind = $mod, U, exec, $terminal -e $scripts/update

# Toggle off Bluetooth/Wi-Fi
bind = $mod Alt, B, exec, $scripts/bluetooth off
bind = $mod Alt, N, exec, $scripts/network off

# Refresh `custom/update` module
bind = $mod Alt, U, exec, pkill -RTMIN+1 waybar

# Adjust volume
bindl = , XF86AudioMicMute, exec, $scripts/volume input mute
bindl = , XF86AudioMute, exec, $scripts/volume output mute
bindel = , XF86AudioLowerVolume, exec, $scripts/volume output lower
bindel = , XF86AudioRaiseVolume, exec, $scripts/volume output raise

# Adjust brightness
bindel = , XF86MonBrightnessDown, exec, $scripts/backlight down
bindel = , XF86MonBrightnessUp, exec, $scripts/backlight up

Icons

You can search for icons on Nerd Fonts: Cheat Sheet โ†—. For example:

battery charging

For consistency, most modules use icons from Material Design, prefixed with nf-md:

nf-md battery charging

Theme

Copy your preferred theme from the themes directory to theme.css. For example:

cd ~/.config/waybar
cp themes/catppuccin-latte.css theme.css

References