LinuxCommandLibrary

polybar

Create customizable, persistent status bars

TLDR

Start Polybar (the bar name is optional if only one bar is defined in the config)

$ polybar [bar_name]
copy

Start Polybar with the specified config
$ polybar --config=[path/to/config.ini] [bar_name]
copy

Start Polybar and reload the bar when the configuration file is modified
$ polybar --reload [bar_name]
copy

SYNOPSIS

polybar [OPTIONS...] [BAR_NAME...]

PARAMETERS

-h, --help
    Displays a help message and exits.

-v, --version
    Shows version information and exits.

-q, --quiet
    Suppresses most informational output from polybar.

-r, --reload
    Sends a reload signal to all running polybar instances on the current display.

-c <FILE>, --config=<FILE>
    Specifies an alternative path to the configuration file (default is usually ~/.config/polybar/config).

-l <LEVEL>, --log=<LEVEL>
    Sets the logging verbosity level. Levels include trace, debug, info, warning, and error.

-m <MONITOR>, --monitor=<MONITOR>
    Selects a specific monitor by name (e.g., DP-1) or index to run the bar on.

BAR_NAME...
    One or more names of bars to launch as defined in the configuration file. If omitted, all bars without a 'monitor' setting will be launched.

DESCRIPTION

Polybar is a lightweight and highly customizable status bar designed for Linux. It's primarily used with tiling window managers like i3, bspwm, and Awesome WM to display system information such as CPU usage, memory, network activity, battery status, and more. Users can configure polybar extensively through a text-based configuration file, defining various modules, colors, fonts, and layouts. Its modular design allows users to integrate scripts and external tools, making it incredibly flexible for displaying custom information. Polybar aims to be fast and resource-efficient while providing a visually appealing and informative status bar.

CAVEATS

Xorg Dependency: Polybar relies on Xorg and does not officially support Wayland, though experimental community projects exist.
Configuration Complexity: Extensive customization requires detailed understanding of its INI-style configuration file, which can be verbose.
Resource Usage: While generally lightweight, complex configurations with many modules and frequent updates can increase CPU/memory consumption.
Window Manager Integration: Designed for tiling window managers, its integration with traditional desktop environments might be less seamless.

CONFIGURATION FILE

Polybar's primary configuration is done via a plain text INI-style file, typically located at ~/.config/polybar/config or $XDG_CONFIG_HOME/polybar/config. This file defines bars, modules, colors, fonts, and other display properties.

MODULES

The core functionality of polybar is provided by its modules. These include built-in modules for common system information (e.g., cpu, memory, date, filesystem, network), as well as powerful custom modules like script and custom/ipc which allow users to integrate any shell script or external program output.

HISTORY

Polybar was created as an open-source project to address the need for a highly customizable and modern status bar for tiling window managers on Linux. Development began around 2016-2017, aiming to provide a more feature-rich and aesthetically pleasing alternative to existing options like i3status or lemonbar, while still maintaining lightweight performance. It quickly gained popularity within the tiling window manager community due to its flexibility, extensive module system, and strong community support.

SEE ALSO

i3status(1), lemonbar(1), tint2(1), i3(1), bspwm(1), dwm(1)

Copied to clipboard