MagyArch Linux

Bspwm alapok

A bspwm (Binary Space Partitioning Window Manager) egy minimalista ablakkezelő és semmi más, ami az ablakokat egy teljes bináris fa szerkezetben ábrázolja. Minimalista jellege miatt nehéz lehet elkezdeni a használatát, ebben hivatott ezt a cikk segíteni.

Indítás

Fontos: Amennyiben nincs előre telepített konfiguráció a bspwm-hez a gépünkön, elindításakor csak egy fekete képernyő fogad minket. Ez teljesen normális. Előbb mindent konfigurálnunk kell.

Képernyőzárról

Amennyiben van telepítve valamilyen display manager (képernyőzár jellegű, felhasználó választó, jelszó bekérő), akkor valószínűleg onnan valahol egy menüből kiválaszthatjuk, hogy melyik asztali felületet vagy ablakkezelőt (köztük a bspwm-et) szeretnénk elindítani.

Ha a display manager, amit használunk nem támogatja ezt a funkciót, telepíthetünk egy másikat. Az egyik legépszerűbb megoldás a lightdm. Miután telepítettük (Arch Linuxon lightdm-gtk-greeter), engedélyezzük a szolgáltatás automatikus indítását (sudo systemctl enable lightdm.service) és újraindítjuk a gépet.

Terminálból

Amennyiben terminálból szeretnénk elindítani, akkor az Xorg-ot konfigurálni kell, hogy a bspwm-et indítsa el. Ezt egy egyszerű paranccsal megtehetjük:

echo "exec bspwm" > .xinitrc

Ez által az exec bspwm parancs fog végrehajtódni, amikor elindíjuk a grafikus felületet a startx paranccsal.

Azonban minden alkalommal, amikor bejelentkezünk, begépelni, hogy startx, túl nagy macera. Ezért beállíthatjuk, hogy amikor az alapértelmezett tty1-ről jelentkezünk be, automatikusan indítsa el a grafikus környezetet. Ehhez, amennyiben létezik egy .bash_profile vagy egy .zprofile nevű fájl, szerkesszük azt, ha nem, akkor készítsünk egy .profile nevű fájlt. A fálj végére illesszük be a következő parancsot:

[ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ] && ! pgrep -x Xorg >/dev/null && exec startx

Ez a következőt csinálja: amennyiben helyileg léptünkbe a tty1-egy és nem fut már a grafikus felület, akkor elindítja.

Konfiguráció

A bspwm alapértelmezetten a ~/.config/bspwm/bspwmrc helyen keresi a konfigurácós fájlt. Ha még nem létezik ilyen fájlunk, akkor érdemes átmásolni az alapértelmezettet a /usr/share/doc/bspwm/examples/bspwmrc helyről.

Nézzük is meg, hogyan épül fel ez a fájl:

Először is láthatjuk, hogy ez egy shell script. Tehát csak sorra végrehajtott műveletek. Legelején helyet kapnak az automatikusan elindított programok. Fontos, hogy a végére kerüljön a &, ami azt jelzi, hogy ez a program a háttérben fog futni (az sxhkd programról később még lesz szó).
Ha tisztábban akarjuk tartani ezt a fájlt, akkor létrehozatunk egy külön scriptet az automatikusan induló programoknak.

Tovább haladva láthatjuk, hogy a bspwm konfigurálása a bspc nevű paranccsal történik. A bspc monitor [monitor neve] -d I II III IV paranccsal beállíthatjuk a monitor(ok)on megjelenő asztalok vagy munkaterületek számát. Római számok helyett megadhatunk arab számokat, vagy bármi egyéni munkaterület nevet, ami semmi speciális vagy ékezetes karaktert nem tartalmaz.

Utána következnek a bspc config kezdetű parancsok, a fő beállító parancsok. A teljes lista megtalálható a bspwm manual oldalának global settings részénél. (man bspwm, kereséshez: /global settings majd ENTER)

Legvégül a bspc rule kezdezű sorok különböző szabályokat határoznak meg. Pl melyik munkaterületen, milyen módban (tiled,pseudo_tiled,floating vagy fullscreen) nyíljanak meg, vagy hogy átválson-e rá a fókusz.

Kiegészítők

Mivel a bspwm önmagában csak egy ablakkezelő, szükséges néhány kiegészítő a teljes asztali élményhez.

Billentyűkombinációk

A bspwm-hez ajánlott program az sxhkd (Simple X Hotkey Daemon), amit szintén a bspwm készítője csinált. Ez a program jól testreszabható, és a bspc parancsokkal könnyen beállíthatjuk a nekünk szükséges billenyűkombinációkat. A program alapértelmezetten a ~/.config/sxhkd/sxhkdrc helyen keresi a beállításait. Ha még nem létezik ez a fájl, akkor hozzuk létre. A MagyArch Linuxon ez már alapból megtalálható.

Most pedig elemezzük a fájl felépítését:

A sor elején megadhatjuk viszonylag természetes formában a billentyűkombinációt. A következő sorban egy tabulátort követően a parancs amit végre kell hajtani. Az sxhkd képességei azonban bőven nem merülnek itt ki:

  • ha egy @-ot adunk a sor elejére, akkor csak akkor fogja végrehajtani a parancsot, ha felengedtük a gombokat, pl:
    @Print
    scrot
  • a kapcsos zárójelek használatával több parancsot is megadhatunk egyszerre;
    a lentebb látható kód egyszerre négy kombinációt rejt magában
    super + {h,j,k,l}
    bspc node -f {west,south,north,east}
  • az alábbi esetben pedig miután felengedtük a super + o billentyűkombinációt, a következő leütés alapján csinál valamit:
    super + o ; {f,c,d}
    {firefox,chromium,discord}

Ahhoz, hogy a kombinációkat használni tudjuk, el kell indítani a programot. Tesztelésnél jól jöhet, ha egy terminálban simán elindítjuk az sxhkd paranccsal. Mindennapi használatban viszont csak a háttérben kell elindítani, ahogy a bspwm konfiguráció rész elején is látszik.