Rengeteg terminál emulátor közül választhatnak a Linux-felhasználók. A legtöbben maradnak az alapértelmezett terminálnál, másoknak megvan a saját kedvencük. Itt egy új, Rust-alapú terminálba, ami azonnal felkeltette a figyelmemet. Nem azért, mert Rust-ban írták. Hanem mert az egérkurzor egy patkány. Elég furán hangzik, igaz? A Ratty viszont remekül megmutatja, mire képes egy terminál.
Mi is az a Ratty?
A Ratty egy modern terminál emulátor, amelyet Rust-ban írtak, és egészen sajátos csavart visz a parancssorba. A hagyományos terminálokkal ellentétben a Ratty GPU-val renderel. Közvetlenül a terminál ablakában tudsz 3D modelleket megjeleníteni, és ez még csak a kezdet. A dizájnt a TempleOS ihlette, ezért retro hangulatú, miközben a teljesítménye modern marad.
Nézzük meg közelebbről ezt az érdekes projektet, és hogy mivel tud kitűnni a terminál emulátorok tömegéből.
A Ratty szórakoztató funkciói
A Ratty úgy tűnik ki, hogy a hagyományos terminál funkciókat modern grafikus megjelenítéssel ötvözi. Néhány látványos funkció különösen felkeltette a figyelmemet ebben a kísérleti projektben.
Testreszabható 3D kurzor
A Ratty terminál protokollokat, a Ratatui könyvtárat és a Bevy game engine-t használja, hogy 3D kurzort jelenítsen meg. A hagyományos blokk vagy vonal helyett a kurzor lehet egy 3D patkány vagy bármilyen más testreszabott objektum.
Ha telepíted a Rattyt, alapértelmezés szerint egy forgó patkány lesz a kurzor. Ez a 3D objektum együtt mozog a szövegbevitellel, így a game engine renderelési képességei és a megszokott terminál-munkafolyamat különleges vizuális élménnyé állnak össze.
3D mód
A Ratty egy külön 3D módot is kínál, amelyben az egész terminál egy 3D jelenet vásznává alakul. Ilyenkor a terminál ablak már nem statikus: húzhatod, torzíthatod, és különböző szögekből nézheted a kimenetet.
A 3D módot a CTRL+ALT+Enter billentyűkombinációval kapcsolhatod be.
Van egy úgynevezett „Mobius mód” is, amit a CTRL+ALT+M billentyűkkel érsz el. Ilyenkor a terminál kimenete megcsavarodik és meghajlik, és egy folyamatos Möbius-szalagot formáz, jól megmutatva, hogyan épül a projekt a Bevy game engine-re.
3D módban a
Super+CTRL+ALT+Up
billentyűkkel növelheted, a
Super+CTRL+ALT+Down
kombinációval pedig csökkentheted a torzítás mértékét.
Beágyazott 3D objektumok
Ezzel a funkcióval a fejlesztők 3D asseteket regisztrálhatnak, és konkrét szövegcellákhoz rögzíthetik őket a terminálban. Mivel a modellek a cellákhoz kötődnek, a szöveg görgetésekor vagy átrendezésekor együtt mozognak vele.
Ehhez a Ratty egy saját Ratty Graphics Protocolt használ. Ez a protokoll intézi a kommunikációt a terminál adatai és a 3D engine között, és gondoskodik róla, hogy a modellek szinkronban maradjanak a képernyőn látható szöveggel.
Beépített képmegjelenítés
A Ratty támogatja a Kitty Graphics Protocolt is, így közvetlenül a terminál ablakában tud hagyományos képeket megjeleníteni.
Ennek köszönhetően a fastfetchhez vagy a yazihoz hasonló eszközök valódi képeket és ikonokat mutathatnak a szöveg mellett. Mivel egy elterjedt protokollt támogat, a Ratty mellett a modern terminál eszközök is a megszokott módon működnek, miközben a program a saját speciális 3D funkcióit is kínálja.
Élő 2D–3D osztott nézetes rajzolás
A Ratty egy 3D rajzoló demót is tartalmaz, amellyel jól látszanak az egyedi renderelési képességei. Itt egy osztott nézetű munkaterületet kapsz: a terminál bal oldalán egy hagyományos 2D vászonra rajzolsz.
Ahogy a sík felületen rajzolsz, a Ratty a jobb oldalon azonnal létrehoz egy élő 3D előnézetet az alkotásodról. Az előnézet folyamatosan forog, így rögtön látod, hogyan alakul át a 2D bemenet 3D objektummá, anélkül hogy kilépnél a terminálból.
Interaktív dokumentum mód
A Ratty egy TempleOS által ihletett dokumentumszerkesztő módot is kínál. Ebben a módban a hagyományos, szerkeszthető szöveget közvetlenül beágyazott 3D objektumok mellett gépelheted.
Mivel ezek a 3D modellek valós időben animálódnak ugyanazon a képernyőn, ahol a szöveg is megjelenik, a terminál inkább térbeli dokumentumszerkesztőként viselkedik, nem pedig egyszerű parancssorként. Egészen szokatlan módon kapcsolja össze a szöveget és a 3D asseteket egyetlen közös munkaterületen.
A Ratty telepítése
A Ratty telepítésének legegyszerűbb módja a Cargo használata, ami a Rust csomagkezelője. Végül is egy Rust alkalmazásról van szó.
cargo install ratty
Arch Linux felhasználók számára elérhető egy csomag a hivatalos tárolókban. Telepítéséhez futtasd az alábbi parancsot:
sudo pacman -S ratty
Ha nem szeretnél forrásból fordítani, előre lefordított binárisokat is letölthetsz közvetlenül a GitHub kiadások oldaláról.
Fontos, hogy a Ratty megfelelő működéséhez szükség van egy GPU-ra. Ha virtuális gépben próbálod futtatni, nem fog elindulni, amíg nem állítasz be GPU passthrough-t.
⚠️ Hibakeresés
Amennyiben Arch Linuxon telepítetted a Rattyt, és feltűnt, hogy nem jelent meg az alkalmazásmenüben, akkor kézzel kellene létrehozni egy desktop bejegyzést. Így tudod te is megcsinálni.
Hozz létre egy fájlt itt:
~/.local/share/applications/ratty.desktop
az alábbi konfigurációval. Ezután a terminál ugyanúgy megjelenik az alkalmazásindítóban, mint bármelyik másik program.
[Desktop Entry] Name=Ratty Comment=A GPU-rendered terminal emulator with inline 3D graphics Exec=env TERM=xterm-kitty ratty Icon=utilities-terminal Type=Application Terminal=false Categories=System;TerminalEmulator;
Nálam működött ez a kézi megoldás, de ha ismersz másik, elegánsabb vagy hivatalosabb módszert a menübejegyzés kezelésére, írd meg kommentben.
A Ratty konfigurálása
A Ratty egy TOML fájllal állítható be, amely a
~/.config/ratty/ratty.toml
helyen található. Ha a könyvtár és a fájl még nem létezik, az alábbi parancsokkal hozhatod létre őket:
mkdir -p ~/.config/ratty cd ~/.config/ratty touch ratty.toml
Miután létrehoztad a fájlt, bemásolhatod a projekt által biztosított alapértelmezett konfigurációs sablont. Így testre szabhatod a terminál működését és megjelenését a saját igényeid szerint. A Ratty alapértelmezett konfigurációs fájlját itt találod.
Lenyűgöző?
A Ratty egyértelműen egy kísérleti projekt, amely a terminálfejlesztés határait feszegeti, és új ötleteket próbál ki. Mivel egy játékmotort használ a rendereléshez, jelenleg elég erőforrás-igényes.
Orhun, a Ratty készítője kifejezetten hangsúlyozza, hogy nem „napi használatra” szánt, általános produktivitási eszköznek készült, és reméli, hogy a jövőben sikerül optimalizálnia a teljesítményt.
A 3D sprite-ok és a játékokra emlékeztető grafika sokaknak talán nem jön be egy terminálban. Ugyanakkor különleges lehetőségeket ad azoknak a fejlesztőknek és designereknek, akik szeretnék közvetlenül a forrásfájlokban vagy a terminál munkaterületén „életre kelteni” az assetjeiket.
Te mit gondolsz a Rattyról? Írd meg a véleményed a kommentek között.

