waybar is a highly customizable status bar for Wayland compositors. Displays system information, application status, and custom modules with JSON configuration and CSS styling.
Basic Usage
- waybar - Start waybar
- waybar -c config.json - Custom config
- waybar -s style.css - Custom style
- waybar -l verbose - Verbose logging
Configuration
- ~/.config/waybar/config - Main config file
- ~/.config/waybar/style.css - CSS styling
- JSON format for configuration
- CSS for styling
Common Modules
- battery - Battery status
- clock - Date and time
- cpu - CPU usage
- memory - Memory usage
- network - Network status
- pulseaudio - Audio control
- tray - System tray
- workspaces - Window workspaces
- window - Active window
- idle_inhibitor - Idle inhibitor
- temperature - CPU temperature
- backlight - Screen brightness
- disk - Disk usage
- custom/script - Custom scripts
Module Options
- format - Display format
- format-alt - Alternative format
- tooltip - Tooltip text
- interval - Update interval (seconds)
- max-length - Maximum text length
- min-length - Minimum text length
- on-click - Click action
- on-click-middle - Middle click action
- on-click-right - Right click action
- on-scroll-up - Scroll up action
- on-scroll-down - Scroll down action
Common Examples
Basic Config
{
"layer": "top",
"position": "top",
"modules-left": ["hyprland/workspaces"],
"modules-center": ["clock"],
"modules-right": ["battery", "network", "pulseaudio", "tray"]
}
Basic waybar configuration.
Clock Module
"clock": {
"format": "{:%Y-%m-%d %H:%M}",
"tooltip-format": "{:%A %B %d %Y}"
}
Custom clock format.
Battery Module
"battery": {
"format": "{capacity}% {icon}",
"format-charging": "{capacity}% {icon}",
"states": {
"warning": 30,
"critical": 15
}
}
Battery with warnings.
Custom Script
"custom/script": {
"format": "{}",
"exec": "echo 'Custom'",
"interval": 5
}
Custom script module.
CPU Module
"cpu": {
"format": "CPU: {usage}%",
"interval": 2
}
CPU usage display.
Tips
- Configure in ~/.config/waybar/config
- Style with CSS in ~/.config/waybar/style.css
- Use custom/script for custom modules
- Format strings support placeholders
- Use on-click for interactive modules
- Adjust interval for update frequency
- Essential for Wayland status bars
- Highly customizable and extensible