Im Gegensatz zu Windows sind Linux-Desktop-Umgebungen hoch konfigurierbar. Die meisten Linux-Nutzer nutzen eine der großen Desktop-Umgebungen, wie etwa KDE, GNOME, XFCE, Cinnamon und so weiter und so fort. Es gibt aber auch Window Manager, wie XFWM, WindowMaker und Dutzende weitere – nicht jeder dieser hat ein brauchbares Panel – hier könnte Polybar helfen. Polybar kann aber auch unter den großen Desktop-Umgebungen genutzt werden.
Inhaltsverzeichnis
Polybar installieren
Unter auf Debian basierenden Linux-Distributionen installieren Sie diese Software wie üblich über die Paket-Verwaltung – etwa am schnellsten als root auf dem Terminal mit den Befehle
apt update
apt install polybar
Dies gelingt auch unter Fedora und auf Arch basierenden Linux-Distributionen mit demselben Paket.
Polybar nutzen
Sie starten diese Software zu Beginn am einfachsten auf dem Terminal, um diese schneller wieder zu beenden und konfigurieren zu können. Haben Sie die Software angepasst, lassen Sie diese etwa ganz einfach mit der Desktop-Umgebung oder dem Window Manager.
Der passende Befehl – ganz einfach:
polybar

Das Panel legt sich über den oberen Bildschirmrand und beinhaltet ganz links erst einmal den Arbeitsflächenumschalter, rechts folgen die Belegung der Partitionen, der Lautstärkeregler (nutzbar mit dem Mausrad, per Klick wird stumm geschaltet und dies wieder rückgängig gemacht. Es folgt der RAM-Verbrauch und die CPU-Last, sowie das Netzwerk und die Uhrzeit.
Jetzt lässt sich das Panel natürlich wie gewünscht anpassen – dies geschieht per Konfigurationsdatei, diese müssen Sie erst erstellen – sie muss in Ihrem Home-Verzeichnis im versteckten Verzeichnis „.config“ liegen und sich „config.ini“ nennen. Ich erledige dies gleich auf dem Terminal:
mkdir -p ~/.config/polybar
touch ~/.config/polybar/config.ini
Die Datei „config.ini“ können Sie nun mit einem grafischen Texteditor bearbeiten oder natürlich auch auf dem Terminal, etwa mit Vim oder dem einfacheren Nano:
vim ~/.config/polybar/config.ini
nano ~/.config/polybar/config.ini
Unterteilt wird die Datei in vier unterschiedliche Abschnitte:
- Farben
- Eigenschaften des Panels
- Module des Panels
- Skripte – solche können Polybar verbessern
Da die Konfiguration zu Beginn recht umfangreich ist, würde ich vorschlagen sich erst einmal die Datei „/etc/polybar/config.ini“ anzusehen – diese beinhaltet die Konfiguration, mit der Polybar aktuell läuft. Sie können auch deren Inhalt in die „.config/polybar/config.ini“ kopieren und diese Konfiguration an Ihre Wünsche anpassen.
Diese sieht erst einmal so aus:
[colors]
background = #282A2E
background-alt = #373B41
foreground = #C5C8C6
primary = #F0C674
secondary = #8ABEB7
alert = #A54242
disabled = #707880
[bar/example]
width = 100%
height = 24pt
radius = 6
; dpi = 96
background = ${colors.background}
foreground = ${colors.foreground}
line-size = 3pt
border-size = 4pt
border-color = #00000000
padding-left = 0
padding-right = 1
module-margin = 1
separator = |
separator-foreground = ${colors.disabled}
font-0 = monospace;2
modules-left = xworkspaces xwindow
modules-right = filesystem pulseaudio xkeyboard memory cpu wlan eth date
cursor-click = pointer
cursor-scroll = ns-resize
enable-ipc = true
; wm-restack = generic
; wm-restack = bspwm
; wm-restack = i3
; override-redirect = true
; This module is not active by default (to enable it, add it to one of the
; modules-* list above).
; Please note that only a single tray can exist at any time. If you launch
; multiple bars with this module, only a single one will show it, the others
; will produce a warning. Which bar gets the module is timing dependent and can
; be quite random.
; For more information, see the documentation page for this module:
; https://polybar.readthedocs.io/en/stable/user/modules/tray.html
[module/systray]
type = internal/tray
format-margin = 8pt
tray-spacing = 16pt
[module/xworkspaces]
type = internal/xworkspaces
label-active = %name%
label-active-background = ${colors.background-alt}
label-active-underline= ${colors.primary}
label-active-padding = 1
label-occupied = %name%
label-occupied-padding = 1
label-urgent = %name%
label-urgent-background = ${colors.alert}
label-urgent-padding = 1
label-empty = %name%
label-empty-foreground = ${colors.disabled}
label-empty-padding = 1
[module/xwindow]
type = internal/xwindow
label = %title:0:60:...%
[module/filesystem]
type = internal/fs
interval = 25
mount-0 = /
label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%%
label-unmounted = %mountpoint% not mounted
label-unmounted-foreground = ${colors.disabled}
[module/pulseaudio]
type = internal/pulseaudio
format-volume-prefix = "VOL "
format-volume-prefix-foreground = ${colors.primary}
format-volume = <label-volume>
label-volume = %percentage%%
label-muted = muted
label-muted-foreground = ${colors.disabled}
[module/xkeyboard]
type = internal/xkeyboard
blacklist-0 = num lock
label-layout = %layout%
label-layout-foreground = ${colors.primary}
label-indicator-padding = 2
label-indicator-margin = 1
label-indicator-foreground = ${colors.background}
label-indicator-background = ${colors.secondary}
[module/memory]
type = internal/memory
interval = 2
format-prefix = "RAM "
format-prefix-foreground = ${colors.primary}
label = %percentage_used:2%%
[module/cpu]
type = internal/cpu
interval = 2
format-prefix = "CPU "
format-prefix-foreground = ${colors.primary}
label = %percentage:2%%
[network-base]
type = internal/network
interval = 5
format-connected = <label-connected>
format-disconnected = <label-disconnected>
label-disconnected = %{F#F0C674}%ifname%%{F#707880} disconnected
[module/wlan]
inherit = network-base
interface-type = wireless
label-connected = %{F#F0C674}%ifname%%{F-} %essid% %local_ip%
[module/eth]
inherit = network-base
interface-type = wired
label-connected = %{F#F0C674}%ifname%%{F-} %local_ip%
[module/date]
type = internal/date
interval = 1
date = %H:%M
date-alt = %Y-%m-%d %H:%M:%S
label = %date%
label-foreground = ${colors.primary}
[settings]
screenchange-reload = true
pseudo-transparency = true
; vim:ft=dosini
Die Farben werden unter dem Bereich [colors]
angepasst und durch HTML-Farbcodes (siehe etwa Farbcodes) angegeben. Im Meinem Beispiel werde ich gleich einmal ins Extreme gehen und den Hintergrund – also background
anpassen:

Ich denke, man erkennt den Unterschied – Sie passen die Änderung an, beenden die Software am Terminal mit Strg+c und starten Sie erneut, um die Änderung zu sehen. Damit die ganze Geschichte auch nach etwas aussieht, müssen Sie natürlich auch die restlichen Farben anpassen – Sie können sich immer die Alten Config zurückholen.
Polybar kann mehrere Panels an mehreren Stellen des Desktops anzeigen, mit den jeweils gewünschten Modulen. In der Standard-Konfiguration nennt sich dieses Panel „example“ und wird in der Konfiguration mit [bar/example]
beschrieben – alles, was darunter beschrieben wird, gehört zur Konfiguration des Panels, möchte ich jetzt ein weiteres Panel anlegen, gehe ich in der Konfiguration ganz nach unten. Hier möchte ich beispielsweise das Panel „robert“ erstellen – also [bar/robert]
. Hier passe ich wieder die Einstellungen an, diese möchte ich aber am unteren Bildschirmrand sehen – ich füge also zur Grundkonfiguration folgendes hinzu:
bottom = true

Habe ich zwei Polybars in der Config eingerichtet, starten mit dem Befehl:
polybar
auch die zwei. Ich kann nach meinem Beispiel aber auch nur eine starten, etwa:
polybar robert
Jetzt gehen wir etwas weiter, haben Sie mehrere Monitore, startet das Panel nur auf dem Haupt-Monitor, dies lässt sich mit:
monitor = Wert
ändern. Sie ermitteln etwa mit dem Befehl:
xrandr
Ihre Monitore und geben für jedes Ihrer Bars den gewünschten Monitor an. Mit:
width = 100%
geben Sie die Breite auf dem Bildschirm in Prozent an, mit:
height = 24pt
die Höhe in Pixel. Mit:
separator = "|"
geben Sie das Trennzeichen zwischen den einzelnen Informationen im Panel an.
Die einzelnen Informationen im Panel werden wieder durch Module angegeben, solche Module werden so beschrieben [module/modul-name]
. Im Beispiel wird im Panel nur das Modul „filesystem“ angezeigt – dieses zeigt die Belegung der Wurzelpartition – sieht in der Config so aus:
[module/filesystem]
type = internal/fs
interval = 25
mount-0 = /
label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%%
label-unmounted = %mountpoint% not mounted
label-unmounted-foreground = ${colors.disabled}
Habe ich jetzt beispielsweise eine Partition namens „/home“ extra, oder welche auch immer – füge ich diese wie folgt ein:
[module/filesystem]
type = internal/fs
interval = 25
mount-1 = /home
label-mounted = %{F#F0C674}%mountpoint%%{F-} %percentage_used%%
label-unmounted = %mountpoint% not mounted
label-unmounted-foreground = ${colors.disabled}
Weiteres
Dies war nur eine sehr kleine Einführung, Polybar kann die Ausgabe von vordefinierten Scripts ausgeben, Menüs anzeigen – Ideen finden Sie auf GitHub.
Noch keine Reaktion