Skip to content
/ mechabar Public

A mecha-themed, modular Waybar configuration

License

Notifications You must be signed in to change notification settings

sejjy/mechabar

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

193 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 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

Important

If you have v0.14.0 installed, clone the fix/v0.14.0 branch instead.

  1. 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

    For Waybar v0.14.0:

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

    ~/.config/waybar/install
    Dependencies (8)
    Package Command Description
    bluez - Daemons for the bluetooth protocol stack
    bluez-utils bluetoothctl Development and debugging utilities for the bluetooth protocol stack
    brightnessctl brightnessctl Lightweight brightness control tool
    fzf fzf Command-line fuzzy finder
    networkmanager nmcli Network connection manager and user applications
    pacman-contrib checkupdates Contributed scripts and tools for pacman systems
    pipewire-pulse - Low-latency audio/video router and processor - PulseAudio replacement
    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/trigger": {
	// Run your script
	"on-click": "/path/to/my/script",
	// Restart Waybar
	"on-click-right": "pkill -SIGUSR2 waybar",
}

Binds

You can define keybinds to interact with modules using their respective scripts. For example:

# ~/.config/hypr/hyprland.conf

$path = ~/.config/waybar/scripts

# Launch CLI
bind = SUPER, B, exec, kitty -e $path/bluetooth
bind = SUPER, N, exec, kitty -e $path/network
bind = SUPER, O, exec, kitty -e $path/power
bind = SUPER, U, exec, kitty -e $path/update

# Adjust volume/brightness
bindl  = , XF86AudioMicMute,      exec, $path/volume input mute
bindl  = , XF86AudioMute,         exec, $path/volume output mute
bindel = , XF86AudioLowerVolume,  exec, $path/volume output lower
bindel = , XF86AudioRaiseVolume,  exec, $path/volume output raise
bindel = , XF86MonBrightnessDown, exec, $path/backlight down
bindel = , XF86MonBrightnessUp,   exec, $path/backlight up

# Toggle off bluetooth/wifi
bind = SUPER ALT, B, exec, $path/bluetooth off
bind = SUPER ALT, N, exec, $path/network off

# Refresh `update` module
bind = SUPER ALT, U, exec, pkill -RTMIN+1 waybar

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