Alacritty – hardveres gyorsítású terminálemulátor

Az utóbbi időben nagy divat lett az Alacritty terminálemulátort használni, illetve ez lett az egyik, a fő terminálja a MagyArch Linux disztribúciónak. Nekem ez a megoldás elég idegen, de nyitott vagyok bármiféle újdonságra, így körbejárom, mit tud, és van-e értelme ezzel foglalkozni. Bár mindenkinek van kedvenc terminálemulátora, amivel dolgozik, de érdemes azt is tudni, hogy alapvetően egy “felesleges” eszköz. Arra való, hogy egy grafikus felületre terminál ablakot rajzoljon. De mi elérhetjük a terminált akkor is, ha az ALT+Ctrl+F1 stb. kombinációval átlépünk egy sima, hagyományos terminálos felületre. Bár ez is egy megoldás, de azért szeretjük ha grafikus felületen minden kényelemmel ellátva terminálozhatunk. Már csak az a kérdés, hogy melyik, és az Alacritty jó lesz nekem? Én eddig az Xfce terminálját használtam, ami egy kellemes terminálemulátor.

Ki melyiket használja? Az Alacritty a legkedveltebb?

Ki mit használ? A profik melyiket tartják jónak? Én ilyen felmérést nem tudok készíteni, mert az nem lenne hiteles, kevés lenne a minta. De az egyik oldalon, a https://www.linuxlinks.com/ oldalon találtam egy felmérést, aminek a képét be is rakom. Ez elég jól mutatja, hogy bár az egyik legfiatalabb az Alacritty, de máris az első a sorban. Ez mindenképp jó jel, hiszen nem használnák, ha valami komoly gond lenne vele. Itt is fontos megjegyezni, hogy ha a te kedvenced nem az elsők közt van, az sem jelent semmit! A felsoroltak, illetve az általam használtak mindegyike teljesen jó, használható. Ha nem napi 8 órában, és profi terminál zsonglőrként használod a terminálemulátort, akkor kisebb, sok esetben kényelmi funkciókban találsz csak eltérést. Bármelyik jó, és nem kell csak azért váltani, mert mások mást használnak! Általában túl nagy jelentőséget tulajdonítanak a terminál emulátor típusának, és annak, hogy ki melyiket használja. Bár vannak eltérések, de egy átlagfelhasználónak csak olyan tünik fel, hogy van-e több ablak nyitási lehetőség, azaz van-e tab fül… A lényeget nem fogja érinteni, hiszen mindegyik elvégzi a dolgát: ad egy terminálablakot.

Mi is ez? Miért is érdemes ezt használni?

A grafikus gyorsítás

Alapvetően pár érvet emlegetnek, ami miatt ez érdekes lehet. Az egyik, hogy az Alacritty a grafikus kártyádat használja, így gyorsabb. Mit is jelent ez egyszerű nyelven? Nem a processzorodat terheli, hanem a grafikus kártyát használja. Ez egy jó dolog, hiszen ha a CPU nagyon leterhelt, akkor jobb, ha a GPU-ra kerül át a munkafolyamat. Ezt a megoldást sok videószerkesztő is használja, hiszen a mai olcsóbb kártyák is olyan erőforrásokkal rendelkeznek, amiket régen el sem tudtunk képzelni. Itt is igaz, hogy korrekt méréseket nem tudok készíteni, így a fentebb említett oldal méréseire támaszkodom.

Gyorsaság

A kép magáért beszél. A tesztben egy 100megás szöveget görgettek. Ami azért is fontos, mert pld. egy rendszerfrissítés nem lesz attól gyorsabb, ha az Alacritty terminálemulátort használod.
Elmondhatjuk, hogy a gyorsasága valós, azaz nem csak a szokott reklámszöveg. Ez egy jó dolog, de semmi nincs ingyen! Nem, nem fizetős a program, hanem memória igényes. Lemérték, hogy egyes terminálemulátorok mennyi memóriát fogyasztanak indításkor, alapértelmezett konfigurációjukban, a ps_mem segédprogram segítségével.

Alacritty fogyasztja a legtöbb memóriát! Az alapértelmezett telepítés a görgetési puffert 10 000 sor tárolására állítja be. Csökkenthetjük a szoftver memóriafelhasználását a görgetés sorainak számának csökkentésével. Ideális esetben dinamikus memóriakiosztást szeretnénk látni, mivel bizonyos helyzetekben hasznos lehet egy nagy görgetési puffer használata, miközben minimalizáljuk a memóriafelhasználást. Ha a terminálban sokat és nagyon sok sornyit tekersz vissza – pld. programfordításkor, hibakeresésnél – akkor jó a sok sornyi buffer. Ha nem, akkor vedd vissza. Bár nem sokat jelent, hiszen ha grafikus felületen terminálemulátor mellett egy böngésző is fut, akkor nem Alacritty miatt fogy el a memória…

Gyorsabb, de memória igényesebb.

Vi-szerű működés

Aki szereti, ismeri a vi kombinációit, és sokat használja a vi és az ahhoz hasonló programokat, annak ez nagyon kellemes lesz. Aki sikítófrászt kap ettől, annak nehézkesebb lesz a használata. Bár sok mindent át lehet állítani, de nagy könnyebbség ha vannak vi alapok.
A vi egy szövegszerkesztő, terminálos, nem egy egyszerű, de nagy tudású és kifejezetten saját billentyűkombinációiról híres. Kezdőnek igencsak fura lehet, de sokan nagyon szeretik, mert hatékony. Bár aki ezt olvassa nem biztos, hogy a vi és hasonló programokat híve lesz, de ha van rá egy kis ideje, érdemes ránézni. No nem azért, hogy holnaptól ezzel írjon megy egy regényt, hanem hogy begyakorlója a billentyűkombinációikat, alapszinten. Sok jó, jellemzően terminálos program használja őket, már csak ezért is jó ha ismered.

Hogy a vi téma előny, vagy hátrány az a te egyéni elgondolásod.

Az Alacritty egyszerű

Nekem előny, de sokaknak hátrány, ha nincsenek fülek, tab-ok, és hasonló – számomra – felesleges funkciók. Én kedvelem azokat a programokat, amiknél semmi felesleges nincs, csak azt tudják, amit kell. Ha ezek hiányoznak neked, akkor nem az Alacritty lesz a kedvenced! Ezeknek a hiánya nem negatívum, hanem vélhetően a célközönségnek, a haladó terminálzsonglőröknek az igénye.

Multiplatformos

Nekem nem előny, nem hátrány, de multiplatformos, a nagyobb operációs rendszereken fut. Amire figyelni kell: vannak specifikus beállítási lehetőségek is, melyek csak az egyik, vagy másik platformom lesznek elérhetőek. Ami logikus is, de érdemes a beállításnál megnézni, hogy az adott sor melyik oprenszerre vonatkozik. Gond jellemzően nem lesz, ha megadsz egy olyan sort, ami csak Windows alatt érvényes, de nem elegáns.

Alapból kattintható URL-ek

Azaz, ha egy webcím van a terminálban, akkor arra kattintva megnyitható. Kényelmes, bár több terminálemulátor is tudja ezt. Én a programok telepítése előtt, ha lekérdezem a tulajdonságokat, és ott van egy saját honlapra mutató, akkor azt kényelmesen megnyithatom. Szuper!

Vágólap kezelés

Save_to_clipboard konfigurációs opció beállítása a kijelölt szöveg másolásához a rendszer vágólapjára, és a terminálban is jól működik a másol, beilleszt funkció. Alapesetben – gondolom nem meglepő – ez a billentyűkombinációkkal fog mükodni, de egérhez is rendelhető. Így nem lesz nagy eltérés a megszokottól. Picit igazgatni kell, vagy megszokni az alapbeállítást, de egyik sem okozhat gondot.

Jól konfigurálható az Alacritty

Kellemes meglepetésként érht, hogy a konfigurációs fájlban nagyon szépen minden infót megkapok a beállítási lehetőségekről. Így a fájl szerkesztése közben a kommenteket olvasva tudok dolgozni. Nem kell semmi leírást, vagy weboldalt nézni, csak sorba veszem a listát és a beállításon átfutok. Igen… a fájlban! Azaz nincs grafikus beállítási felülete, de igazából nem is kell. Annyira egyszerű, hogy akinek kedve van állítgatni, annak nem lesz gondja vele.

Telepíteni kell, ha nincs alapból fenn, és ez nem okozhat gondot. Majd elindítjuk, és kapunk egy terminált. Így már használható is. Ha heti egyszer-kétszer használsz terminált, akkor igazából semmi teendőd nincs, mert alapbeállítások jók. Ha többet használod, akkor ráérős idődben érdemes a beállításokat átnézni.

A beállítása egyszerű

A leírás szerint az Alacritty nem hozza létre a konfigurációs fájlt, de a következő helyeken kell keresni/létrehozni:

$XDG_CONFIG_HOME/alacritty/alacritty.yml
$XDG_CONFIG_HOME/alacritty.yml
$HOME/.config/alacritty/alacritty.yml
$HOME/.alacritty.yml

Én abban a kellemes helyzetben vagyok, hogy a MagyArch előre konfiguráltan szállítja, így túl sok teendőm nincs.
Nem akarok, és nem is tudnék, egy mindenre kiterjedő konfigurációs kézikönyvet írni. Csak azokra a funkciókra térek ki, amik érdekesebbek, megragadták a figyelmemet.

Elsőnek a legfontosabbat adjuk meg:

# Live config reload (changes require restart)
live_config_reload: true

Azaz, ha beleírsz a konfigurációs fájlba, mented, akkor azonnal érvényesüljön a változtatás. Szuper!

Itt is megtalálható az alapkinézetet, a fontokat, és kurzort stb. beállító rész. Ezt mindenképp nézd át, mert ha használunk egy programot – főleg, ha sokat – akkor az nézzen is ki valahogy. Úgy, ahogy neked tetszik. Igen, igen! Tudja a sokak által nagyrabecsült és a lehető legfontosabbat is: áttetszőséget, átlátszóságot is! Én villámgyorsan el is szoktam tüntetni, és egy sima, átlátszatlan hátteret készítek 🙂

background_opacity: 1

Érdekes, de szerintem hasznos beállítás az ablakkerettől való betűtávolság beállítása. Így nem a keretné, hanem kicsit beljebb kezdődik a munkaterület, a sorok eleje kicsit beljebb van.

padding:
x: 15
y: 15

A padding értékkel állíthatjuk. Bár komoly funkcionalitása nincs, de nekem jobban bejön így.

A már említett visszalapozást szabályozhatod a

scrolling:
history: 10000

beállításnál. Ha az ablakkezelőd a méretezést, és a pozicionálást nem kezeli (nekem az i3 korrekt) akkor az Alacritty-ban is megadhatod a méretet, a pozíciót. Ezzel nekem nincs tapasztalatom.

A vágólap nekem megfelelő működésért én engedélyeztem a rendszervágólap használatát is.

save_to_clipboard: true

Ha nem tetszik a kurzor kinézete, megváltoztathatod. Háromféle van, nem egy lényeges beállítás, de aki egyfajtát megszokott, annak a másik fura, zavaró lehet.

cursor:
# Cursor style
#
# Values for `style`:
# - ▇ Block
# - _ Underline
# - | Beam

style: Block

Ami kinézeti téma, én nem állítottam: a GTK téma használatát is megadhatod, sötét/világos kinézetet adhatsz a terminálnak.

Ami érdekes lehet, és az ablakkezelődtől is függ a class megadása.

# Window class (Linux/BSD only):
#class:
# Application instance name
#instance: Alacritty
# General application class
#general: Alacritty

Ha az ablakkezelődben, esetleg a picom-ban különleges szabályt adsz meg az Alacritty-hez, akkor jellemzően ezeken a neveken hivatkozol rá. Ha egy stabil, vagy a megszokottól eltérő class-t akarsz megadni (így mindig ezen a néven nevesíti a rendszer) akkor itt megadhatod.

Kellemes, ha megadod a dinamikus ablakcím kezelést, így mindig a futó program lesz a terminálablak címébe beleírva.

window.dynamic_title: true

Egér és gyorsbillentyűk

Egérkezeléshez a dupla klikk idejét is beállíthatod.

# Click settings
#
# The `double_click` and `triple_click` settings control the time
# alacritty should wait for accepting multiple clicks as one double
# or triple click.
#double_click: { threshold: 300 }
#triple_click: { threshold: 300 }

Ami már több manuális munkát, átgondolást igényel, és nagyon hasznos az egér konfigurálása. Ehhez a # Mouse bindings
# részt át kell nézni, majd a megfelelő gombokhoz a megfelelő eseményt hozzárendelni. Én ezt direkt NEM állítottam be, mert próbálok (majd kiderül, milyen sikerrel) a terminálemulátorban csak, és kizárólag billentyűkombinációikat használni. Ami alapesetben nem túl nagy változás, mert eddig is így jártam el. De a görgetés, kivágás, beillesztés stb. eddig egerészve történt.

Az utolsó amire felhívom a figyelmet talán az egyik legkellemesebb lehetősége az a billentyűkötések megadása. A minta konfigurációs fájl bőségesen bemutatja ezeket, mintával. Én a MagyArch konfigjából rakom be ide a mintát:

key_bindings:
- { key: N, mods: Control, action: SpawnNewInstance }
- { key: V, mods: Alt, action: Paste }
- { key: C, mods: Alt, action: Copy }
- { key: Key0, mods: Control, action: ResetFontSize }
- { key: Equals, mods: Control, action: IncreaseFontSize }
- { key: Add, mods: Control, action: IncreaseFontSize }
- { key: Subtract, mods: Control, action: DecreaseFontSize }
- { key: Minus, mods: Control, action: DecreaseFontSize }
- { key: L, mods: Control, action: ClearLogNotice }
- { key: L, mods: Control, chars: "\x0c" }

Ahogy látni egy átlátható módszerrel adhatod meg a billentyűkötéseket. Bár biztos vagyok benne, hogy mindenki sejti, de kiemelem: akármilyen kombinációkat megadhatsz, de azért a shellekben megszokott kombinációkat nem kellene erőltetni. A Ctr+c a megszokott vágólapra másolás, de a shellekben ez a parancs megszakítására van…

Remélem ennyiből már látjátok, hogy miért is az első helyen végzett a versenyben, és miért is szeretik sokan. Talán azt is érzitek, hogy a konfigurációs lehetőségei egyszerűek, jól beállítható minden, ami egy átlagos felhasználónak kell. Oda kell figyelni mit állítasz, és kisebb próbálkozásokra szükség lesz, de azután már egy nagyon testreszabott, kényelmes terminálemulátort kapunk az Alacritty-vel.