A Herbstluftwm egy rendkívül rugalmas, erőforrás kímélő, manuális csempéző ablakkezelő az X11-hez. Legfőbb filozófiai jellemzője, hogy nincs hagyományos statikus konfigurációs fájlja, a teljes beállítás futásidejű (runtime) parancsokon keresztül történik a herbstclient nevű segédprogram segítségével. A konfiguráció lényegében egy shell szkript (autostart), amely indításkor herbstclient parancsok sorozatát hajtja végre. Először tisztázzuk a herbstluftwm fogalmait: - Tag-ek (Címkék / Virtuális asztalok): A virtuális asztalokat "tag"-eknek hívjuk. Minden asztal egy önálló elrendezési fát (layout tree) és az azon lévő ablakokat (klienseket) tartalmazza. Az összes asztal egy közös készletben van, amelyet a virtuális monitorok megoszthatnak. - Frame-ek (Keretek) és Layout (Elrendezés): Az elrendezés egy bináris fát alkot, egy keret (frame) kétféle lehet. (1. Tartalmazó: Ablakokat (klienseket) tartalmaz, amelyeket az aktuális layout algoritmus szerint rendez el ( vertical , horizontal , max , grid ). (2. Osztott: Két alkeretre (subframe) van osztva vízszintesen vagy függőlegesen, egy megadott arányban (fraction, pl. 0.5 = 50%). - Kliensek (Ablakok): Minden ablak a csempézett (tiling) rétegben vagy a lebegő (floating) rétegben helyezkedik el. A lebegő ablakok a csempézett réteg felett jelennek meg, és szabadon mozgathatók. - Monitorok: A képernyőterület szabadon felosztható virtuális monitorokra, amelyek nem feltétlenül egyeznek meg a fizikai hardver elrendezéssel. Ez lehetővé teszi, hogy egy nagy felbontású monitoron egyszerre két asztal tartalmát is lásd. A képernyő egy bináris fába van szervezve. A gyökér (root) egy keret, amelyet két részre oszthatsz (split). Minden keret vagy tovább osztható, vagy ablakokat tartalmaz: - split vertical 0.5: A jelenlegi keretet függőlegesen két egyenlő részre osztja (bal-jobb). - split horizontal 0.5: Vízszintesen osztja (fent-lent). - split explode: Intelligens: a jelenlegi ablak kivételével mindent új keretbe tesz. - remove: Törli az aktuális keretet és eggyé olvasztja a szülővel. A fa-struktúra miatt nincs "oszlop" vagy "sor" fogalom, minden felosztás egy új ág a fában. Egy kereten belül az ablakok elrendezésének lehetőségei: - vertical: Ablakok egymás alatt (alapértelmezett). - horizontal: Ablakok egymás mellett. - max: Csak az aktív ablak látszik (tab-szerű). - grid: Rácsos elrendezés. Ezeket a cycle_layout váltja, vagy set_layout paranccsal állíthatod. A konfiguráció kizárólag a herbstclient (gyakran hc alias-szal) parancsokon keresztül történik. Nézzük az enyémet (~/.config/herbstluftwm/autostart): => https://codeberg.org/berus_berg/dots/raw/commit/7cd848f9e55b5b32f59e8e67a0c5970082583f7d/herbstluftwm/.config/herbstluftwm/themes/catppuccin-mocha Szokás szerint igyekeztem magyarázatokkal ellátni, nem is ragoznám túl... Amire viszont felhívnám a figyelmet, hogy manuális csempézőt használunk, tehát először keretet nyitunk (Mod+o vagy +u), majd a keretben nyitjuk az ablakot, ill. az ablak bezárása után a keretet is el kell távolítanunk, ha már nem akarjuk használni (Mod+r). Ezt adott esetben azért szokni kell... Amit én nem használok, de téged érdekelhet... - Egy monitor két virtuális monitorra osztása, pl.: hc set_monitors 960x1080+0+0 960x1080+960+0. - Szabály létrehozása, pl. Firefox a 2-es tag-re: hc rule class=Firefox tag=2. Egyéb szabályok is létrehozhatók, pl. floating=on lebegő mód, fullscreen=on teljes képernyő, manage=off ne kezelje a WM, stb.. Alapértelmezetten egy dzen2 alapú panel jár hozzá, ami iszonyú szívás... Órákat töltöttem el vele, mire a Skynet segítségével sikerült rábírnom, hogy azt és ott jelenítse meg, ahogyan én szeretném, kegyetlen (vagy csak én vagyok hülye hozzá, és inkább Windowst kéne használnom)... Na mindegy, megküzdöttem vele és most már müxik, következzen a konfigurációja (~/.config/herbstluftwm/panel.sh): => https://codeberg.org/berus_berg/dots/raw/branch/main/herbstluftwm/.config/herbstluftwm/panel.sh Ezt is alaposan elláttam magyarázatokkal (magamnak is, ne keljen még egyszer ennyit szívni vele), nem boncolgatnám tovább (amúgy EWMH szabványú panelekkel, pl. Polybar kiváltható)... Végül készült egy Yambar-t futtató verzió is, az autostart konfig fájl 10-es szekciójában tudsz váltani. A jelenlegi Yambarban nincs natív herbstluftwm modul, viszont ez könnyen megoldható a Yambar szkript moduljával (~/.config/yambar/herbst-tags.sh; tedd futathatóvá): => https://codeberg.org/berus_berg/dots/raw/branch/main/yambar_hlwm/.config/yambar/herbst-tags.sh Most jön a fő konfiguráció (~/.config/yambar/config.yml): => https://codeberg.org/berus_berg/dots/raw/branch/main/yambar_hlwm/.config/yambar/themes/catppuccin-mocha.yml A dzen2 verzió is működik, de ahogy mondani szoktam, ez tisztább, szárazabb érzés! A herbstluftwm egy rendkívül hatékony kis jószág, szerintem bármin elfut. A manuális csempézés megszokást kíván, de megvannak a maga előnyei, én lelkesen használom, ugyanakkor a pálcikawm világgal való ismerkedésre nem feltétlen ajánlanám, némi elszántság azért kell hozzá...! Nyilván lehetne még farigcsálni, akinek erre van késztetése, annak barátja a man! ui.: A témák váltásához linkeket használok, ezért figyelj, hogy a példa konfigokat a megfelelő néven mentsd el! Berus