LinuxCommandLibrary

waybar

Display customizable status bar for Wayland compositors

TLDR

Start waybar with the default configuration and stylesheet

$ waybar
copy

Use a different configuration file
$ waybar [[-c|--config]] [path/to/config.jsonc]
copy

Use a different stylesheet file
$ waybar [[-s|--style]] [path/to/stylesheet.css]
copy

Set the logging level
$ waybar [[-l|--log-level]] [trace|debug|info|warning|error|critical|off]
copy

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.

SEE ALSO

sway(1), hyprland(1), mako(1), wofi(1), grim(1)

Copied to clipboard