V prvom článku o polybar s názvom i3wm XIII. – Polybar základy sme sa venovali základným záležitostiam ako je inštalácia, spustenie pri štarte či lokalizácia konfiguračného súboru. V druhom článku v poradí sa oboznámime s jeho naozaj obšírnou konfiguráciou. V tomto druhom článku sa oboznámime so všeobecnou so konfiguráciou.V poslednom článku s názvom i3wm XV. – Polybar moduly si predstavíme nastavenia niektorých dostupných modulov. Všetky potrebné informácie sa dajú nájsť na wiki. Polybar môže vyzerať ako klasický i3blocks či trochu exotickejšie. Na konci článku je menšia galéria, čo všetko sa s ním dá urobiť.
Práca s konfiguračným súborom
Základný konfiguračný súbor s názvom config sa na nachádza v ~/.config/polybar.
~/.config/polybar/config
Pri základných úpravách si môžeme zvoliť dva spôsoby zápisu alebo deklarácie parametrov. Prvým je všetko uchovávať v jednom, základnom konfiguračnom súbore alebo vytvoriť viac konfiguračných súborov. Druhý spôsob je vhodný napríklad pri použití dvoch panelov.
Použitie jedného konfiguračného súboru:
Použitie jedného konfiguračného súboru je naozaj veľmi jednoduché. Stačí ho len pomocou nejakého textového editoru otvoriť pre úpravy a môžme začať:
gedit ~/.config/polybar/config
Použitie viacerých konfiguračných súborov:
Ak chceme používať druhý spôsob, musíme v základnom konfiguračnom súbore pridať sekciu, ktorá načíta dodatočné súbory s nastaveniami. Pri rozložení je potrebné dávať si pozor, inak sa polybar nezobrazí. Pomocou nejakého textového editoru si ho otvoríme pre úpravu:
gedit ~/.config/polybar/config
Najlepšie na začiatok pridáme:
## Zahrnuté súbory [section/base] include-file = $HOME/.config/polybar/top-bar.conf include-file = $HOME/.config/polybar/bottom-bar.conf include-file = $HOME/.config/polybar/modules.conf
top-bar.conf je konfiguračný súbor pre panel umiestnený hore
bottom-bar.conf je konfiguračný súbor pre panel umiestnený dole
modules.conf je konfiguračný súbor pre moduly oboch panelov
Základné nastavenia
Pod slovné spojenie základné nastavenia spadá napríklad lokalizácia, zobrazenie na určitom monitore či možnosť prekrytia panelu oknom. Všetky dostupné parametre sa dajú nájsť na Wiki.
monitor určí, na ktorom monitore sa má panel zobraziť. Ak parameter nie je určený, zvolí sa prvý dostupný.
monitor-fallback nastaví záložný monitor pre zobrazenie panelu v prípade, že sa prvý nenájde.
xrandr -q | grep " connected" | cut -d ' ' -f1
bottom určí, či sa panel zobrazí dolu alebo hore. Má dva parametre: true na zobrazenie panelu dolu a false na zobrazenie panela hore.
fixed-center povolí (true) alebo zakáže (false) fixné umiestňovanie stredovej časti pre moduly. Ak nie je povolený, moduly sa umiestňujú podľa veľkosti ostatných modulov.
width určuje šírku panelu. Veľkosť sa udáva v pixeloch (100) alebo v percentách (100%). Pri šírke menšej ako je 100% je potrebný kompozitor ako je napríklad compton.
height určuje výšku panelu. Veľkosť sa udáva v pixeloch (100) alebo v percentách (100%).
background určuje farbu pozadia v argb podobe: #fff, #ffffff alebo #00ffffff. Kde 00 je hexadecimálny zápis transparentnosti a zodpovedá 0% (úplná priehľadnosť).
foreground určuje farbu popredia (písma) v argb podobe: #fff, #ffffff alebo #00ffffff. Kde 00 je hexadecimálny zápis transparentnosti a zodpovedá 0% (úplná priehľadnosť).
radius určuje zaoblenie rokov. Môžu byť definované samostatné hodnoty pre hornú časť (radius-top) a dolnú časť (radius-bottom). Pre správne zobrazenie je potrebný kompozitor ako je napríklad compton.
line-size určuje hrúbku čiary. Môžu byť definované samostatné hodnoty pre hornú časť (overline-size) a dolnú časť (underline-size).
line-color určuje farbu čiary. Môžu byť definované samostatné hodnoty pre hornú časť (overline-color) a dolnú časť (underline-color).
border-size určuje hrúbku okraju panela. Môžu byť definované samostatné hodnoty pre ľavú časť (border-left-size), pre pravú časť (border-right-size), pre hornú časť (border-top-size) a dolnú časť (border-bottom-size). Tento parameter evokuje posunutie panela od okrajov monitora. Pre správne fungovanie je vhodný kompozitor ako je napríklad compton. Pri jednofarebnom pozadí (alebo úseku s jednofarebným pozadím)sa dá zvoliť farba toho pozadia a efekt bude rovnaký.
border-color určuje farbu okraju panela. Môžu byť definované samostatné hodnoty pre ľavú časť (border-left-color), pre pravú časť (border-right-color), pre hornú časť (border-top-color) a dolnú časť (border-bottom-color). Tento parameter evokuje posunutie panela od okrajov monitora. Pre správne fungovanie je vhodný kompozitor ako je napríklad compton. Pri jednofarebnom pozadí (alebo úseku s jednofarebným pozadím)sa dá zvoliť farba toho pozadia a efekt bude rovnaký.
padding určuje veľkosť voľného priestoru prvého a posledného modulu na paneli. Môže sa definovať samostatná hodnota pre pravý okraj (padding-right) aj ľavý okraj (padding-left).
font-{číslo} určuje písmo pre modul. Viac si povieme neskôr.
separator určuje oddeľovač jednotlivých modulov.
locale určuje lokalizáciu panela. Vhodné pre správne zobrazenie dátumu a času.
module-margin určuje veľkosť voľného miesta medzi jednotlivými modulmi. Môže by samostatne definovaný pre pravú stranu (module-margin-right) a pre ľavú stranu (module-margin-left).
modules-left určuje, ktoré moduly sa zobrazia na ľavej strane.
modules-center určuje, ktoré moduly sa zobrazia v strede.
modules-right určuje, ktoré moduly sa zobrazia na pravej strane.
tray-position určuje pozíciu systémovej oblasti. Dostupné pozície sú vpravo (right), vľavo (left) a v strede (center). Ak nie určená žiadna pozícia, systémová oblasť je zakázaná.
tray-detached určuje, či systémová oblasť bude zobrazená aj v prípade, že na nej nie je žiadna ikona. Má dva parametre: true povolí neustále zobrazenie a false, pri ktorom sa oblasť skryje v prípade, že je prázdna.
tray-maxsize určuje maximálnu veľkosť ikon v systémovej oblasti.
tray-transparent povolí (true) alebo zakáže (false) pseudo-priehľadnosť systémovej oblasti.
tray-background určí farbu pozadia systémovej oblasti. Povolená pseudo-priehľadnosť má prednosť pre pozadím.
tray-padding určuje veľkosť voľného priestoru (rozostup) medzi jednotlivými systémovými ikonami.
click-left určuje akciu vykonanú ľavým klikom nad panelom alebo modulom, ktorý nemá určenú svoju vlastnú akciu.
click-middle určuje akciu vykonanú klikom kolečkom nad panelom alebo modulom, ktorý nemá určenú svoju vlastnú akciu.
click-right určuje akciu vykonanú pravým klikom nad panelom alebo modulom, ktorý nemá určenú svoju vlastnú akciu.
double-click-left určuje akciu vykonanú ľavým dvojklikom nad panelom alebo modulom, ktorý nemá určenú svoju vlastnú akciu.
double-click-middle určuje akciu vykonanú dvojklikom kolečkom nad panelom alebo modulom, ktorý nemá určenú svoju vlastnú akciu.
double-click-right určuje akciu vykonanú pravým dvojklikomklikom nad panelom alebo modulom, ktorý nemá určenú svoju vlastnú akciu.
scroll-up určuje akciu vykonanú skrolovaním hore. Pre i3wm a i3-gps sa dá definovať napríklad prechádzanie medzi plochami. i3wm-wsnext prejde na ďalšiu plochu.
scroll-down určuje akciu vykonanú skrolovaním dole. Pre i3wm a i3-gps sa dá definovať napríklad prechádzanie medzi plochami. i3wm-wsprev prejde na predchádzajúcu plochu.
cursor-click určuje, čo sa zobrazuje (ako sa zmení kurzor) nad modulom, ktorý má vytvorenú klikaciu akciu. Pre podporu musí byť nainštalovaný xcb-util-cursor. Rozoznávame default (rovnaký ako pretým, pointer (ako pri odkazoch) a ns-resize (šípky hore a dole sa dajú použiť na označenie skrolovania).
cursor-scroll určuje, čo sa zobrazuje (ako sa zmení kurzor) nad modulom, ktorý má vytvorenú klikaciu akciu. Pre podporu musí byť nainštalovaný xcb-util-cursor. Rozoznávame default (rovnaký ako pretým, pointer (ako pri odkazoch) a ns-resize (šípky hore a dole sa dajú použiť na označenie skrolovania).
format-foreground nastavuje predvolenú farbu popredia formátu modulov. Hodnota sa dá predefinovať pri jednotlivých moduloch.
format-background nastavuje predvolenú farbu pozadia formátu modulov. Hodnota sa dá predefinovať pri jednotlivých moduloch.
format-padding nastavuje predvolenú hodnotu rozostupu modulov. Hodnota sa dá predefinovať pri jednotlivých moduloch.
format-margin nastavuje predvolenú okraju modulov modulov. Hodnota sa dá predefinovať pri jednotlivých moduloch.
Definovanie viacerých druhov písma
Táto časť spadá pod nastavenia panelu a musí byť definovaná v jeho sekcii. Môžeme mať určených niekoľko druhov písiem s rozličným zarovnaním.
Všeobecná definícia:
font-N = <názov fontu>;<vertikálne zarovnanie>
vertikálne zarovnanie posúva písmo hore a dole. Prakticky slúži na centrovanie.
font-N = "moje-písmo:antialias=false"
antialias=false zakáže vyhladzovanie
Praktická ukážka:
font-0 = Hack:weight=Regular:size=10;3 font-1 = Hack:weight=Regular:size=10;1 font-2 = Hack:weight=Regular:size=9;2 font-3 = FontAwesome:pixelsize=10;2 font-4 = FontAwesome:pixelsize=12;3 font-5 = FontAwesome:pixelsize=12;2
font-0 = Hack:weight=Regular:size=10;3 hovorí, že sa používa písmo Hack štandardnej hrúbky o veľkosti 10 pixelov s vertikálnym zarovnaním 3.
font-1 = Hack:weight=Regular:size=10;1 hovorí, že sa používa písmo Hack štandardnej hrúbky o veľkosti 10 pixelov s vertikálnym zarovnaním 1.
font-2 = Hack:weight=Regular:size=9;2 hovorí, že sa používa písmo Hack štandardnej hrúbky o veľkosti 9 pixelov s vertikálnym zarovnaním 2.
font-3 = FontAwesome:pixelsize=10;2 hovorí, že sa používa písmo FontAwesome o veľkosti 10 pixelov s vertikálnym zarovnaním 2.
font-4 = FontAwesome:pixelsize=12;3 hovorí, že sa používa písmo FontAwesome o veľkosti 12 pixelov s vertikálnym zarovnaním 3.
font-5 = FontAwesome:pixelsize=12;2 hovorí, že sa používa písmo FontAwesome o veľkosti 12 pixelov s vertikálnym zarovnaním 2.
Praktické použitie deklarovaných fontov:
Aj keď sa deklarácia fontov vykonáva od čísla 0, ich použitie sa počíta od čísla 1!
Predstavme si, že máme modul pre zobrazenie plôch pre i3:
[module/i3] type = internal/i3 format = <label-state> <label-mode> index-sort = true wrapping-scroll = true fuzzy-match = false strip-wsnumbers = false pin-workspaces = true reverse-scroll = true
A máme v ňom definovanú aktívnu plochu:
; focused = Aktívna plocha na aktívnom monitore label-focused = label-focused-background = ${colors.background} label-focused-foreground = ${colors.blue} label-focused-padding = 1 label-focused-font = 4
label-focused-font = 4 hovorí, že sa používa definované písmo číslo 4. Pri pravidle počítania od čísla 1, ide konkrétne o font-3 = FontAwesome:pixelsize=10;2.
Predstavme si ďalšiu modelovú situáciu. Máme modul pre zobrazenie dátumu a času:
[module/date] type = custom/script interval = 1 label-padding = 0 label-background = ${colors.background-alt} label-foreground = ${colors.foreground} format-prefix-font = 5 format-prefix-padding = 1 format-prefix = " " format-prefix-background = ${colors.background-alt} format-prefix-foreground = ${colors.blue} exec = ~/.config/polybar/Scripts/date click-left = ~/.config/polybar/Scripts/calendar_rofi &
format-prefix-font = 4 hovorí, že sa používa definované písmo číslo 4. Pri pravidle počítania od čísla 1, ide konkrétne o font-3 = FontAwesome:pixelsize=10;2. Písmo je určené iba tzv. format-prefix, čo je v podstate ikona (FontAwesome).
Definovanie vlastných farieb a ich použitie:
Definovanie vlastných farieb:
V základnom konfiguračnom súbore sa nachádza sekcia s označením [colors]. Tak sa dajú určiť farby s vlastnými názvami, ktoré sa potom dajú “zavolať” ako premenná. Toto zavolanie nefunguje pri formátovanom výstupe pomocou tagov. Farby sa zapisujú v podobe #RRGGBB alebo #AARRGGBB. Hexadecimálne hodnoty transparentnosti.
[colors] background = #303d44 background-alt = #80303d44 foreground = #c0c5ce foreground-alt = #80c0c5ce blue = #5994ad
Použitie vlastných farieb pomocou premennej:
; focused = Aktívna plocha na aktívnom monitore label-focused = label-focused-background = ${colors.background} label-focused-foreground = ${colors.blue} label-focused-padding = 1 label-focused-font = 5
label-focused-background = ${colors.background} ako pozadie sa používa farba s názvom background
label-focused-foreground = ${colors.blue} ako popredie sa používa farba s názvom blue
Formátovanie modulov a ich výstupov
Všetky možnosti sa dajú nájsť na wiki.
format-NAME určuje základ pre ostatné dodatočné možnosti pre formátovanie výstupu konkrétneho modulu.
format-NAME-foreground určuje popredie.
format-NAME-background určuje pozadie.
format-NAME-padding určuje rozostup.
format-NAME-margin určuje rozostup.
format-NAME-spacing určuje rozostup.
format-NAME-prefix určuje formát predpony.
format-NAME-prefix-foreground určuje popredie predpony.
format-NAME-prefix-background určuje pozadie predpony.
format-NAME-suffix určuje formát prípony.
format-NAME-suffix-foreground určuje farbu popredia prípony.
format-NAME-suffix-background určuje farbu pozadia prípony.
label-NAME určuje výstup pre konkrétny modul.
label-NAME-foreground určuje popredie výstupu.
label-NAME-background určuje pozadie výstupu.
label-NAME-font určuje písmo použité vo výstupe.
label-NAME-padding určuje rozostup výstupu.
label-NAME-maxlen určuje maximálny počet znakov vo výstupe.
Špeciálne výstupy pre hlasitosť, CPU a využitie pamäte
Výstup v podobe baru:
bar-NAME-format určuje formát baru. Rozorávame plný (%fill%), indikátor (%indicator%) a prázdny (%empty%).
bar-NAME-width určuje šírku baru.
bar-NAME-gradient povoľuje (true) alebo zakazuje (false) postupné zafarbenie baru podľa zvolených farieb.
bar-NAME-foreground-0 určuje farbu popredie pre časť 0. Počet častí sa musí všade zhodovať, inak sa nezobrazia všetky.
bar-NAME-foreground-1 určuje farbu popredie pre časť 1. Počet častí sa musí všade zhodovať, inak sa nezobrazia všetky.
bar-NAME-foreground-2 určuje farbu popredie pre časť 2. Počet častí sa musí všade zhodovať, inak sa nezobrazia všetky.
bar-NAME-background-0 určuje farbu pozadia pre časť 0. Počet častí sa musí všade zhodovať, inak sa nezobrazia všetky.
bar-NAME-background-1 určuje farbu pozadia pre časť 1. Počet častí sa musí všade zhodovať, inak sa nezobrazia všetky.
bar-NAME-background-2 určuje farbu pozadia pre časť 2. Počet častí sa musí všade zhodovať, inak sa nezobrazia všetky.
bar-NAME-fill určuje formát pre plný bar.
bar-NAME-indicator určuje formát pre indikátor.
bar-NAME-empty určuje formát pre prázdny bar.
Výstup v podobe meniacej sa ikony podľa stanovených rozsahov:
ramp-NAME-0-foreground určuje farbu popredie pre časť 0. Počet častí sa musí všade zhodovať, inak sa nezobrazia všetky.
ramp-NAME-1-foreground určuje farbu popredie pre časť 1. Počet častí sa musí všade zhodovať, inak sa nezobrazia všetky.
ramp-NAME-1-foreground určuje farbu popredie pre časť 2. Počet častí sa musí všade zhodovať, inak sa nezobrazia všetky.
ramp-NAME-0-background určuje farbu pozadia pre časť 0. Počet častí sa musí všade zhodovať, inak sa nezobrazia všetky.
ramp-NAME-1-background určuje farbu pozadia pre časť 1. Počet častí sa musí všade zhodovať, inak sa nezobrazia všetky.
ramp-NAME-2-background určuje farbu pozadia pre časť 2. Počet častí sa musí všade zhodovať, inak sa nezobrazia všetky.
ramp-NAME-foreground určuje farbu popredia.
ramp-NAME-background určuje farbu pozadia.
Existuje ešte aj výstup v podobe animácie.
Formátovacie tagy
Rozoznávame tagy pre zmenu farby popredia %{F}, pre zmenu farby pozadia %{B}, pre obrátenie farby popredia a pozadia %{R}, pre farbu podčiarknutia %{u}, pre farbu nadčiarknutia %{o}, pre ofset %{O} a pre akciu %{A}.
Zmena farby popredia:
Začínajúci tag: %{F}
Ukončujúci tag: %{F-}
%{F#f00} Toto je červený text %{F-} Toto je predvolený text
Toto je červený text Toto je predvolený text
Zmena farby pozadia:
Začínajúci tag: %{B}
Ukončujúci tag: %{B-}
%{B#f00} Tento text má červené pozadie %{F-} Tento text má predvolené pozadie
Tento text má červené pozadie Tento text má predvolené pozadie
Obrátenie farby pozadia a popredia:
Začínajúci tag: %{R}
Ukončujúci tag: %{R-}
pozadie vo farbe pozadia, popredie vo farbe popredia %{R} pozadie vo farbe popredia, popredie vo farbe pozadia
pozadie vo farbe pozadia, popredie vo farbe popredia pozadie vo farbe popredia, popredie vo farbe pozadia/span>
Farba počiarknutia:
Začínajúci tag: %{u}
Ukončujúci tag: %{u-}
%{u#ff0000 +u} červené podčiarknutie %{u#008000} zelené podčiarknutie %{u-} podčiarknutie v predvolenej farbe %{-u} žiadne podčiarknutie
červené podčiarknutie zelené podčiarknutie podčiarknutie v predvolenej farbe žiadne podčiarknutie
Farba nadčiarknutia:
Začínajúci tag: %{o}
Ukončujúci tag: %{o-}
%{o#ff0000 +o} červené nadčiarknutie %{o#008000} zelené nadčiarknutie %{o-} nadčiarknutie v predvolenej farbe %{-o} žiadne nadčiarknutie
červené nadčiarknutie zelené nadčiarknutie nadčiarknutie v predvolenej farbe žiadne nadčiarknutie
Zmena ofsetu (posunutie):
Začínajúci tag: %{O}
Ukončujúci tag: %{O-}
%{O30} posunutie o 30 pixelov doprava %{O-20} posunutie o 20 pixelov doľava
posunutie o 30 pixelov doprava posunutie o 20 pixelov doľava
Vykonanie akcie:
Začínajúci tag: %{A}
Ukončujúci tag: %{A}
%{A<index-tlačidiel-myši><dvojbodka><príkaz><dvojbodka>}<klikací-text>%{A} %{A1:príkaz:} Klikací text %{A} %{A1:gsimplecal & disown:} Klikací text %{A}
%{A1:gsimplecal & disown:} Klikací text %{A} spustí program gsimplecal po ľavom kliku na Klikací text. disown odstráni proces z kontroly shellu, no stále ho nechá pripojený ku terminálu.
<index-tlačidiel-myši>
1: ľavý klik 2: klik kolečkom 3: pravý klik 4: skrolovanie hore 5: skrolovanie dole
Dostupné moduly
backlight modul na sledovanie stavu jasu a jeho ovládanie
battery modul na sledovanie stavu batérie
bspwm modul pre zobrazenie plôch vo bspwm
cpu modul na sledovanie stavu využitia CPU
date modul na zobrazenie času a dátumu
filesystem modul na zobrazenie využitia prípojných bodov
github modul na integráciu s GitHub
i3 modul pre zobrazenie plôch v i3
ipc modul na zobrazenie tzv. ipc správ
memory modul na zobrazenie využitia pamäte
menu modul na vytvorenie na paneli otváracieho sa menu
mpd modul pre ovládanie prehrávača mpd
network modul na sledovanie stavu internetového pripojenia
pulseaudio modul na sledovanie a ovládanie hlasitosti pre pulseaudio
script modul pre integráciu vlastných skriptov
temperature modul na sledovanie stavu teploty CPU
text modul na vytvorenie aj klikacieho textu
volume modul na ovládanie hlasitosti pre ALSA
xbacklight modul na sledovanie stavu ovládanie jasu
xkeyboard modul na zobrazenie rozloženia klávesnice a stavu indikátorov
xwindow modul na zobrazenie názvu práve aktívneho okna
xworkspaces modul na zobrazenie EWMH pracovných plôch konfigurovaných správcom okien
Užívateľské moduly sú užívateľmi vytvorené moduly
díky moc za tyhle návody
Som rada, že poslúžili. 😀