bspwm – alapbeállítás

Ebben a részben a bspwm beállítása lesz a téma. Bár sokan a két végletet emlegetik, de az igazság itt is középen van. Az sem teljesen igaz, hogy egyszerű beállítani, mert ez csak egy sima szövegfájl, amihez nem kell ismerni egyetlenegy programnyelvet sem. De az sem igaz, hogy ez nehéz, mert annyi a lehetőség. Az első érv nagy előny, hiszen csakis sima, tényleges szintaktika nélküli sorokat kell beírni, de azért nem árt kicsit olvasgatni.A második érv is tartalmaz igazságot, mert igen sok lehetőséget ad a rendszer, de a nehezebb fele az ablak kezelésének, pontosabban a bspwm ablakkezelőnél nagyon fontos gyorsbillentyűknél lesz. Következő rész…

Kis kitérőként olvasd el a konfigurációs fájlok szerkesztéséről szóló, illetve a gyors és hatékony megnyitásról szóló bejegyzést.
Itt már fontos, hogy a bspwm-be legyél bejelentkezve, hiszen csak így látod az eredményt! Itt fontos, hiszen az első blokk beállítása már legyen végleges, megfontolt és neked megfelelő. Ez a kinézet, működés alapjait állítja be, így nem fogjuk napi szinten szerkeszteni.

Bspwm beállítások szerkesztése

Nyissuk is meg a $HOME/.config/bspwm/bspwmrc fájlt, de talán jobb, ezt már a belinkelt scripttel végezteted el. Akkor lesz mentésed. Ha a Magyarch disztribúciót használod, akkor már ez a script telepítve van, és (emlékeim szerint) a win+F2 lenyomásával indul. Ahogy már tudod, én a magyarch bspwm konfigurációs állományt tettem fel, így azon megyünk végig.

Egy kulcskötést érdemes megtenni a sxhkdrc-ben:

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

Ha a magyarch-ot használod, vagy annak a konfigurációját másoltad be, akkor ez már be van állítva. A windows + alt + q kiléptet a rendszerből, a windows + alt + r beolvassa az új, szerkesztett konfigurációt. Így a szerkeszt-ment-beolvastatja után már látod is az eredményt.

A bspwm működésének testreszabása

Én két blokkra osztottam a bspwm beállítását. Az első blokk a bspwm beállítása, a második pedig a megnyíló programok tulajdonságainak beállítása.

#!/usr/bin/env sh

# If refreshing bspwm, remove all previous rules to prevent doubling up.
bspc rule -r "*"

#LAUNCHERS
killall cleanfullscreen
cleanfullscreen &

Ez a rész előbb eltávolítja az összes szabályt, ha frissíted a bspwm-et. Így nem lesz dupla, tripla szabály, ami ütheti egymást. Jó sor, mindenképp rakd bele.

A második egy scriptet hív meg, ami „törli a táblát”, azaz tisztává teszi az asztalt. A rejtett ablakokat stb. lekezeli. Nem feltétlen kell. Ami itt kiemelendő maga a külső script használatának a lehetősége. Ez már messze túlmutat az alapbeállításon.

A következő szakasz szabályozza a bspwm kinézetét

bspc config border_width 3 A keret szélessége. Itt valóban csak az ablak környéki csíkot állítod. Más ablakkezelőnél megszoktuk, hogy a keretnek több tulajdonsága van. A bspwm-nél valóban a minimalista “egy színnel rajzoljunk egy téglalapot, az lesz a keret” a megoldás. Így itt a még neked jól látható, nem túl vastag érték az ideális. Minél kisebb, annál több hely marad a tényleges munkára.
bspc config window_gap 7 Az ablakok közti táv. A látható még, de minél kisebb elvet követem, ezt én 3-ra szoktam venni. Az indoka a fenti: ha már van rá lehetőség, és ezt emlegetik előnynek, akkor minél több legyen a hasznos terület.
bspc config top_padding 32
bspc config bottom_padding 7
bspc config right_padding 7
bspc config left_padding 7 A négy oldalt a távolság a kávától, a monitor szélétől. Ahogy tetszik. Megkötés akkor van, ha egyik élen (itt a felsőn) valami panelt stb. helyezel el és nem akarod, hogy az ablakok abba belelógjanak. Én kikommenteltem az indításból a polybar-t, így a körbe 5 érték jó lesz nekem 🙂

bspc config split_ratio 0.55 osztási ráció. Amikor egy új ablak megnyílt, milyen arányban lesz a két ablak.

Ha nem tetszik a meglévő ablaknyítási sorrend, ahogy az ablakokat felezi, akkor a bspc config automatic_scheme beállításokat nézegesd. Még alapesetben is van pár, ami jobban megfelelhet neked.

A bspc config automatic_scheme spiral spirális elrendezést ad, a bspc config automatic_scheme longest_side pedig mindig a leghosszabb oldat felezi le. Legalább egyszer érdemes kipróbálni, melyik mit mutat.

bspc config focus_follows_pointer true Igen fontos – nekem – a fókusz kövesse az egeret. Gyors, kényelmes. Ha zavar, akkor ne használd.

Ha egérrel akarod a lebegő ablakot mozgatni, akkor ezek a sorok kellenek:

bspc config pointer_modifier mod4
bspc config pointer_action1 move
bspc config pointer_action2 resize_side
bspc config pointer_action3 resize_corner

Így a Super gomb és az egérgombokkal mozgathatod, méretezheted a lebegő ablakokat. Mindenképp próbáld ki!

Plusz még jó pár ilyen beállítási lehetőség van, így ha a minimális, szerintem alapokat kipróbáltad, az összes leírását olvasd el. A fele nem fog érdekelni most, de tartsd észben: bármikor szükség lehet rájuk, ha valamit be akarsz állítani. Jó ha legalább olvasás szintjén van tudomásod róluk.

Színezések beállítása a bspwm ablakkezelőnél

#Set the border colors
bspc config normal_border_color "#2f2b26"
bspc config active_border_color "#c3cdc8"
bspc config focused_border_color "#c3cdc8"

Nem kell ragozni, a megfelelő kódú színnel jelenik meg. Egyszer beállítod, és kész.

Ha egy monitorod van a bspwm asztalok beállítása

#Single monitor
bspc monitor -d 1 2 3 4 5 6 7 8 9 10
#bspc monitor -d “☢️ ” “🤬 ” “⚒️ ” “🍭 ” “🎲 ” “🎬 ” “🔰 ” “🎯 ” “📀 ”
#bspc monitor -d “Web ” “Chat ” “Float ” “Edit ” “Tor ” “Video ” “Vbox ” “File ” “Music ”
#bspc monitor -d “ ” “ ” “ ” “ ” “ ” “ ” “ ” “ ” “ ” “ ”
#bspc monitor -d “I ” “II ” “III ” “IV ” “V ” “VI ” “VII ” “VIII ” “IX ” “X ”

Ahogy látni a kikommentelt részben elég sokféle névvel láthatod el a tíz darab asztalodat. Bár nevet, ikont és római számot is lehet adni neki, de hivatkozás, és egyéb okok miatt szerintem az sima számozás a nyerő. Ne bonyolítsuk túl.

A több monitoros rendszer beállítása bspwm asztalonként

Magát a monitorok elrendezést, és felbontásait beállítottuk már. Azt nem itt kell megadni! Itt azt a rendszert adjuk meg, ami szerint egyes asztalokat a monitorokhoz rendeli. A megadása egyszerű, de figyelni kell rá! A monitorbeálláskor írtam: jegyezd fel a monitor nevét. Ha nem tetted, akkor elindítod az arandr programot és már látod is.

#Dual monitor
bspc monitor DVI-D-1 -d 1 2 3 4 5 6 7
bspc monitor HDMI-1 -d 8 9

Én nem ketté osztottam az asztalokat, hanem kettő került a szélsőre, a többi a fő monitorra. Így ha azt akarom, hogy a szélsőn nyíljon meg egy program csak meg kell adni neki az asztal számát és mindig ott nyílik meg. Ha az egyik programot a szélsőre akarom küldeni, akkor megadom a 8-ast célnak és átmegy oda. A számodra megfelelő arányba oszt meg, a lényeg, hogy tudd, hogy melyik hova van kiosztva. Ezt lehet fokozni, ha megnézed a btops bspwm kiegészítőt, ami kiterjeszti a lehetőségeket. Bár még nagyon nem kell, de jó tudni róla!

Amit jó tudni, de nem mindennap kell majd: a xranr más nevet oszt ki időnként, főleg ha videódrájvert cserélsz. Na ilyenkor fura, megmagyarázhatatlan ablakkezelést tud a bspwm elkövetni. Így ha ilyen van, nézd meg, hogy a megadott nevek azok jók, vagy át kell írni őket. Nem lesz komoly gond, mert ha nem egyeznek a nevek, nagy valószínűséggel az eredeti, egymonitoros beállítás lép érvénybe.

Már kész van a kinézet és pár alapvető beállítás. Most jön a második blokk.

A programok beállítása bspwm-en

Már az openbox-on is beállítottuk, hogy egy program melyik monitoron, melyik asztalon és milyen tulajdonsággal induljon. Ez a lehetőség a bspwm környezetében is jelen van, a beállítása pontosan olyan egyszerű, mint az openboxban.

bspc rule -a firefox desktop='^1' follow=on

A felépítés, és egypár beállítás már ebből is egyértelmű. A megszokott

bspc rule -a Programnév Szabályok

összeállításnál nem lehet egyszerűbbet kitalálni.

A főbb szabályokat érdemes ismerni, hiszen ezekkel elég jól leírhatjuk a vágyainkat.

desktop=’^1′ A lehető legfontosabb, mert megadja, hogy melyik asztalon jelenjen meg.
monitor=’^1′ A monitor adja meg, ha neked megfelelően osztottad ki az asztalokat, akkor nem igazán lesz szükséged rá.
state=fullscreen vagy floating beállítást értelemszerűen lehet használni
focus=on Azonnali fókuszt kap
center=on Középre kerül
border=off Nem kap keretet
hidden=on Rejtet státuszt kap.

bspc rule -a Screenkey manage=off Ez egy fontos beállítás, így nem fogja onnét elmozgatni, ahova tetted. Egyes programoknál ez előny lehet, hiszen pld. ezt a billentyűzet megjelenítőt mindig a felvételen akarom tartani.

A leírás, a man bspwm ennél többet felsorol. Ha ezeket ismered már gyakorlatilag kedvedre rakosgathatod ki a programokat. Az összes ablakjellemzőt beállíthatod ezzel.

Bár egyértelmű: ha nem adsz meg jellemzőt a programnak, akkor az az alapbeállítás szerint, rendben indul. Nem kell attól tartani, hogy az összes létező programot neked kell szabályozni. Csak azokat, amelyeket konkrét helyre, konkrét jellemzővel akarsz indítani.

Ez egy favágó munka, és nem is túl élvezetes

Amit érdemes tudni, nem a program nevét, és nem is program indító parancsát várja el, hanem a WM_CLASS értékét. Amit jó eséllyel valóban a program neve, de ha nem, akkor a

xprop | grep WM_CLASS

parancsot indítsd terminálban, majd kattints rá a megnyitott program ablakára. Így kiírja a megadandó értéket.

Én a praktikusság kedvéért kategorizálom a sorokat kategorizáltam:

Érdemes a bejegyzés kategóriákat így feliratozni, illetve, ha van rá mód szerkesztődben sorba rendezni ABC rendbe. Könnyebb követni a duplikátumokat.

Használd az itt leírt gyors megnyitós kis scriptet, mert egyrészt lesz mentésed, másrészt pedig gyorsabb. Egy-egy bejegyzés miatt nem biztos, hogy az odamegyek, mentem, szerkesztem, lementem procedúrát megtenném. Ezért sok program beállítása elmaradt régebben. Később megbosszankodtam, hogy miért is voltam lusta.

Bonyolult volt? Nem, csak pár alapvető szabványt kellett követni, és párszor a man oldalt felkeresni. Ami nagyon kellemes a “mindet szöveges fájlban állítok” bspwm elvben, hogy ha egyszer létrehozol egy normális beállítás, lemented és azután már viheted a következő újratelepítésre is. Örök darab lesz.

A beállítás fizikai része nem okozhat gondot, de egy hétig variáltam a beállításokat, állogattam a programok tulajdonságait. Itt elég bő lehetőség van, amit érdemes kihasználni. Nagy hangsúlyt kap a jó konfigurálás, a bspwm nagyon más, mint a megszokott XFCE, vagy openbox rendszerem. Kell pár nap, amíg belerázódik az ember. Ne add fel! Kicsit más logika szerint kell gondolkodni, amibe bele kell rázódni!

Ami nagyon pozitív érzést adott az a teljes körű testreszabhatóság.

Haladás a bspwm teszteléssel

Itt már a conky, és a panelok is felkerültek. A conky simán megy, nincs vele gond. Sokan most felhördülnek: a polybar-on is meg lehet mindent… Ami igaz is, de a polybar beállítása még idegen nekem, így a conky-m marad!
Amit a bspwm javára kell írni, akár a conky, akár a tint2-es, akár a xfce panel minden gond nélkül, teljes funkcionalitással működik. A xfce panelnál a maximálás, minimalizálás nem, de az nyilván az xfce saját parancsaival megy. Így már majdnem biztos, hogy az a panel lekerül, és más lesz helyette. Így akit a polybar-ról elterjedt téveszme (bonyolult) tart vissza a váltástól, annak sem kell rögvest a polybar-t konfigurálnia! Az átállást, tesztelést ez nagyban segíti, mert a megszokott környezet egy részét itt is élvezni tudtam.

Jogos kérdés a beállításnál

Ha csak ennyi a beállítás, akkor miért tartják nehézkednek a konfigurálását sokan? Mert most csak a bspwm és a programok működését állítottuk be. A tényleges vezérlése itt a billentyűzetről működik, amit be kell állítani. Bár az sem nehéz, de ahhoz már az összes bspc parancsot, kapcsolót ismerni kell. Ami nem az egyik pillanatról a másikra fog jönni, így a következő részben nem is teszünk mást, csakis a meglévő, más által elkészített fájlt szerkesszük.

A sxhkd szerkesztése…