Polybar: Difference between revisions
m (Remove extra white space) |
m (fixed minor inconsistency in config filename) |
||
(6 intermediate revisions by 5 users not shown) | |||
Line 14: | Line 14: | ||
== Configuration == | == Configuration == | ||
Copy the configuration example from {{ic|/etc/polybar/config.ini}} to {{ic|$XDG_CONFIG_HOME/polybar/config}}. By default, polybar will load the config file from {{ic|~/.config/polybar/config.ini}}, {{ic|/etc/xdg/polybar/config.ini}}, or {{ic|/etc/polybar/config.ini}} depending on which it finds first. | Copy the configuration example from {{ic|/etc/polybar/config.ini}} to {{ic|$XDG_CONFIG_HOME/polybar/config.ini}}. By default, polybar will load the config file from {{ic|~/.config/polybar/config.ini}}, {{ic|/etc/xdg/polybar/config.ini}}, or {{ic|/etc/polybar/config.ini}} depending on which it finds first. | ||
=== Running Polybar === | === Running Polybar === | ||
See {{ic|polybar --help}} for a list of options to run it manually. However, you will probably want to run Polybar with your window manager's bootstrap routine. See [[#Running with a window manager]]. | |||
{{ | |||
=== Sample configuration === | === Sample configuration === | ||
Line 44: | Line 24: | ||
A very basic polybar configuration may look like this: | A very basic polybar configuration may look like this: | ||
{{ | {{hc|config.ini|2= | ||
[bar/mybar] | [bar/mybar] | ||
modules-right = date | modules-right = date | ||
Line 77: | Line 57: | ||
This script will mean that restarting your window manager will also restart Polybar. | This script will mean that restarting your window manager will also restart Polybar. | ||
=== | To execute this script by your window manager on startup, see [[Autostarting#On window manager startup]]. | ||
=== Multiple monitors === | |||
If | If you wish to have your bar duplicated across multiple monitors, you need to launch multiple bars. | ||
Add something like this to your startup script: | |||
{{bc| | {{bc| | ||
$ | if type "xrandr"; then | ||
for m in $(xrandr --query {{!}} grep " connected" {{!}} cut -d" " -f1); do | |||
MONITOR{{=}}$m polybar --reload example & | |||
done | |||
else | |||
polybar --reload example & | |||
fi | |||
}} | }} | ||
Then configure Polybar to read the monitor from the environment: | |||
{{hc|config.ini|2= | |||
[bar/example] | |||
monitor = ${env:MONITOR:} | |||
{{ | [..] | ||
}} | }} | ||
Latest revision as of 20:32, 4 December 2023
polybar is a fast and easy-to-use tool for creating status bars. It aims to be easily customizable, utilising many modules which enable a wide range of (editable) functionality, such as displaying workspaces, the date, or system volume. Polybar is especially useful for window managers that have a limited or non-existent status bar, such as awesome or i3. Polybar can also be used with desktop environments like Plasma.
Installation
Install the polybar package. The development version is polybar-gitAUR.
Configuration
Copy the configuration example from /etc/polybar/config.ini
to $XDG_CONFIG_HOME/polybar/config.ini
. By default, polybar will load the config file from ~/.config/polybar/config.ini
, /etc/xdg/polybar/config.ini
, or /etc/polybar/config.ini
depending on which it finds first.
Running Polybar
See polybar --help
for a list of options to run it manually. However, you will probably want to run Polybar with your window manager's bootstrap routine. See #Running with a window manager.
Sample configuration
A very basic polybar configuration may look like this:
config.ini
[bar/mybar] modules-right = date [module/date] type = internal/date date = %Y-%m-%d%
It defines a bar named mybar
with a module called date
.
Polybar will also install the default configuration with many preconfigured modules in /etc/polybar/config.ini
.
Running with a window manager
Create an executable file containing the startup logic, for example $HOME/.config/polybar/launch.sh
:
#!/bin/bash # Terminate already running bar instances killall -q polybar # If all your bars have ipc enabled, you can also use # polybar-msg cmd quit # Launch Polybar, using default config location ~/.config/polybar/config.ini polybar mybar 2>&1 | tee -a /tmp/polybar.log & disown echo "Polybar launched..."
This script will mean that restarting your window manager will also restart Polybar.
To execute this script by your window manager on startup, see Autostarting#On window manager startup.
Multiple monitors
If you wish to have your bar duplicated across multiple monitors, you need to launch multiple bars.
Add something like this to your startup script:
if type "xrandr"; then for m in $(xrandr --query | grep " connected" | cut -d" " -f1); do MONITOR=$m polybar --reload example & done else polybar --reload example & fi
Then configure Polybar to read the monitor from the environment:
config.ini
[bar/example] monitor = ${env:MONITOR:} [..]