polybar
Create customizable, persistent status bars
TLDR
Start Polybar (the bar name is optional if only one bar is defined in the config)
Start Polybar with the specified config
Start Polybar and reload the bar when the configuration file is modified
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.