I3wm vs. Xmonad?

Xmonad
Xmonad

I3wm és Xmonad összehasonlítása. Ez egy alap, egyszerű és szubjektív összehasonlítás lesz. Vegyétek figyelembe, hogy egyik rendszert sem használom olyan rég és nem is ismerem olyan mélyen, hogy egy komoly, alapos és mindenre kiterjedő összehasonlítást tegyek.

I3wm és Xmonad technikai alapjai

Mindegyik un. tiling, azaz csempézős ablakkezelő. Így az összehasonlítás egyszerű lesz, hiszen két azonos kategóriás ablakkezelőt hasonlítunk össze.
Mindegyik alapvetően WM, azaz ablak kezelésre szakosodott program, így nem tartalmaz semmi DE, azaz asztali környezeti dolgot. Aki a Gnome, KDE, Xfce stb. asztali környeztet várja, csalódni fog. Alapesetben üres képernyővel, esetleg egy panellal indul.

Az I3wm C nyelven, a Xmonad Haskell nyelven íródott, ez érdekes, de számunkra érdektelen információ. Mindkettő forrása elérhető, de aki ezt olvassa, neki biztosan nem kedve a forráskódot nézegetni.

Mindegyik un. dinamikus megoldást használ. Ez a verzió a kényelmesebb egy kezdőnek, mert az ablak és asztal elhelyezés itt kevesebb munkával jár: mindet a rendszer fog kezelni. Bár ízlés dolga, hogy a manuális, vagy a dinamikus a kedvenc, én azt a módot szeretem.

Alap konfiguráció – a dobozból

Mindkettő egy elfogadható, de nagyon alap konfigurációval telepíthető. Így akinek kedve lesz kipróbálni, érdemes egy előre konfigurált telepítést választani. Én a Magyarch konfigurációival kezdtem, de pontosan megfelelhet az Arcolinux is, ha az jobban tetszik. Jól összeszedett, szépen kinéző, és főleg azonnal használatba vehető WM-et kapsz.

Panelok

Mindegyiknek jól használható, szépen beállítható alap panelja van. Én nem használom, de láttam, hogy bármelyik WM-et választod a panel meg fog felelni neked. A tudásuk terén sem lesz problémád.

Akár az I3wm, akár a Xmonad lehetővé teszi a külső panel kezelést, így akár a polybar, akár a Tint2 használható lesz. Pár egyéb panel is használható, de ezek az elterjedtebbek. Én mindegyikhez a Tint2-est használom, különösebb probléma nélkül, minimális konfigurációval üzembe lehet őket helyezni.

A panelok teljes értékű panelok, azaz minden elvárásnak megfelelnek.

Conky használata

Probléma nélkül működik akár az I3wm, akár pedig a Xmonad alatt.

Külcsín – azaz a kinézet, és a beállítási lehetőségei

Mindkettő WM kinézete kulturált, a Magyarch vagy az Arcolinux beállításaival alapból jó és szép kinézetet kapsz. Nincs különbség a kettő közt, mindkettő egyforma ezen a téren.

Alapszinten, ami egy felhasználót érinti, és a reális elvárások területén maradva a külcsín teljesen testreszabható. Az I3wm minden eleme beállítható, konfigurálható.
Az Xmonad ezt még túl is szárnyalja, mert a felépítése olyan, hogy sokkal több szépészeti beállításra ad lehetőséget. Bár a lehetőségek sokkal bővebb köre áll rendelkezésre, és ez az I3wm-et látszólag hátrányosan érinti, de amíg az I3wm-et használtam semmi olyan szépészeti beállításba nem ütköztem bele, ami hiányzott volna. Illetve érdemes a konfigurációs részt is figyelembe venni, az ott leírtakat is mérlegelni.

Felhasználhatósága – munkaélmény

Mindkettő stabil, atomstabil, ahogy sokan szoktál emlegetni. Nekem az I3wm soha nem fagyott le, semmi – neki felróható – lassulást nem tapasztaltam. Az Xmonad üzemszerű használata alatt hasonló a tapasztalat, de ott előfordulhatnak minimális problémák. Az Xmonad Heskell nyelven lett írva, ami azt adhatja, hogy mikor a Heskell, annak a könyvtárai, részei frissülnek, akkor az Xmonad-nál lehetnek minimális problémák. Erről és az okokról később. Mielőtt elhamarkodottan ítélnél: a megoldás egy gombnyomással lerendezhető!

A kezelhetősége egyforma, ha előrekonfigurált rendszert teszel fel, pld. a Magyarch  vagy az ArcoLinux disztribúciót, akkor minimális eltéréseken kívül semmi különbséget nem tapasztalsz. Mindkettő gördülékeny, sima és – miután a tilig módszert és annak a logikáját megszoktad – átlátható. Egyik sem okoz meglepetést, amit beállítottál, az úgy is fog működni. Egy idő után unalmas is lehet, mert nem fog semmi meglepetést okozni, teszi, amit kell. Igazi igáslovak: teszik, amit kell.

Egér, és annak használata

Tiling, így akinek nem kell az egér, annak nem kell használni. Minden elérhető egér nélkül is. Aki pedig egeret is szeretne használni – mint én – van lehetősége. Akár a használhatóság, akár a konfigurálás terén tökéletes mindkettő. Én semmi olyan problémába nem ütköztem, amit meg lehetne említeni.

Billentyűkombináció, sxhkd

Bár teljesen felesleges említeni, de akár az I3wm, akár az Xmonad teljes körben kezeli natívan, azaz saját rendszerben az összes elképzelhető billentyűkombinációt. Akár az ablakkezelési, akár programindítási feladatokat ellátják.

Aki pedig az sxhkd-t szereti a programindításra használni, neki is megfelelnek, hiszen mindkettő mellett használható.
Egy eltérés van, ami jelentős lehet. Amíg az I3wm ablakkezelői parancsait az sxhkd-ban kezelni tudod, addig az Xmonad-ét már nem. Vagy csak én nem találtam meg (még) ennek a lehetőségét. Így az Xmonad, az ablakok, a WM rendszer kezelésére az Xmonad konfigurációs fájlban van lehetőség.
Látszólag, inkább alakiságot érintő, hogy az Xmomad gyorsbillentyű kötéseinek a módja első látásra bonyolultabbnak tűnik.

, ((modm .|. shiftMask, xK_h ), sendMessage $ JumpToLayout “Mirror Tall”)

Kényes a tab, a space és egyéb dolgokra. De modullal már emberivé teheted:

, (“C-M1-”, spawn “rofi -show run”)

Ami jobban olvasható…

Fejlesztés alatt van?

Igen, mindegyik alapvetően aktívan fejlesztett rendszer.

Fejlesztési koncepció

A két fejlesztési koncepció eltérő, ami fontos tényező számunkra. Az I3wm fejlesztői pont a mai nap (2020. december 31.) jelentették be, illetve erősítették meg azt a koncepciót, hogy ők továbbra sem szeretnének a funkciókon változtatni, újabb funkció nem kerül bele. A hibajavításon, a meglévő funkciókon fognak dolgozni. Ez nem újdonság, mert eddig is ezt az elvet vallották: ami tud, annyit tud, de azt jól tudja, semmi extra, esetleg kevesek által, vagy ténylegesen haszon nélkül funkciót nem akarnak látni benne.

Az Xmonad más utat követ. Ők egy modulárisabb rendszert alkottak, amihez sok modul kapcsolódik. Így azt a funkciót, lehetőséget, „modult” teszed bele, amit te szeretnél. A bővíthetőség, ez a moduláris felépítés teszi lehetővé, hogy nagyon sok funkció, lehetőség közt választhatsz. Ellentétben az I3wm koncepciójával, itt bővíthető lesz a felépítése. Ami jó, mert sok mindent elérhetsz így, de a moduláris felépítés már összetettebb konfigurációt kíván.

Az I3wm-et felfoghatjuk egy kész egységnek, amit bekonfigurálhatsz, de nagyon nem tudsz rajta bővíteni. Ha benne van egy funkció, akkor azt beállíthatod, de ha nincs, akkor nem lesz rá lehetőséged ezen a téren fejleszteni. Az Xmonad pedig egy „legó”, hiszen az alap rendszeren kívül a modulok közt válogatva olyan funkciók, lehetőségek kerülhetnek bele, amiket az alap nem tartalmaz.

Konfiguráció

I3wm konfigurációja sima szöveges fájl. A konfiguráció relatíve egyszerűen elvégezhető, a dokumentuma jól követhető.
A konfigurációs állomány egyszerűen olvasható, a leírás elolvasása után egyszerűen értelmezhető, követhető.
Így átlagos tudással, aki el tud olvasni egy egyszerű, de nagyon részletes leírást, annak semmi komolyabb problémája nem lehet a konfigurációval. Nem kell hozzá sem programozói gondolkodás, sem pedig programozói ismeret.
Bár a precíz munka itt is elvárás, de nem kényes a szerkesztésre.
Nagyon kellemes megoldás, hogy az I3wm konfigurálása pontosan egy fájl, és nem kell sok konfigurációs állományt együtt nézni, hogy a változtatásokat megtedd.

A panel beállítás is hasonló, bár ott több fájlba kell majd írni, illetve egy minimális szkriptelési ismeret nem árt.

Kezdőknek ez a megoldás nagyon kedvező. A beállító fájlban nincsenek bonyolult programozói szerkezetek, nagyrészt egy lineáris szerkezetet használ: felsorolod a beállításokat. Nem, vagy csak kevés olyan teendőd van, ami nagyon túlmutat az elolvasom a leírást, megkeresem a beállítási sort, vagy egy-két sort bemásolok, majd a paramétereket megadom témán.

Mindkettőre igaz, de eltérő elvek szerint: a konfigurálás után beolvastatható az új I3wm konfigurációs fájl, és érvényesíthető. Nem kell kilépni, majd vissza. Ami gyors és rögvest érvényesíthető beállítást tesz lehetővé.

Itt egy tízes skálán a konfigurálhatóság 8, az alap tudásszinttel elvégezhető, a tanulása könnyű.

Az Xmonad az egy nagyon más téma! Alapvetően egy Haskell nyelvű konfigurációs fájlban dolgozunk. Ami összetett, és elvár egy minimális programozó gondolkodást. Bár a fájl maga nagyrészt jól olvasható, de vannak olyan részek, melyekhez már a Haskell nyelvet ismerni kell.
Az Xmonad konfigurációs fájl – mivel programozási nyelven írták – tartalmaz összetettebb szerkezeteket is, ami az első időben idegen lehet. Bár hamar kiismerheted, és a leírások is sok esetben szájbarágósak, de itt már több tudás szükséges. Alapbeállításokhoz nem kell nagyobb felkészültség, azokat egyszerűen megteheted.
A komolyabb, és hosszabb tanulási út akkor kezdődik, ha a moduláris rendszert is használod, azaz bővíteni akarod azt, amit alapból a disztribútorodtól kaptál.
Ilyenkor már a „sima bemásol, és pár számot átír” megoldás nem lesz jó. Több sor precíz szerkesztése, több helyen való megfelelő értékmegadás, beállító, konfiguráló részek pontos szerkesztése elengedhetetlen.
A Haskell nyelv miatt a precizitás nagyon fontos. A space, a vesző, a behúzások mértéke, a szintaktika pontos betartása elengedhetetlen. Az első időben a legtöbb bosszúságot, hibát ezek adják majd.
A nagyobb lehetőségek, a nagy konfigurálhatóság az összetettebb dolgokkal jár együtt. Itt mérlegelni kell, hogy ezek megérik számodra a plusz munkát, tanulást és a bosszúságot.

A változtatások itt is működés közben érvényesíthetőek, azaz nem kell ki és bejelentkezni. Itt egy fordítási, és újraindítási folyamat megy végbe, nem sima konfiguráció beolvasás.

Említettem, hogy egy minimális bosszantó jelenség is él ennél a WM-nél. Ha a Haskell nyelv részei, könyvtárai frissülnek, a frissítés után egy Xmonad újrafordítás szükséges. Ez nem olyan nehéz, mint ahogy első olvasatban gondolnánk. A legtöbb konfigurációban egy billentyűkombinációval megoldható. Maga a folyamat villámgyors, maximum egy felvillanást látsz.

Itt egy tízes skálán a konfigurálhatóság 10+, de csak komolyabb tudásszinttel végezhető el, a tanulási görbe meredek. Nem lehetetlen kezdőnek elsajátítani, de arra fel kell készülni, hogy sokat kell olvasni, googlizni. Arányában: három óra alatt, a leírás elolvasása után az I3wm-et nagyrészt olyanra állítottam, ahogy az nekem kell. Egy hete állogatom az Xmonad-ot, de még vannak olyan teendők, periferikusabbak, de még be kell állítani. Ezt adja a modulok sokasága, a funkciók lényegesen nagyobb száma és a konfigurálási lehetőségek száma is.

Mindkét ablakkezelő nagyon jó tulajdonsága az egy konfigurációs fájl, azaz ha valamit nagyon elrontottál, akkor egy mentésből a régit visszaállíthatod egyszerűen. Fórum és egyéb felület olvasása után jöttem rá: ezt a lehetőséget nem használják ki az emberek. Érdemes létrehozni egy külön felhasználót, majd ott kísérletezni és a kész fájlt a saját felhasználónak bemásolni. Sok hiba, bosszúság és félelem, hogy elrontod a rendszert ezzel kikerülhető.
Illetve mindegyik WM intelligens: ha a konfigurációban valami gond van, akkor azt leellenőrzi, majd kiírja. Így nem lesz olyan problémád, hogy valami hiba miatt a konfigban összeomlik a rendszer, és null, semmi infó mellett valami ledugott log-ban kell kutatnod.

Sejthető, de leírom: egyiknél sincs grafikus konfiguráló program.

Ablakok elrendezése

Az I3wm splith/splitv, stacking, tabbed (kétféle) és a floating megoldást (Layouts) használja, ezek jól beállíthatóak, a konfigurálásuk egyszerű. Amíg ezt a rendszert használtam nem volt olyan paraméter, beállítási lehetőség, ami korlátozta a fantáziám.

A Xmonad a Full, Tall, TwoPane, Grid, Tabbed és több egyéb beállításra is ad lehetőséget, a modulok segítségével. A Xmonad.Layout modulokban szerintem mindenki megtalálja a kedvenc elrendezését.
A modulok, az ablakok beállítása itt már összetettebb. A testreszabhatóságuk sokkal nagyobb, mint az I3wm-nél, így valóban mindent kontrollálni tudunk.

Lebegő ablakok használata

Mindkettő adja ezt a funkciót, de az Xmonad – szubjektív véleményem szerint – sokkal jobban kezeli azt a funkciót. Maga az alapkoncepció nekem jobban tetszik: Mod + egérkattintással lehet lebegővé tenni, mozgatni, méretezni, majd egy modul segítségével visszatenni az alaprétegre. Az aktívat, vagy az összeset… ahogy azt szeretnéd. Szuperül be lehet állítani.

Ablak pozíciók beállítása

Mindegyik WM lehetőséget ad előre meghatározni, hogy az indított program melyik asztalomon, melyik monitoron jelenjen meg. A tulajdonságaik is előre definiálhatóak.
Nem csak az asztal, monitor és a kinézet a beállítható paraméter, hanem a pozíció és a méret is (ez jellemezően a lebegő ablakoknál érdekes) pontosan megadható. Akár százalékos értékben akár pixelben. Egyiknél sem jelent problémát, hogy megadjuk, hogy az összes lebegő ablak egy pozícióban, egyféle mérettel jelenjen meg, de akár felhasználói programokra lebontva egyéni tulajdonságokkal is dolgozhatunk.

Mindegyik lehetőséget ad bármely felhasználói program ablakának (megjelenítésének) egyedi paramétereket adni. Így nem okoz problémát egy összetettebb elvárásnak is eleget tenni: a program a második monitoron, a hatos számú asztalon induljon, lebegő módban, a bal alsó sarokban, és a méretet legyen a monitor vízszintes méretének 60%-a, a függőleges méretének a 50%-a, a kerete legyen vastagabb, pontosan 10 pixel, és a színe az alapszíntől térjen el, és mivel azonnal akarom használni kapja meg a fókuszt.

Így a maximális teszreszabhatóságot egyformán biztosítják majd.

Több monitoros rendszer kezelése

Mindkettő fel lett készítve erre. Mindkettőnél összerendelhető a munkaasztal a monitorral, a felhasználói program a monitorral/asztallal. Így az asztalok, és a programok elrendezése nem okoz gondot.
Szubjektív véleményem szerint a I3wm beállítása egyszerűbb, gyorsabb ezen a téren.
Akár az I3wm, akár a Xmonad gond nélkül kezeli, ha a monitor felbontása eltér a natívtól. Bár ennek alapnak kellene lenni, de volt olyan WM/DE, ami nem ezen a szinten működött.

Scratchpad kezelése

Akár az I3wm, akár a Xmonad gond nélkül teljesen korrektül kezeli a funkciót. A drop-down megoldásokat is kezelik, az I3wm-hez egy script ajánlottam, a scratchpad beállítása ezzel nagyon egyszerű. Az Xmonad alatt ezt egy modul biztosítja, a beállítása inkább figyelmet, mint tudást kíván. Szuperül működik minden!

Autostart funkciók

Bár jellemzően nem a WM konfigurációjába rakom az induláskor automatikusan indítandó programokat, de kipróbáltam ezeket a lehetőségeket is. Mindkettő elindítja a megadott programokat, így aki a konfigurációs fájlból indítana autostart programot megteheti.

Dokumentáltság

Az I3wm ver mindent ezen a téren. A dokumentuma egyértelmű, érthető, és lineáris. Elkezded az elején és végigvezet mindenen. Ha ezt háromszor megteszed, már megismered a rendszert. Könnyű egy statikus, nem bővíthető WM-et dokumentálni, hiszen nincsenek kiegészítő csomagok hozzá.
Az Xmonad dokumentáltsága már nem ennyire egyszerű, mert sok rész (pld. a modulok) leírása nagyon jó, de programozóknak készült. Így egy kezdő nem feltétlen fog elsőre választ kapni a kérdésére ezekben.

Mindegyik WM-ről vannak leírások, tutorialok az interneten, bár – szintén szubjektív – az I3wm-hez több.

Mindkét rendszerhez sok közreadott konfigurációs fájl található, ezek tanulmányozása nagy segítség lehet egy-egy kérdés megoldásában.

Összefoglalva: Mindegyik szuper WM. Az I3wm kisebb tudású, de ez a kisebb tudás sok egyéb WM felett áll, és nem lesz normál felhasználónak olyan igénye, amit ki ne tudna elégíteni. A konfigurálása egyszerű. A leírása jó, szájbarágós – már egyszeri olvasat után jól megismered a beállításokat. Nem bővíthető, de pontosan a statikusabb koncepció miatt atomstabil.
Az Xmonad nagyobb tudású, sokkal nagyobb beállítási stb. lehetőségekkel. A moduláris rendszere miatt a funkcionalitása nagy, és minden, amit akarsz, beállítható. Messze felette van az I3wm-nak ezen a téren. Ami nincs ingyen: komoly tudás és sok meló ezt ki is használni. Ezt vegyétek komolyan, és mindenképp szánjatok rá időt, hogy előbb tesztfázisban használjátok, és fokozatosan építsétek fel a tudásotokat. A rendszer atomstabil. A Heskell frissítéseknél elmondottakat pedig kezelni lehet.

Tipp:

Ha gyorsan akarsz egy szuper tiling-et használni, ami minden igényt kielégít: I3wm.
Ha komolyabban érdekel és ezért hajlandó vagy sokat tanulni, a meredek tanulási görbe nem zavar, és van is időd erre, akkor: Xmonad.