Čvc 04

i3wm XIV. – Polybar konfigurácia

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

 

Galéria

Napsat komentář

Your email address will not be published.

%d blogerům se to líbí: