waybar
Display customizable status bar for Wayland compositors
TLDR
Start waybar with the default configuration and stylesheet
Use a different configuration file
Use a different stylesheet file
Set the logging level
SYNOPSIS
waybar [OPTIONS...]
PARAMETERS
-c, --config <path>
Specifies the path to the main configuration file, typically in JSON format. This file defines modules, their order, and settings.
-s, --style <path>
Specifies the path to the CSS stylesheet used for bar styling, including fonts, colors, and layout.
-b, --bar <name>
Assigns a specific name to a bar instance, useful for managing multiple bars with different configurations.
-v, --version
Displays the Waybar version information and exits.
-h, --help
Shows the help message and available command-line options, then exits.
-d, --debug
Enables debug logging, providing more verbose output to the console for troubleshooting purposes.
DESCRIPTION
Waybar is a highly customizable, modular status bar designed specifically for Wayland compositors such as Sway, Hyprland, and GNOME. It provides users with a flexible and visually appealing way to display system information like CPU usage, memory, network status, battery life, and date/time.
Users configure Waybar through a JSON file, defining module layouts, appearance, and behavior. Styling is handled via CSS, allowing for extensive customization of fonts, colors, and overall look. Its modular architecture enables users to add or remove various built-in modules or even create custom ones using shell scripts, making it adaptable to diverse workflow needs and ensuring seamless integration with the Wayland desktop environment.
CAVEATS
Waybar requires a Wayland compositor (e.g., Sway, Hyprland) to function; it is not compatible with Xorg. Its extensive customization options, while powerful, can sometimes lead to complex configurations requiring careful attention to JSON and CSS syntax. Some modules may also have additional dependencies specific to their functionality.
CONFIGURATION FILES
Waybar's behavior and appearance are primarily controlled by two types of files: a JSON configuration file (defaulting to ~/.config/waybar/config
) and a CSS stylesheet (defaulting to ~/.config/waybar/style.css
). The JSON file defines which modules are active, their order, and module-specific settings, while the CSS file dictates fonts, colors, padding, and other visual styles for the entire bar and its modules.
MODULAR DESIGN
The strength of Waybar lies in its modular design. It offers a wide array of built-in modules for common system indicators (e.g., clock, battery, network, CPU), but also supports custom modules. Users can define these custom modules to run arbitrary shell commands, allowing for display of virtually any information. This flexibility makes Waybar highly adaptable to individual user preferences and unique system monitoring needs.
HISTORY
Waybar emerged as a vital component in the maturing Wayland ecosystem, providing a modern, feature-rich status bar alternative to those designed for Xorg (like Polybar or i3bar). Its development has been driven by the need for native Wayland solutions, offering seamless integration and leveraging Wayland-specific protocols for better performance and security. It quickly became a popular choice for users transitioning to or building Wayland-native desktop environments.