bspwm és sxhkd beállítása

Bspwm beállítás
Bspwm beállítás

A bspwm utolsó, vagy utolsó előtti lépése nálam a gyorsbillentyűk beállítása volt. Bár egy nagyon jól összerakott kombinációkat kapunk a legtöbb előre konfigurált bspwm mellé, de érdemes átnézni, testreszabni őket. A kötések beállítása egyszerű, a sxhkd használata mellett. Aki nem ismeri, annak javaslom ezt a cikket, és a videó átnézését. Fél tucat olyan lehetőséget ad, amivel mindent be lehet állítani. A beállítás itt is két lépésben történik, az első a bspwm kötései, mert így tudjuk az ablakokat vezérelni. Csak így tudjuk! Ezért kiemelten oda kell erre figyelni: kényelmes legyen, ergonomikus is, megjegyezhető is. Ha egy előre konfigurált, jó leírással rendelkező bspwm konfigurációját használod, akkor is nézd át őket, hogy melyik kombináció mit vezérel. Ha kell jegyzeteld ki, illetve mindent próbálj ki. A második lépés a program indítást vezérlő kombinációk megadása.

Alapvető három bspwm funkció beállítása

Előbb állítsuk be a technikai hátteret, ami gyorsítja a munkát. Az itt ismertetett scriptet tegyük be, hogy egy kombinációval elérjük.

# Edit important conf files with sublime editor
super + F2
edconf.sh

Ha gyorsan akarsz dolgozni ez a lehető legjobb megoldás. Én ezt átírtam:

# Konfuguráció szerkesztés
super + F2
edconf.sh

Miért? A két kényelmi funkciót egyike a „sugó” azaz a sxhkd kötéseinek a megjelenítése. Maga a parancs itt található, scriptbe rakd és már jó is lesz.

Az eredeti bejegyzés így néz ki a gyári konfigban:

# Application show binds/default editor
super + {_,shift + } e
{show_keys.sh, subl3}

én ezt átírtam nekem kényelmesebbre

# Sugó
super + F1
show_keys.sh

Így magyar lesz az összes #megjegyzés, ami a súgóban is magyarul jelenik meg. A kötést pedig én máshoz rendeltem, nyilván megszokott a „F1 a súgó” összeállítás. Már itt érdemes megjegyezni: egy kötés egy programot indíthat, így mindig nézd meg nehogy azonos kötés legyen. Itt volt, a:

super + F1
zathura ~/.local/bin/Magyarch-bspwm.pdf

Ez nekem felesleges, így ki is töröltem. A leírást jeleníti meg, ami amúgy szuper, de nekem nem kell.
Ezután mentés, és próba: super + F1. Hm… a régi kötés szerint indítja a leírást. Ezért be kell rakni egy kombinációt, hogy „reloadolja” a sxhkd konfigurációt, és érvényes legyen az új.

# Reload sxhkd
super + Escape
pkill -USR1 -x sxhkd

Így már szerkesztés, mentés, super + Esc lenyomása után él a változás, ki lehet próbálni. Mindig próbál ki! MINDIG! Ne hagyjunk slendriánság, vagy lustaság miatt semmi aknát magunk mögött, ami a későbbiekben hibát okozhat.

A következő lépés már sokkal izgalmasabb lesz.

A bspwm vezérlő kötéseinek beállítása

Itt követjük a lehető legkényelmesebb megoldást. Amit más már megcsinált, azt nekünk nem kell. Itt jön a legelején említett „szerezzünk be kész konfigurációt” elv varázsos ereje: csak módosítani kell a kész beállítást. Így amikor van kedved keress az interneten tippeket, kész beállításokat és használd őket.
Minden parancs, kapcsoló leírását olvasd el, a man oldalak hasznosak!
A bspwm-et a bspc irányítja, így a meglévő konfigurációban ezt keresem meg legelőbb. Itt már csak a komment lesz a magyarázat, de ha kell akkor jobban kifejtem.

###################
# Bspwm vezérlése #
###################

# Bezárja / Kill a programot
super + {_,shift + }q
bspc node -{c,k}

Gyors kilépést, „kill”-ezést tesz lehetővé.

És ami már megszokott, és szabvány:
alt + F4
bspc node -c

# Kilép / restart bspwm
super + alt + {q,r}
bspc {quit,wm -r}

# Teljes képernyő
super + f
bspc node -t \~fullscreen

Itt a \~ érdemes megjegyezni. Próbáld ki a fenti beállítást, nyomj super + f egyszer, teljes kép lesz, nyomd meg újra, visszaugrik az eredetire. Vedd ki a két karaktert, majd próbáld ki újra…

# Fókusz az adott asztalra
super + {1-9,0}
bspc desktop -f ‘^{1-9,10}’

# Áthelyez az adott asztalra
super + shift + {1-9,0}
id=$(bspc query -N -n); bspc node -d ^{1-9,10}; bspc node -f ${id}}

# Asztalt vált Tab-bal
super + Tab
bspc desktop -f ‘^{1-9,10}’

# Fókuszt / pozíciót vált körbe
super + {_,shift + }{h,j,k,l}
bspc node –{focus,swap} {west,south,north,east}

# Nagyitja az ablakot
alt + ctrl + {h,j,k,l}
bspc node {@west -r -10,@south -r +10,@north -r -10,@east -r +10}

# Kicsinyíti az ablakot
super + ctrl + {h,j,k,l}
bspc node {@east -r -10,@north -r +10,@south -r -10,@west -r +10}

# Mozgatja a lebegő ablakot
super + {Left,Down,Up,Right}
bspc node -v {-20 0,0 20,0 -20,20 0}}

Ezt egérrel is megtehetem, be van állítva!

# Az ablak típusát váltja
alt + space
bspc node -t {tiled,pseudo_tiled,floating,fullscreen}

# Függőleges/vízszintes felosztást vált
super + shift + a
bspc node @/ -R 90

Kevesebb jobb!

Ahogy látni én minimumra vettem le a bejegyzéseket, elvileg ezek elegendőek a munkához. Bár a bspwm működését nem zavarta, hogy benne van, amit nem használok, én szeretem átlátni a beállításokat. Ha nincs kedved, időd ezzel bajlódni, akkor az arco vagy a magyarch beállításai teljesen megfelelnek. Ilyenkor nincs más feladatod, végig kell menni az összes beállításon, kipróbálni és memorizálni. Az a könnyebb, de a kevésbé jó megoldás. Így kis tanulással használni tudod a bspwm rendszert, de kihagyod a csempéző ablakkezelők nagy előnyét: a teljes testreszabhatóságot.

Amit már említettem, ha nem állítod be rendesen a kötéseket a bspwm rendszerben, vagy bármely olyan programban, ami nagyon sok billentyűkombinációt használ, akkor kényelmetlen lesz a kezednek. Érdemes pár beállítást kipróbálni. Nekem a super + space nagyon kényelmetlen volt, túl közelinek éreztem, így változtattam. Fő a kényelem.

Az alapok beállítása után már nincs más dolgunk, hogy körbekeressünk az interneten egy-egy érdekesebb beállítás után.

A programok indítása sxhkd-vel

A sxhkd beállítását a programok indításával folytatjuk. Bár ez lesz a legrövidebb rész, de ez meghatározó feladat. Maga a kulcskötések megadása egyszerű, a sxhkd beállításáról linkelt oldalon ott vannak a lehetőségek. Én a lehető legegyszerűbben oldottam meg, mert már használtam sxhkd-t és így csak átemeltem a kötéseket.

Egy egyszerű példa:

# Fájlkezelő space / double
super + {f,d}
{spacefm, doublecmd}

Itt is érdemes normális nevet adni a kommentben… Opsz… valami itt nem kerek! A super +f az foglalt! Ez jól rámutat a következőkre:

Maga a fizikális megoldása (szöveges fájlokat szerkesztesz) igen egyszerű, de nem tudjuk kikerülni a szervezést, a rendrakást, mert maga a sxhkd nem fogja ellenőrizni a duplikátumokat. Én ezt egyszerűen oldottam meg, egy táblázatban felsoroltam az összes billentyűt és a módosítókat, és mellé a hozzárendelt programot, teendőt. Macerásnak tűnik, de rögvest látom a szabad kiosztású kombinációt.

Én párhuzamosan be is állítom a bspwm konfigurációban, ha indokolt a program megnyitásának a tulajdonságait. Így egy lépésben teljes mértékben konfigurálom az indítást.

Pár példa gondolatébresztőnek

# Terminált nyit / kis terminált nyit
super + {_,shift + } Return
{$TERMINAL, bspwmfloat && $TERMINAL -g 110×30}

Ha megadtad pld. a zshrc-ben a $TERMINAL állandót, akkor arra itt is hivatkozhatsz. De akár a szerkesztő, editáló programot is megadhatod.

# Gyorsindító – dmenüs
super + F10
{dmenu_run -i -p ‘Search’ -nb ‘#2f2b26’ -sb ‘#2e8b57’ -fn ‘JetBrains Mono Medium-12’ -w ‘760’ -h ’24’ -x ‘574’ -y ’48’,rofi_run -r}

Egy nagyon egyszerű grafikus start menü.

# Htop system monitor
super + u
$TERMINAL -e htop

Indíthatsz terminálos programot is megnyíló terminálban ezzel a megoldással. Ha definiáltad a változót…

Bár a megjelenő ablakokat a bspwm konfigurációban is szabályozhatod, de egy kis trükkel a sxhkd-ben is megadhatod közvetlenül.

# Hangerő szabályzó
alt + p
bspwmfloat && pavucontrol

Ez előbb végrehajtja a bspwmfloat scriptet, ami lebegővé teszi a beállítást és már középen, lebegő ablakként jelenik meg a megadott program. A tartalma:

#!/bin/bash
# Open a command in float mode
bspc rule -a \* -o state=floating && $@

Kis trükk, de gyorsítja a beállításokat.

Kell az egérgombos menü? Ha igen, akkor valami ilyen jó lesz:

# Egérgomb menü – oldalsó
button8
bspwmfloat && xfce4-appfinder

Itt is a xev -event mouse adja meg a button számát, és nem kötelező ezt a menüt használni, vannak elég jó „független” menük is.

Ennyi? Igen. Ahogy látni egy alapbeállítás, a testreszabás nem jelent olyan nagy problémát, mint ahogy sokan gondolják, ha meglátnak egy szöveges konfigurációs fájlt. De nem is csak annyi, hogy írogatunk és már kész is. Kell egy bizonyos fokú ismeret is, ami megszerezhető.

A bspwm és a grafikus programok

Már senkinek nem lehet meglepetés, hogy a csempéző ablakkezelőkben is megjeleníthető egy grafikus program. De hogyan tudjuk szabályozni a kinézetüket? Milyen témákat használnak? A beállításhoz nem ad semmit a bspwm, hiszen az csak egy ablakkezelő, ami a feladatát látja el: rajzol nekem egy ablakot és azt kezeli. A legégszerűbb a témák közti váltáshoz egy másik ablakkezelő programját használni: lxappearance. A használata egyszerű, grafikus és nem okoz gondot.

Hol tartunk? Készen is vagyunk. Ablakok működnek, a programok indulnak, van panelunk: akár a tint2, akár a xfce panel minden további nélkül indítható, a kedvenc conky is megy. A tint2-es elég fejlett, hogy a normál igényeket kielégítse, és akár grafikusan, akár pedig szövegesen beállítható. A tint2-esről voltak videók, ha idegen neked, akkor nézd meg. Van egérkattintásos menünk is. Akár gyorsbillentyűkkel, akár a tint2-es gyorsindítóval, de akár startmenüvel indulhat a program.
Kell ennél több?

Mennyi időbe tellett a bspwm ilyen testreszabása?

Nettó 6 óra. Mértem, és ennyi volt úgy, hogy eddig soha nem volt bspwm a gépen használatban. A sxhkd-t ismertem, de a bspc kötéseket nem, ezeknek utána kellett nézni. A tint2 és conky kész volt, csak a beállítást hoztam át.

Összegzés

A bspwm egy nagyszerű rendszer. Aki KDE….XFCE közt elhelyezkedő „egerészőbb” felületről jött, neki biztosan furcsa, de tanulható lesz. Kell egy kis idő megszokni a használatát, ami lehet napok, de lehet akár hetek kérdése is. A rendszer beállítása közepesen nehéz, nem grafikus felületen történik. Ezt egy kezdő nehezen fogja leküzdeni, pár kudarcélménye lesz. A felhasználói élmény jó, gyors és pont azt teszi, amire beállítottam. Biztosan belefutsz pár furcsa viselkedésbe, ami nem azt teszi, amit megszoktál, de ez természetes, hiszen ez valóban más mint a megszokott. A rendszer gördülékenyen működik, nincs olyan hibája, ami akadályozná a munkát.

Amit érdemes tudni: egy középhaladónak nem fog komolyabb problémát okozni. Kezdőknél már több tanulást kíván, meredekebb tanulási görbe lesz!

Az általam elvárt szintig biztosan testreszabható, nem találkoztam olyan elvárt beállítással, ami nem volt megoldható.

Na és a polybar? Igen, ezért ez az utolsó, vagy utolsó előttinek titulált lépés. Még nincs eldöntve, hogy egyáltalán akarok ezzel foglalkozni, vagy nem. A polybar beállogatás első látásra egy viszonylag összetett folyamat, bár nem tűnik nehéznek. Nincs hozzá grafikus program, így mindet szöveges fájlban kell kezelni. Hm…. kiderül.