«

»

Říj 08

i3wm XII. – i3blocks

Oki. Rozhodla som sa, že naoko dokončím túto sériu. Chcela som síce začať s i3status, no ten nemá také konfigurovateľné možnosti ako i3blocks, tak ho presúvam „do zabudnutia“. Snáď, keď motyka dakedy vystrelí, bude článok ja o ňom a dzen2-conky. Keď motyka opäť vystrelí, a ja dúfam, že áno, nakoľko by som chcela ten článok spísať, napíšem o polybar. Čo je na lemonbare založený status bar s obrovskými možnosťami.

Takže, už ako samotný názov napovedá, reč bude o i3blocks, ukazovateľovi vyvíjaného špeciálne pre i3, ktorý v niektorých nastaveniach rešpektuje i3bar. Ako už je u mňa zvykom, ako príklad bude slúžiť môj konfiguračný súbor, ktorý je k nahliadnutiu na pastebin. Vyzerá následovne:

 

Inštalácia:

Stabilný balíček sa nachádza v oficiálnych repozitároch:

sudo pacman -S i3blocks

 

GIT verzia sa dá nainštalovať z AUR:

yaourt -S i3blocks-git
pacaur -y i3blocks-git

 

Manuálová stránka, vlastný blok, rozcestie, i3bar a pomoc:

man i3blocks
i3blocks -h

 

Základné nastavenia:

command=$HOME/.config/i3/i3blocks/$BLOCK_NAME
full_text=
color=#7b5751
separator=false
separator_block_width=16
markup=pango

command v tomto prípade určuje základnú zložku pre bloky. $BLOCK_NAME len všeobecne definuje názov bloku. Základné nastavenie je /usr/lib/i3blocks/$BLOCK_NAME.

full_text určuje ako bude vyzerať oddeľovač (separator) pre [separator].

color určuje farbu pre [separator].

separator určuje, či sa má zobraziť oddeľovať, ktorý je zadefinovaný v základnom konfiguračnom súbore pre i3 v sekcii bar, kde sa zvolí aj jeho farba. Má dve hodnoty. true jeho zobrazenie povolí a false zakáže.

separator_block_width určuje rozostup medzi blokmi.

markup určuje ako budú zobrazené znaky a či je povolené dodatočné formátovanie v zmysle pango. Má dve hodnoty. pango a none. Pri pango sa dodatočné formátovanie povolí a použije sa písmo zadefinované v základnom konfiguračnom súbore. V prípade, že je nainštalované. Ak nie je, použije sa predvolené. Pri none je dodatočné formátovanie zakázané a použije sa predvolené písmo.

 

Príklad pre použitie pango (a click-event):

command=echo "$(df -h /home | grep dev | awk -F ' ' '{print $4}' | sed 's/\G//')""<span color='#4f6571'>G</span>"; [[ -z "${BLOCK_BUTTON}" ]] || pcmanfm -n $HOME &

command určuje príkaz, ktorý sa má vykonať, príkaz na zobrazenie výstupu.

echo je príkaz, ktorým sa volá napríklad výstup z požadovaného príkazu. V tomto prípade je použitie nevyhnutné, inak sa výstup nezobrazí správne.

$(df -h /home | grep dev | awk -F ' ' '{print $4}' | sed 's/\G//') už je samotný príkaz pre výstup.

<span color=’#4f6571′>G</span> je formátovanie výstupu v štýle pango. V tomto prípade sa zobrazí G v inej farbe ako zvyšok výstupu. V prípade, že je markup nastavené na none, namiesto požadovaného G sa zobrazí <span color=’#4f6571′>G</span>.

; [[ -z "${BLOCK_BUTTON}" ]] || je klikanie pre blok.

pcmanfm -n $HOME je program, ktorý sa má akýmkoľvek klikom spustiť.

& znamená, že sa program spustí na pozadí.

 

Nastavenie jednotlivých blokov:

Hneď na úvod upozorňujem, že tie možnosti sú pomiešané a slúžia iba ako ilustrácia. Všetky možnosti sa dajú nájsť v manuálovej stránke.

label=
instance=Master
interval=once
signal=1
color=#88b090
command=echo "$(pacman -Q | wc -l)"; [[ -z "${BLOCK_BUTTON}" ]] || pamac-manager &
[separator]

label určuje takpovediac identifikáciu bloku. Môže sa použiť slovo, písmeno či špeciálne fonty ako je napríklad Awesome. Nie je povinný. Dá sa tiež zadefinovať priamo v skripte.

instance určuje napríklad, ktorý výstup pre audio či internetové pripojenie sa má použiť. Ďalšou možnosťou použitia je pri indikátore stlačených kláves NUM a CAPS.

interval určuje ako často sa má blok aktualizovať. Ak nie je určený alebo je hodnota nastavená na 0, blok sa nespúšťa pri štarte, čo je výhodné pri simulovaných klikoch. Dostupné možnosti: presný číselný údaj v sekundách, once (alebo -1)  spustí blok iba raz pri štarte, repeat (alebo -2) spustí blok pri štarte a po jeho ukončení, persist (alebo -3) sa aktualizuje pri štarte bloku a vždy, keď dôjde ku zmene výstupu.

signal určuje, ktorý signál aktualizuje blok. V linuxe poznáme 31 real-time signálov. signal=1 znamená, že blok sa aktualizuje v prípade, že príjme SIGRTMIN+1. Používa sa napríklad pri hlasitosti či indikátore stlačených kláves.

color určuje farbu písma bloku.

command určuje príkaz pre výstup bloku.

[separator] zobrazí oddeľovač zadefinovaný ako full_text.

 

Hlasitosť a i3blocks:

Hlasitosti sme sa už venovali v predchádzajúcom článku. Teraz si iba upresníme ako si ju optimalizovať pre i3blocks. Pretože pri stlačení klávesy ovládajúcej hlasitosť, sa zmena neprejaví na i3blocks. Za toto sa ospravedlňujem, v tom čase som používala dzen3-conky.

 

Pomocou nejakého textového editoru si otvoríme základný konfiguračný súbor:

gedit ~/.config/i3/config

 

Vyhľadáme si ovládanie hlasitosti a ku každému riadku pridáme && pkill -RTMIN+1 i3blocks:

## zvýšenie hlasitosti
bindsym XF86AudioRaiseVolume exec amixer set Master -q 5%+ unmute && pkill -RTMIN+1 i3blocks

## zníženie hlasitosti
bindsym XF86AudioLowerVolume exec amixer set Master -q 5%- unmute && pkill -RTMIN+1 i3blocks

## stlmenie zvuku
bindsym XF86AudioMute exec amixer set Master 1+ toggle && pkill -RTMIN+1 i3blocks

 

Alebo v prípade použitia skriptu pre zobrazenie výstupu zmeny hlasitosti pomocou dunst:

## zvýšenie hlasitosti
bindsym XF86AudioRaiseVolume exec --no-startup-id ~/.config/i3/volume_dunst high && pkill -RTMIN+1 i3blocks

## zníženie hlasitosti
bindsym XF86AudioLowerVolume exec --no-startup-id ~/.config/i3/volume_dunst low && pkill -RTMIN+1 i3blocks

## stlmenie zvuku
bindsym XF86AudioMute exec --no-startup-id ~/.config/i3/volume_dunst mute && pkill -RTMIN+1 i3blocks

 

 

i3blocks a priehľadnosť:

Zoznam všetkých hexadecimálnych kódov pre percentuálne vyjadrenie priehľadnosti.

Narozdiel od i3status, i3blocks podporuje aj priehľadnosť. Túto podporu je potrebné zadefinovať v základnom konfiguračnom súbore. Takže pomocou nejakého textového editoru si ho otvoríme na úpravu:

gedit ~/.config/i/config

 

Vyhľadáme si bar sekciu a pred príkaz, ktorý vyzerá nejako takto:

status_command i3blocks -c ~/.config/i3/i3blocks.conf

 

Pridáme tento riadok:

i3bar_command i3bar -t

 

Napokon farba sa definuje nasledovne:

#RRBBGGAA

R je red (červená)

B je blue (modrá)

G je green (zelená)

A je alpha (priehľadnosť)

 

Príklad farby:

#303d4480

#303d44 je farba s kódovým označením Big Stone

80 je hexadecimálne označenie 50% priehľadnosti

 

 

Po každej úprave konfigurácie je potrebné i3wm reštartovať pomocou klávesovej skratky:

$mod+Shift+r

 

Ak v tomto článku niečo chýba a chceli by ste vedieť, napíšte do komentára a ja článok doplním.

 

 

O autorovi

lombardo1981

Ja som proste ja. Baba zamilovaná do Archu, kyberpunku, metalu, spevu a Slovenských čuvačov.

Napsat komentář

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