A Yazi konfigurálása – yazi.toml, keymap.toml, theme.toml a gyakorlatban
A Yazi-bemutató folytatása. Az első cikk a program telepítését, alapvető használatát és a billentyűkombinációkat mutatta be. Ez a cikk a beállításokról szól: az általános beállításokról (yazi.toml), a billentyűkötésekről (keymap.toml) és a színsémáról (theme.toml), külön hangsúllyal az előnézet beállításaira. Sok életszerű példát, a szerkesztés közben elkövethető tipikus hibákat és a munkát gyorsító beállítások gyűjteményét is tartalmazza.
A leírás a Yazi hivatalos dokumentációjának és az alapértelmezett konfigurációs fájljainak 26.9.1-es (stabil) változata alapján készült, 2026 szeptemberében. A bővítményrendszerrel (pluginok, init.lua) ez a cikk nem foglalkozik, csak ott utal rá, ahol egy magyarázathoz elkerülhetetlen. A főbb fogalmakat a dokumentum végén található lábjegyzetek magyarázzák.
Tartalom
- A konfigurálás alapelvei
- A konfigurációs állományok helye és a munka gyakorlata
- yazi.toml – általános beállítások
- Az előnézet beállításai
- keymap.toml – billentyűkötések
- theme.toml – színséma és megjelenés
- Hasznos, érdekes és munkát gyorsító beállítások
- Gyakori hibák szerkesztés közben
- Hasznos honlapok
- Összegzés
- Lábjegyzetek
1. A konfigurálás alapelvei
A Yazi úgy készült, hogy konfiguráció nélkül is használható: az alapértelmezett beállításokat a program magában hordozza. A saját fájljaidban ezért csak azt kell megadnod, amit módosítani akarsz, a többit a Yazi az alapértelmezésekből veszi. Ez az egyik legfontosabb szabály, mert elkerülhetővé teszi, hogy az egész alapértelmezett fájlt átmásold és karbantartsd.
Három fő konfigurációs fájl létezik:
| Fájl | Mit szabályoz? | Ebben a cikkben |
|---|---|---|
| yazi.toml | Általános működés: elrendezés, rendezés, rejtett fájlok, megnyitó programok, háttérfeladatok, előnézetek, beviteli ablakok szövege és helye | 3. és 4. fejezet |
| keymap.toml | Billentyűkötések minden felületi elemben | 5. fejezet |
| theme.toml | Színek, ikonok, keretek, stílusok, a színséma kiválasztása | 6. fejezet |
A három fájl formátuma TOML1: egyszerű, jól olvasható, [szakaszokra] tagolt kulcs = érték párok gyűjteménye. Néhány TOML-fogalmat a lábjegyzetek is magyaráznak (beágyazott tábla2, tömbtábla3), mert a Yazi konfigurációja sokat használja őket.
Három elv, amit érdemes fejben tartani:
- Felülírás. A fájljaidban megadott érték felülírja az alapértelmezettet. Egy [mgr] szakaszban megadott show_hidden = true csak ezt az egy beállítást változtatja meg, a többi [mgr]-beállítás alapértelmezett marad.
- Az első illeszkedő szabály nyer. A billentyűkötéseknél, a megnyitási szabályoknál, az előnézőknél és a színszabályoknál a Yazi a listát fentről lefelé nézi, és az első illeszkedő elemet használja. Ezért számít a sorrend. Alapvetően kerüld az egymással ütköző vagy redundáns beállításokat.
- Kiegészítés a felülírás helyett. A listaszerű beállításoknál (billentyűk, megnyitási szabályok, előnézők) nem kell az egész alapértelmezett listát lecserélni: a prepend_* az alapértelmezett elé, az append_* mögé illeszt. Ez a leggyakrabban használt technika, és a leggyakoribb hibák forrása is (lásd a 8. fejezetet).
2. A konfigurációs állományok helye és a munka gyakorlata
2.1 Hol találhatók a fájlok?
Unix-szerű rendszereken (Linuxon is) a konfigurációs könyvtár a ~/.config/yazi/4. A könyvtár és a fájlok nem léteznek alapból: neked kell létrehoznod őket.
| Fájl / könyvtár | Hely | Szerepe |
|---|---|---|
| yazi.toml | ~/.config/yazi/yazi.toml | Általános beállítások |
| keymap.toml | ~/.config/yazi/keymap.toml | Billentyűkötések |
| theme.toml | ~/.config/yazi/theme.toml | Színek, ikonok, stílusok, a színséma (flavor) kiválasztása |
| vfs.toml | ~/.config/yazi/vfs.toml | Virtuális fájlrendszerek (például SFTP-kapcsolatok) |
| init.lua | ~/.config/yazi/init.lua | Lua-inicializálás (bővítmények; ebben a cikkben nem tárgyaljuk) |
| package.toml | ~/.config/yazi/package.toml | A ya pkg által kezelt csomagok rögzített verziói (nem kézzel szerkesztendő) |
| plugins/, flavors/ | ~/.config/yazi/plugins/, ~/.config/yazi/flavors/ | Telepített bővítmények és színsémák |
| Naplófájl | ~/.local/state/yazi/yazi.log | Hibakeresési napló (csak YAZI_LOG mellett készül) |
Az első lépés tehát ennyi:
mkdir -p ~/.config/yazi cd ~/.config/yazi touch yazi.toml keymap.toml theme.toml
Tipp: bár logikusnak tűnhet, hogy mindent létrehozol, de ne tedd! Csak azt hozd létre, ami kell. Egy hibalehetőség, ha rossz fájlba írsz.
2.2 Hol vannak az alapértelmezett fájlok?
Az alapértelmezések a Yazi forráskódjának yazi-config/preset/ könyvtárában találhatók, a shipped címkén: github.com/sxyazi/yazi/tree/shipped/yazi-config/preset. Itt négy fájl érdekes:
| Alapértelmezett fájl | Amit felülírhatsz vele |
|---|---|
| yazi-default.toml | a yazi.toml beállításai |
| keymap-default.toml | a keymap.toml beállításai |
| theme-dark.toml és theme-light.toml | a theme.toml beállításai (a Yazi a terminál sötét vagy világos módja alapján tölti be az egyiket) |
Fontos: stabil kiadáshoz a shipped címkét használd, ne a main ágat. A main ág a legfrissebb fejlesztői állapotot tartalmazza, amelyben olyan beállítások is lehetnek, amelyek a te (stabil) verziódban még nem léteznek. A projekt maga is erre figyelmeztet.
Hasznos trükk: tarts a gépeden egy csak olvasható másolatot az alapértelmezésekről, hogy grep-pel kereshess bennük:
mkdir -p ~/yazi-alapertekek && cd ~/yazi-alapertekek for f in yazi-default keymap-default theme-dark theme-light; do curl -fsSLO "https://github.com/sxyazi/yazi/raw/refs/tags/shipped/yazi-config/preset/$f.toml" done grep -n "show_hidden" yazi-default.toml
Ha a Yazi-t forrásból fordítottad, a klónozott tárban a yazi-config/preset/ könyvtárban ugyanezek a fájlok megvannak, a lefordított verziónak megfelelő állapotban.
2.3 Másik konfigurációs könyvtár: biztonságos kísérletezés
Az YAZI_CONFIG_HOME környezeti változóval bármelyik könyvtárat kijelölheted konfigurációs könyvtárnak. Ez a legjobb módja annak, hogy a működő beállításaid érintése nélkül kísérletezz:
mkdir -p ~/yazi-teszt YAZI_CONFIG_HOME=~/yazi-teszt yazi
Ebben a „tiszta” könyvtárban elkészítheted az új yazi.toml, keymap.toml vagy theme.toml fájlt, kipróbálhatod, és ha bevált, átmásolod a valódi könyvtárba. Ugyanezzel a módszerrel könnyen kideríthető az is, hogy egy hiba a te beállításaid, vagy a program hibája: futtasd a Yazi-t üres tesztkönyvtárral, és nézd meg, előjön-e a jelenség.
2.4 Az ajánlott munkamenet
- Kicsiben kezdd. Egy új fájlban először csak egy-két sort adj meg. A hibákat sokkal könnyebb megtalálni egy tíz soros fájlban, mint egy háromszáz sorosban.
- Egyszerre egy változtatás. Módosíts egy dolgot, indítsd újra a Yazi-t, próbáld ki. A beállításokat a program indításkor olvassa be, ezért a módosítás után újra kell indítani a futó példányokat.
-
Ellenőrizd a szintaxist futtatás előtt. A TOML-hibákat egy ellenőrzőprogram (linter) megtalálja, mielőtt a Yazi elindulna. Ehhez a fájl elejére tegyél egy séma-hivatkozást, amit a legtöbb szerkesztő és a taplo5 is felismer:
#:schema https://yazi-rs.github.io/schemas/yazi.json
A keymap.toml-hoz a .../schemas/keymap.json, a theme.toml-hoz a .../schemas/theme.json illik. A taplo Rusttal egyszerűen telepíthető (cargo install taplo-cli --locked), és így ellenőrizhető a fájl:
taplo check --schema https://yazi-rs.github.io/schemas/yazi.json ~/.config/yazi/yazi.toml taplo check --schema https://yazi-rs.github.io/schemas/keymap.json ~/.config/yazi/keymap.toml taplo check --schema https://yazi-rs.github.io/schemas/theme.json ~/.config/yazi/theme.toml
- Kommentelj. A TOML # jelű megjegyzései ingyenesek. Írd le, mit és miért állítottál be: fél év múlva ez fog segíteni.
- Verziókövetés. A ~/.config/yazi/ könyvtár kicsi és szöveges, ezért kiválóan való Git-tárba (dotfiles6). Minden működő állapot után egy git commit, és bármikor visszaléphetsz.
-
Hibakereséshez naplózz. Ha valami nem úgy működik, ahogy vártad:
YAZI_LOG=debug yazi # másik terminálban: less ~/.local/state/yazi/yazi.log
A terminálod, a képmegjelenítő adapter és egyéb környezeti adatok kiírására szolgál az ya env parancs is.
- Frissítés előtt olvasd el a változásokat. A Yazi béta, ezért a kiadások törő változásokat tartalmazhatnak (átnevezett beállítások, megváltozott alapértelmezések). A projekt tárában a CHANGELOG.md fájl és a kiadási jegyzetek felsorolják őket.
2.5 Ha elromlott valami: gyors mentőöv
Ha a Yazi hibával áll le, vagy furcsán viselkedik, három lépés szinte mindig elég:
mv ~/.config/yazi ~/.config/yazi.bak # ideiglenesen félretesszük a konfigurációt yazi # alapértelmezésekkel elindul-e? mv ~/.config/yazi.bak ~/.config/yazi # visszatesszük
Ha az alapértelmezéssel működik, a hiba a fájljaidban van. Ekkor a fájlokat egyenként (yazi.toml, keymap.toml, theme.toml) tedd félre, hogy megtudd, melyik a hibás, majd a hibás fájlban felezd a tartalmat, amíg meg nem találod a problémás sort.
3. yazi.toml – általános beállítások
3.1 A fájl szerkezete
A yazi.toml szakaszokból áll, minden szakasz a program egy-egy területét szabályozza:
| Szakasz | Mit szabályoz? | Hol tárgyaljuk? |
|---|---|---|
| [mgr] | A fájllista: oszlopok aránya, rendezés, rejtett fájlok, sorvégi adatok, görgetés, egér | 3.2 |
| [opener] és [open] | Melyik program nyissa meg az egyes fájlokat | 3.3 |
| [tasks] | A háttérfeladatok párhuzamossága, képekre vonatkozó memóriakorlát | 3.4 |
| [input], [confirm], [pick], [which] | A beviteli ablakok, megerősítő ablakok, választók és a billentyűsúgó szövege, helye | 3.5 |
| [preview] és [plugin] | Az előnézet | 4. fejezet |
Névváltozás: a fájllista szakaszát a régebbi útmutatók még [manager] néven említik, a jelenlegi neve [mgr]. Ha egy internetes példa nem működik, először ezt ellenőrizd.
3.2 A [mgr] szakasz: a fájllista viselkedése
| Beállítás | Alapérték | Jelentése |
|---|---|---|
| ratio | [ 1, 4, 3 ] | A három oszlop (szülő, aktuális, előnézet) szélességaránya. A 0 elrejti az oszlopot, de legalább az egyik értéknek nem nullának kell lennie |
| sort_by | "alphabetical" | A rendezés módja: "none", "mtime", "btime", "extension", "alphabetical", "natural", "size", "random" |
| sort_sensitive | false | Kis- és nagybetű megkülönböztetése rendezéskor |
| sort_reverse | false | Fordított sorrend |
| sort_dir_first | true | A könyvtárak a lista elején |
| sort_translit | false | Az ékezetes betűk alapalakra írása rendezéskor; csak sort_by = "natural" mellett érvényesül |
| linemode | "none" | A sorok végén megjelenő adat: "none", "size", "btime", "mtime", "permissions", "owner" |
| show_hidden | false | Rejtett (pontal kezdődő) fájlok megjelenítése |
| show_symlink | true | A szimbolikus link célútvonalának megjelenítése a név mellett |
| scrolloff | 5 | A kurzor és a lista széle között hagyott minimális sorok száma |
| mouse_events | [ "click", "scroll", "drag" ] | Az elfogadott egéresemények; üres lista ([]) esetén az egérkezelés kikapcsol |
A rendezés és a sorvégi adat futás közben is módosítható (, és m billentyűk, lásd az első cikket), a yazi.toml csak a kezdőértéket adja meg.
Példa 1 – természetes rendezés sorszámozott fájlokhoz. Az ábécé szerinti rendezés a 10-et a 2 elé teszi (1.mp3 < 10.mp3 < 2.mp3). Sorszámozott epizódoknál, fejezeteknél (podcast, hangoskönyv, sorozat, jegyzetek) ez zavaró. A természetes rendezés a számokat számként kezeli, az átírás pedig a magyar ékezetes betűket is a helyükre teszi (különben az Á és az É a lista végére kerülhet):
[mgr] sort_by = "natural" sort_translit = true sort_dir_first = true
Tipp: ha sorszámozást készítesz, akkor mindig a normális megoldást válaszd: 01, 02, 03, stb... Ilyenkor bármi is van beállítva jól rendezi a sort.
Példa 2 – rendszergazdai nézet. Ha sokat dolgozol konfigurációs fájlokkal és szerverkönyvtárakkal, a rejtett fájlok és a jogosultságok mindig kellenek:
[mgr] show_hidden = true linemode = "permissions"
A rejtett fájlokat futás közben a . billentyű ki- és bekapcsolja, ezért ha ritkán van rájuk szükséged, hagyd az alapértéket.
Példa 3 – az oszlopok elrendezése. Az ratio a képernyő szélességéhez igazítható:
[mgr] ratio = [ 1, 3, 5 ] # nagy előnézet: képek, PDF-ek, kód olvasásához # ratio = [ 0, 4, 3 ] # nincs szülő oszlop: keskeny terminálban több hely marad # ratio = [ 1, 4, 0 ] # nincs előnézet: kisebb terhelés, csak a fájllista kell
Az előnézet nélküli (0) elrendezésnek van egy előnye: a Yazi nem kezd el előnézeteket készíteni, ezért lassú kapcsolaton vagy gyenge gépen gyorsabb.
Példa 4 – középre igazított kurzor. Az alapértelmezett scrolloff = 5 azt jelenti, hogy a kurzor a lista széle előtt öt sorral kezd görgetni. Egy nagyon nagy érték (nagyobb, mint a képernyő fele) a kurzort mindig középen tartja, ahogy a Vim scrolloff=999 beállítása:
[mgr] scrolloff = 999
Példa 5 – az egér kikapcsolása. Ha a terminálban szeretnél egérrel szöveget kijelölni és másolni, a Yazi egérkezelése ezt akadályozhatja. Kikapcsolható:
[mgr] mouse_events = []
(A legtöbb terminálban a Shift lenyomva tartásával az alkalmazás egérkezelése mellett is lehet szöveget kijelölni; ez terminálonként eltér.)
3.3 A megnyitók: [opener] és [open]
A Yazi kétlépcsős rendszerrel dönti el, mi nyisson meg egy fájlt:
- [opener] – megnyitók (openers7) nevesített listája: melyik parancsot lehet futtatni.
- [open] – szabályok (rules), amelyek a fájl MIME-típusa8 vagy neve alapján megmondják, mely megnyitók használhatók. Az első illeszkedő szabály nyer, és a use lista első eleme az alapértelmezett megnyitó (az Enter vagy az o ezt futtatja), a többi az „Open with” listában (O) jelenik meg.
Az alapértelmezett megnyitók (Linuxon):
| Megnyitó | Mit tesz? |
|---|---|
| edit | A szerkesztő megnyitása: ${EDITOR:-vi} %s, tehát az $EDITOR9 változóban megadott program, ha nincs megadva, a vi |
| play | Média lejátszása az xdg-open-nel, illetve „Show media info” a mediainfo programmal |
| open | Az xdg-open, vagyis a rendszer alapértelmezett programja |
| reveal | A tartalmazó mappa megnyitása a grafikus fájlkezelőben (xdg-open), illetve „Show EXIF” az exiftool programmal |
| extract | Archívum kicsomagolása |
| download, trash | Virtuális fájlrendszer, lomtár kezelése |
Az alapértelmezett szabályok röviden: a szöveg és a JSON az edit-tel, a kép az open-nel, az audio és a videó a play-jel, az archívum az extract-tal nyílik, minden más az open-nel (xdg-open).
A leggyakoribb első meglepetés: ha az $EDITOR nincs beállítva, az Enter egy szövegfájlon a vi-t (Vim) indítja, amiből kilépni sokaknak nehéz. A megoldás egyetlen sor a ~/.bashrc fájlban, például: export EDITOR=nano (vagy nvim, micro, vim, stb.). Új terminálban már a megadott szerkesztő indul.
A formázóparaméterek a run parancsokban használhatók:
| Jelölés | Jelentése |
|---|---|
| %s | az összes kijelölt fájl útvonala |
| %s1, %s2 … | az 1., 2. … kijelölt fájl útvonala |
| %h | a kurzor alatti fájl útvonala |
| %d1 | az első kijelölt fájl könyvtára |
| %y, %y1 | a másolásra (yank) megjelölt fájlok |
| %S, %H, %D … | ugyanezek URL-ként (nagybetűs változat) |
| %% | egy % jel |
A megnyitók két fontos kapcsolója:
- block = true: a Yazi „háttérbe vonul”, a program a terminálban fut, amíg be nem fejeződik. Interaktív, terminálos programokhoz kell (szerkesztők, lejátszók, less, ncdu).
- orphan = true: a folyamat a Yazi bezárása után is fut, és leválik a Yazi feladatkezelőjéről. Grafikus programokhoz való, amelyek nem használják a terminált10.
Példa 6 – grafikus szerkesztő a lista második elemeként. A Linux Mint alapértelmezett szövegszerkesztője az Xed. Az Enter maradjon a terminálos szerkesztőnél, az O menüből pedig az Xed is elérhető legyen:
[[opener.xed]] run = "xed %s" orphan = true desc = "Xed (grafikus szerkesztő)" for = "linux" [[open.prepend_rules]] mime = "text/*" use = [ "edit", "xed", "reveal" ]
A [[opener.xed]] egy új, xed nevű megnyitót vesz fel. A [[open.prepend_rules]] a szabályok elé illeszti az új szabályt, ezért az az alapértelmezett text/* szabály előtt fut le.
Példa 7 – hangfájlok lejátszása terminálban, lejátszási listaként. Ha több hangfájlt jelölsz ki, az mpv egyetlen lejátszási listaként játssza le őket (például egy hangoskönyv vagy podcast fejezeteit), a Yazi elhagyása nélkül:
[[opener.mpv-audio]] run = "mpv --no-video %s" block = true desc = "mpv (csak hang, terminálban)" for = "unix" [[open.prepend_rules]] mime = "audio/*" use = [ "mpv-audio", "play", "reveal" ]
Az mpv-t előbb telepíteni kell (sudo pacman -S mpv vagy sudo apt install mpv). A block = true miatt a lejátszó a terminálban fut, és kilépéskor visszatérsz a Yazi-ba.
Példa 8 – képek megnyitása képszerkesztőben az O menüből. Az Enter maradjon az alapértelmezett képnézegetőnél, de a „Megnyitás ezzel” listában (O) megjelenjen a képszerkesztő is (itt a GIMP, ha telepítve van):
[[opener.gimp]] run = "gimp %s" orphan = true desc = "GIMP" for = "linux" [[open.prepend_rules]] mime = "image/*" use = [ "open", "gimp", "reveal" ]
A szabályok nemcsak MIME-típusra, hanem fájlnévre vagy útvonalra is illeszthetők az url kulccsal (glob11 mintával, például url = "*.{png,jpg}" vagy url = "**/Scans/*.pdf"). Ez akkor hasznos, ha a MIME-típus nem elég pontos, vagy egy adott könyvtárban másképp szeretnél viselkedni.
A reveal mint gyorsbillentyű: az O menüből a „Reveal” a mappát megnyitja a grafikus fájlkezelőben (Minten a Nemóban). Ez akkor hasznos, ha egy fájlt át kell húznod egy grafikus alkalmazásba, vagy egérrel akarsz valamit elvégezni.
3.4 Háttérfeladatok: [tasks]
A Yazi a munkát „worker” szálakra osztja. A [tasks] szakasz azt állítja be, hány szál dolgozhat egyszerre:
| Beállítás | Alapérték | Jelentése |
|---|---|---|
| file_workers | 3 | Fájlműveletek (másolás, áthelyezés, törlés) párhuzamosan futó feladatai |
| plugin_workers | 5 | A bővítmények aszinkron feladatai |
| fetch_workers | 5 | Fájltípus-felismerés és hasonló, gyors lekérések |
| preload_workers | 2 | Előnézetek előtöltése (képek, videók, PDF-ek) |
| process_workers | 5 | A [opener]-ekben indított külső folyamatok |
| bizarre_retry | 3 | Hány újrapróbálkozás történjen „furcsa” hibák esetén |
| image_alloc | 536870912 (512 MB) | Egyetlen kép dekódolásához engedélyezett legnagyobb memória |
| image_bound | [ 10000, 10000 ] | A dekódolt kép legnagyobb mérete pixelben (szélesség, magasság) |
| suppress_preload | false | Ha true, kikapcsolja az előtöltést |
Példa 9 – gyenge gép vagy mechanikus merevlemez. Az alapértékek erős PC-re vannak optimalizálva. Régi laptopon, Raspberry Pi-n vagy lassú külső merevlemezen a magas párhuzamosság ellenkező hatást érhet el, ezért érdemes csökkenteni:
[tasks] file_workers = 1 fetch_workers = 2 preload_workers = 1 process_workers = 2
A pontos értékeket a saját gépeden érdemes megmérni, mert nincs mindenhol jó szám. A dokumentáció is a párhuzamosság csökkentését javasolja kis teljesítményű eszközökön.
Példa 10 – memóriavédelem óriási képekhez. Régi szkennelt oldalak, panorámák és több tíz megapixeles fotók dekódolása sok memóriát foglalhat. A korlátot lejjebb állítva a Yazi az ilyen képeket nem próbálja meg megjeleníteni, ahelyett hogy az összes memóriát lefoglalná:
[tasks] image_alloc = 268435456 # 256 MB image_bound = [ 6000, 6000 ]
3.5 Beviteli és megerősítő ablakok: [input], [confirm], [pick], [which]
Ezek a szakaszok a felugró ablakok szövegét és helyét szabályozzák. (A stílusukat, színüket a theme.toml ugyanilyen nevű szakaszai állítják, lásd a 6. fejezetet.)
A helyet két érték adja meg:
- *_origin: a kiindulópont. Például "top-center" (a felület felső közepe), "center" (középen) vagy "hovered" (a kurzor alatti fájl mellett);
- *_offset: négyelemű lista [ x, y, szélesség, magasság ], ahol az első két szám az eltolás a kiindulóponttól, a másik kettő az ablak mérete.
Példa 11 – az átnevező mező szélesítése. A hosszú, ékezetes fájlnevek nem férnek el az alapértelmezett 50 karakteres mezőben. Szélesítsd:
[input] rename_origin = "hovered" rename_offset = [ 0, 1, 80, 3 ]
Példa 12 – a felugró ablakok magyarra fordítása. Az ablakok szövegei kulcsonként átírhatók. A n helyére a Yazi a kijelölt elemek számát (a keresésnél a keresőprogram nevét) helyettesíti, ezt a jelölést hagyd meg:
[input]
cursor_blink = true
cd_title = "Ugrás a könyvtárba:"
create_title = [ "Létrehozás:", "Létrehozás (könyvtár):" ]
rename_title = "Átnevezés:"
filter_title = "Szűrés:"
find_title = [ "Keresés előre:", "Keresés hátra:" ]
search_title = "Keresés ({n}):"
shell_title = [ "Parancs:", "Parancs (megvárja):" ]
[confirm]
trash_title = "{n} kijelölt elem a lomtárba kerüljön?"
delete_title = "VÉGLEGESEN törlöd a kijelölt elemeket? ({n})"
overwrite_title = "Felülírod a fájlt?"
overwrite_body = "A következő fájl felülíródik:"
quit_title = "Kilépsz?"
quit_body = "Vannak befejezetlen feladatok, mégis kilépsz?\n(A feladatkezelő a w billentyűvel nyitható meg.)"
[pick]
open_title = "Megnyitás ezzel:"A megerősítő ablak gombjainak felirata a theme.toml-ban állítható ([confirm] szakasz, btn_labels), lásd a 6.5 fejezetet. A \n sortörést jelent a TOML szövegekben.
A [which] szakasz a többbillentyűs kombinációk után felugró segédablak (a g, c, , stb. lenyomása után megjelenő lista) rendezését állítja: alapból sort_by = "none", vagyis a keymap.toml-ban szereplő sorrendben jelennek meg a lehetőségek. A sort_by = "key" a billentyű, a "desc" a leírás szerint rendezi őket, a sort_translit pedig itt is az ékezeteket kezeli. Ha a saját billentyűkötéseid desc mezői magyarul vannak, a "desc" szerinti rendezés hasznos lehet.
4. Az előnézet beállításai
Az előnézet a Yazi egyik legnagyobb erőssége, és egyben a legtöbb beállítási lehetőséget rejti. Két szakasz felel érte: a [preview] (értékek: méretek, minőség, tördelés) és a [plugin] (szabályok: melyik fájltípushoz melyik előnéző tartozik). Ez a fejezet csak a Yazi beépített előnézőit használja, saját bővítmények írásával nem foglalkozik.
4.1 Hogyan jön létre egy előnézet?
Amikor a kurzor egy fájlra lép, a következő történik:
- A Yazi megállapítja a fájl MIME-típusát8 (a [plugin] szakasz fetchers szabályai szerint, alapból a file paranccsal).
- Végigmegy a previewers listán, és az első olyan szabályra, amelynek mime vagy url mintája11 illeszkedik, alkalmazza az abban megadott beépített előnézőt (a run értéke).
- Ha a fájl típusához létezik előtöltő (preloaders), az előnézetet (például egy kép kicsinyített változatát) a háttérben előre elkészíti, és eltárolja a gyorsítótárban12, hogy a görgetés közben azonnal megjelenjen.
- A Tab billentyűvel elérhető „spotter” ugyanezt teszi, csak részletes fájlinformációkat ad (a spotters szabályok alapján).
A négy szerepkört (fetcher, previewer, preloader, spotter) a lábjegyzet13 foglalja össze.
A beépített előnézők (az alapértelmezett szabályok alapján):
| run értéke | Mit jelenít meg? | Külső program |
|---|---|---|
| folder | Könyvtár tartalma | – |
| code | Szöveg és forráskód szintaxiskiemeléssel (text/*, JavaScript, INI, mbox) | – |
| json | JSON és NDJSON | jq |
| image | Képek | – (a terminál vagy Überzug++/Chafa jeleníti meg) |
| magick | AVIF, HEIC/HEIF, JPEG XL képek | ImageMagick (≥ 7.1.1) |
| svg | SVG-képek | resvg |
| video | Videók bélyegképe | ffmpeg |
| PDF-oldalak | poppler | |
| archive | Archívumok tartalma (zip, tar, rar, 7z …), de a .deb, .rpm, .apk, az AppImage és a lemezképek (ISO, IMG, SquashFS …) is | 7-Zip |
| font | Betűtípusok | ImageMagick |
| empty | Üres fájl jelzése | – |
| file | Tartalék: a fájl alapadatai | – |
| noop | Semmi: kikapcsolja az előnézetet (vagy előtöltést) az illeszkedő fájloknál | – |
Az archive sor megérdemel egy megjegyzést: Debian-alapú rendszereken (Minten is) egyetlen billentyűvel belenézhetsz egy .deb csomag tartalmába telepítés előtt, és a .iso lemezképekéből is.
A szabályok szerkezete:
[[plugin.prepend_previewers]] mime = "application/pdf" # vagy: url = "*.pdf" run = "noop"
A mime és az url egyaránt mintaillesztés (glob). Alapból nem érzékeny a kis- és nagybetűkre; ha érzékennyé akarod tenni, a minta elé írd: \s. A prepend_previewers, append_previewers, prepend_preloaders és append_preloaders az alapértelmezett lista elé, illetve mögé illeszti a saját szabályaidat.
Hasznos segéd: hogy egy fájlhoz milyen MIME-típust rendel a rendszer, megmutatja: file --mime-type -b fájlnév.ext. A saját mime szabályok írása előtt érdemes ezzel ellenőrizni a típust.
4.2 A [preview] szakasz értékei
| Beállítás | Alapérték | Jelentése |
|---|---|---|
| wrap | "no" | Hosszú sorok tördelése a szöveges előnézetben: "yes" vagy "no" |
| tab_size | 2 | Egy tabulátor szélessége szóközökben a szöveges előnézetben |
| max_width | 600 | A képelőnézet legnagyobb szélessége pixelben |
| max_height | 900 | A képelőnézet legnagyobb magassága pixelben |
| cache_dir | "" | A gyorsítótár helye; üresen a rendszer gyorsítótár-könyvtára. Megadásakor abszolút útvonalat adj meg |
| image_delay | 30 | Az előnézeti kép megjelenítése előtti késleltetés ezredmásodpercben |
| image_filter | "triangle" | A kép kicsinyítésekor használt szűrő: "nearest", "triangle", "catmull-rom", "gaussian", "lanczos3" |
| image_quality | 75 | A gyorsítótárba mentett előnézeti képek JPEG-minősége (0–100; a jellemző tartomány 50–90) |
| ueberzug_scale | 1 | Az Überzug++ képméretének arányos módosítása |
| ueberzug_offset | [ 0, 0, 0, 0 ] | Az Überzug++ képének eltolása (x, y, szélesség, magasság), elcsúszott képek javítására |
A kép tényleges mérete a max_width × max_height és a terminál előnézeti ablakának pixelmérete közül a kisebbik. Ezért egy nagyobb érték csak akkor ad látható javulást, ha a terminálod ablaka is elég nagy. Kisebb erőforrásnál vedd alacsonyabbra az értékeket, és a keresgélés gyorsabb lesz. Ha valamit nagyobban is meg akarsz nézni, akkor nyisd meg a megfelelő programmal.
4.3 Életszerű példák
Előnézet 1 – nagy felbontású monitor, éles képek. Ha 4K-s vagy nagy ablakú terminált használsz, az alapméret (600×900 pixel) pixelesnek tűnhet. Növeld a méretet és a minőséget, és válassz élesebb kicsinyítő szűrőt:
[preview] max_width = 1400 max_height = 2000 image_quality = 90 image_filter = "lanczos3"
Az ára: nagyobb gyorsítótár és több processzoridő az előtöltésnél. A már legenerált előnézetek a gyorsítótárban maradhatnak, ezért ha a módosítás után nem látod a változást, töröld a gyorsítótárat (a dokumentáció erre a ya cache clear parancsot említi; ha a te verziódban nincs ilyen, töröld a cache_dir tartalmát).
Előnézet 2 – gyenge gép, lassú SSH-kapcsolat, gyors görgetés. Kisebb és gyorsabban készülő képek, rövidebb várakozás (a image_delay alacsony értéke különösen erős terminálban ad gyorsabb érzetet):
[preview] max_width = 400 max_height = 600 image_quality = 50 image_filter = "nearest" image_delay = 0
A "nearest" a leggyorsabb, de legdurvább kicsinyítés. A gyenge gépekhez érdemes a 3.4 fejezet [tasks] beállításait is csökkenteni.
Előnézet 3 – a képek előnézetének teljes kikapcsolása. Ha egyáltalán nincs szükséged képekre (például szerveren, vagy mert a terminálod nem támogatja őket), a dokumentáció szerint az image előnéző és előtöltő kikapcsolása csökkenti a fájlolvasási és dekódolási terhelést. A noop szabályt az alapértelmezettek elé kell szúrni:
[[plugin.prepend_previewers]] mime = "image/*" run = "noop" [[plugin.prepend_preloaders]] mime = "image/*" run = "noop"
A image/* az SVG-t, a HEIC-et és az összes többi képtípust is lefedi, mert a saját szabályod megelőzi az alapértelmezetteket.
Előnézet 4 – csak a lassú PDF-ek kikapcsolása. Nagy, szkennelt PDF-ek előtöltése lassú lehet. Csak az előtöltőt kapcsold ki: az előnézet ilyenkor is működik (a fájlra lépéskor generálja le a Yazi), de nem terheli a háttérben a gépet:
[[plugin.prepend_preloaders]] mime = "application/pdf" run = "noop"
Előnézet 5 – hálózati vagy távoli csatolás. Ha a fájlok egy NAS-on, egy sshfs-sel14 csatolt szerveren vagy más lassú fájlrendszeren vannak, minden előnézet és előtöltés azt jelenti, hogy a Yazi letölti a fájlt. A dokumentáció szerint ilyenkor érdemes az egész csatolási pontra kikapcsolni az előtöltést (az url szabály útvonalra illeszkedik):
[[plugin.prepend_preloaders]] url = "/mnt/nas/**" run = "noop"
Ha a helyi fájlokon minden előnézetet és előtöltést ki akarsz kapcsolni, két üres lista elég (de ekkor a jobb oldali oszlop üres marad):
[plugin] previewers = [] preloaders = []
Előnézet 6 – naplók, hosszú sorok, tabulátorok. Naplófájlok, feliratok vagy hosszú sorokat tartalmazó szövegek olvasásához a tördelés és a nagyobb tabulátor kényelmesebb:
[preview] wrap = "yes" tab_size = 4
Előnézet 7 – egy szokatlan fájltípus szövegként való megjelenítése. Egyes szöveges fájlokat (például felirat vagy jegyzetformátumokat) a file program nem text/* típusként ismeri fel, ezért a Yazi nem használja rájuk a code előnézőt. Kiterjesztés alapján kényszerítheted (előbb ellenőrizd a MIME-t a fenti file paranccsal):
[[plugin.prepend_previewers]]
url = "*.{srt,ass,vtt}"
run = "code"Előnézet 8 – az oszlopok aránya. A 3.2 fejezet ratio beállítása az előnézeti ablak méretét is megadja. A [ 1, 3, 5 ] nagy előnézetet, a [ 1, 4, 0 ] teljesen elrejtett előnézetet jelent.
Előnézet 9 – tartós gyorsítótár. Alapból a rendszer gyorsítótár-könyvtárát használja a Yazi, és a benne lévő fájlok újraindításkor eltűnhetnek. Ha azt szeretnéd, hogy a nagy képek előnézetei megmaradjanak, adj meg saját, abszolút útvonalat (a ~ használatát ne feltételezd):
[preview] cache_dir = "/home/felhasznalo/.cache/yazi-elonezet"
A felhasznalo helyére a saját felhasználóneved kerül, és a könyvtárnak létre kell jönnie, illetve írhatónak kell lennie.
Előnézet 10 – a kódelőnézet színei. A programkód kiemelésének színsémája nem a yazi.toml-ban, hanem a theme.toml-ban állítható (syntect_theme, egy .tmTheme fájl). Lásd a 6.4 fejezetet.
4.4 Ha az előnézet nem működik: ellenőrzőlista
| Tünet | Valószínű ok | Teendő |
|---|---|---|
| Képek egyáltalán nem jelennek meg | A terminál nem támogat képprotokollt, és nincs Überzug++ vagy Chafa | Futtasd az ya env parancsot, nézd meg, melyik adaptert választotta a Yazi; állj át támogatott terminálra vagy telepítsd az Überzug++-t (lásd az első cikk 8. fejezetét) |
| Videóhoz, PDF-hez, archívumhoz nincs előnézet | Hiányzik a külső program | Telepítsd az ffmpeg, poppler, 7zip csomagokat (lásd az első cikk 5.2 fejezetét) |
| A méretbeállítás módosítása nem látszik | Régi előnézetek a gyorsítótárban | Töröld a gyorsítótárat (lásd fent) |
| A kép elcsúszott vagy rossz méretű (Überzug++) | Az adapter arányai eltérnek | Próbáld az ueberzug_scale és az ueberzug_offset beállítást |
| Képek tmux alatt nem látszanak | A tmux nem engedi át a vezérlőkódokat | Add hozzá a tmux.conf-hoz az allow-passthrough on és az update-environment sorokat (lásd az első cikk 8.3 fejezetét) |
| Lassú a görgetés, sokat dolgozik a gép | Nagy képek előtöltése, magas párhuzamosság | Csökkentsd a max_width, max_height, image_quality értékeket és a [tasks] szálszámait |
| A szabályom nem érvényesül | Rossz sorrend, vagy a prepend_* helyett previewers = szerepel | Használd a prepend_previewers-t; ellenőrizd a MIME-t a file --mime-type -b paranccsal |
5. keymap.toml – billentyűkötések
5.1 A rétegek
A Yazi billentyűkötései nyolc rétegre (layer) tagolódnak, mindegyik egy-egy felületi elem saját kiosztása. Ugyanaz a billentyű az egyes rétegekben mást tehet.
| Réteg | Felület | Példa |
|---|---|---|
| [mgr] | A fájllista (a főnézet) | mozgás, másolás, törlés, keresés, lapok |
| [tasks] | A feladatkezelő (w) | feladat megszakítása, naplók megtekintése |
| [spot] | A fájlinformációs nézet (Tab) | cella másolása |
| [pick] | Választó ablakok | „Megnyitás ezzel” lista (O) |
| [input] | Beviteli mezők | átnevezés, létrehozás, szűrés |
| [confirm] | Megerősítő ablakok | törlés, felülírás megerősítése |
| [cmp] | Automatikus kiegészítés | útvonal kiegészítése az ugrásnál |
| [help] | A súgó (F1) | keresés, kilépés a súgóból |
A legtöbb saját billentyűkötést a [mgr] rétegbe fogod írni, az [input] réteg is sokat segíthet (5.7 fejezet).
5.2 Hozzáfűzés vagy felülírás: prepend_keymap, append_keymap, keymap
Minden rétegben három kulcs adható meg:
| Kulcs | Hatása | Prioritás |
|---|---|---|
| prepend_keymap | A saját szabályok az alapértelmezettek elé kerülnek | Erősebb, mint az alapértelmezett |
| append_keymap | A saját szabályok az alapértelmezettek mögé kerülnek | Gyengébb, mint az alapértelmezett |
| keymap | Az összes alapértelmezett szabályt lecseréli a sajátjaidra | Az alapértelmezettek eltűnnek |
Mivel a Yazi az első illeszkedő billentyűt futtatja, a prepend_keymap mindig felülírja az azonos billentyűn lévő alapértelmezett kötést, az append_keymap pedig csak a még szabad billentyűket tölti ki.
Két egyenértékű írásmód létezik. Az első a tömb, a második a tömbtábla3 formája (ez utóbbi jobban olvasható, ha több sorból álló szabályok vannak):
# 1. írásmód: tömb
[mgr]
prepend_keymap = [
{ on = "", run = "act1", desc = "Egy művelet a Ctrl+a billentyűn" },
{ on = [ "g", "b" ], run = "act2", desc = "Egy művelet a g majd b billentyűkön" },
]# 2. írásmód: tömbtábla (ugyanez) [[mgr.prepend_keymap]] on = "" run = "act1" desc = "Egy művelet a Ctrl+a billentyűn" [[mgr.prepend_keymap]] on = [ "g", "b" ] run = "act2" desc = "Egy művelet a g majd b billentyűkön"
Szabály: a két írásmódot nem lehet ugyanabban a szakaszban keverni. Ha az egyik prepend_keymap már tömbként szerepel a [mgr] alatt, egy [[mgr.append_keymap]] bejegyzés ugyanabban a fájlban TOML-hibát okoz. Válaszd az egyiket, és következetesen használd. Az ebben a cikkben szereplő példák a tömbtábla-formát használják.
5.3 A billentyűk jelölése
Az on értéke egy billentyű (szöveg) vagy egy billentyűsorozat15 (lista):
on = "q" # egyetlen billentyű on = "" # Ctrl + a on = [ "g", "d" ] # g, majd d on = [ "", "s" ] # Ctrl + x, majd s
| Jelölés | Billentyű |
|---|---|
| a … z, A … Z | Kis- és nagybetűk |
| <Space>, <Enter>, <Backspace>, <Tab>, <Esc> | Szóköz, Enter, Backspace, Tab, Escape |
| <Left>, <Right>, <Up>, <Down> | Nyilak |
| <Home>, <End>, <PageUp>, <PageDown> | Home, End, PageUp, PageDown |
| <Delete>, <Insert>, <S-Tab> | Delete, Insert, Shift+Tab |
| <F1> … <F19> | Funkcióbillentyűk |
Módosítók (a fenti billentyűkhöz kombinálhatók):
| Jelölés | Módosító |
|---|---|
| <S-…> | Shift |
| <C-…> | Ctrl |
| <A-…> | Alt |
| <D-…> | Super (Windows-billentyű) |
Példák: <C-a> a Ctrl+a, a <C-S-b> (vagy <C-B>) a Ctrl+Shift+b.
Három fontos megjegyzés:
- A régi (legacy) terminálprotokoll16 nem különbözteti meg a <Tab>-ot a <C-i>-től, az <Enter>-t a <C-m>-től és így tovább. Ha az <Enter> helyett véletlenül a <C-m>-et kötöd le, a normál Enter is elveszti az eredeti funkcióját. Kerüld ezeket az ütköző párokat, hacsak a terminálod nem támogatja a megkülönböztetést.
- A <D-…> (Super) csak a fejlett billentyűprotokollt támogató terminálokban működik.
- Egyes billentyűkombinációkat a terminálemulátor fogja el, mielőtt a Yazi látná őket (például a Ctrl+Shift+… kombinációkat, a menü- és teljes képernyős billentyűket, egyes terminálokban a F1, F10, F11 billentyűket). Ha egy kötés nem működik, próbálj ki másik billentyűt.
5.4 Egy szabály részei
| Mező | Kötelező? | Jelentése |
|---|---|---|
| on | igen | A billentyű vagy billentyűsorozat |
| run | igen | A végrehajtandó művelet(ek). Egy szöveg ("cd ~/Zene") vagy szövegek listája ([ "act1", "act2" ], sorban futnak) |
| desc | nem, de ajánlott | Leírás: megjelenik a F1 súgóban és a többbillentyűs kombinációk segédablakában (which) |
| for | nem | Operációs rendszer szűkítése: "linux", "macos", "windows", "android", "unix". Ha nincs megadva, minden rendszeren érvényes |
A run-ban lévő műveletek argumentumokat és kapcsolókat kapnak (például sort natural --reverse, remove --permanently, cd ~/Zene).
5.5 A leggyakrabban használt [mgr] műveletek
Az alábbi táblázat a saját kötésekhez leggyakrabban szükséges műveleteket sorolja fel. A teljes lista a dokumentáció keymap.toml oldalán található.
| Művelet | Fontos kapcsolók | Mit csinál? |
|---|---|---|
| arrow | n, n%, nvp, top, bot, prev, next | A kurzor mozgatása; a prev/next a lista végén körbefordul |
| leave, enter, back, forward | – | Szülőbe lép, gyerekbe lép, előzmények |
| cd | [útvonal], --interactive | Könyvtárváltás |
| reveal | [útvonal] | A megadott fájlra ugrik (szükség esetén a könyvtárát is megnyitja) |
| seek | n | Az előnézet görgetése |
| toggle, toggle_all | --state=on/off | Kijelölés, az összes kijelölése |
| visual_mode | --unset | Vizuális (tartomány-) mód |
| open | --interactive, --hovered | Megnyitás a [open] szabályai szerint |
| yank | --cut | Másolásra (vagy kivágásra) jelöl |
| paste | --force, --follow | Beillesztés |
| link, hardlink | --relative, --force | Szimbolikus link, hardlink létrehozása |
| remove | --permanently, --force, --hovered | Lomtárba helyezés vagy végleges törlés; a --force a megerősítést is kihagyja |
| create | --dir, --force | Új fájl vagy könyvtár |
| rename | --empty=stem/ext/dot_ext/all, --cursor=start/end/before_ext, --force, --hovered | Átnevezés (több kijelölt fájlnál tömeges átnevezés a szerkesztőben) |
| copy | path, dirpath, filename, name_without_ext, url, dirurl; --separator=unix | Útvonal vágólapra másolása |
| shell | --block, --orphan, --interactive, --cursor=n | Shell-parancs futtatása |
| hidden | show, hide, toggle | Rejtett fájlok |
| linemode | none, size, btime, mtime, permissions, owner | Sorvégi adat |
| search / search_do | --via=fd/rg/rga, --args=… | Keresés (a search_do azonnal, beviteli mező nélkül fut) |
| find, filter | --smart, --insensitive | Keresés a listában, szűrés |
| sort | natural, mtime, size …, --reverse, --dir-first, --translit | Rendezés módosítása |
| tab_create | --current, [útvonal] | Új lap |
| tab_switch, tab_swap, tab_close | n, --relative | Lapok kezelése |
| escape | --all, --select, --filter, --find, --visual, --search | Törlés/megszakítás |
| quit, close | --no-cwd-file | Kilépés, lap bezárása |
| suspend | – | A Yazi felfüggesztése; a shellben az fg parancs folytatja |
| help | – | Súgó megnyitása |
| noop | – | Nem csinál semmit: egy alapértelmezett billentyű letiltására használható |
5.6 A shell művelet és a sablonok
A shell a legrugalmasabb művelet: bármilyen külső parancsot elindíthat. A parancsban ugyanazok a formázóparaméterek használhatók, mint a megnyitóknál (3.3 fejezet): %h (a kurzor alatti fájl), %s (a kijelöltek), %s1 (az első kijelölt), %d (a kijelöltek könyvtára), %y (a másolásra jelöltek), és a nagybetűs URL-változatok. Új elem, hogy a %t előtaggal a következő lap kijelöléseire is hivatkozhatsz (%ts, %ts1), a %T előtaggal pedig az előzőére.
A -- (kettős kötőjel) az „opciók vége” jelölés: minden, ami utána következik, nyers szövegként kerül a shellnek, tehát nem kell a parancs idézőjeleit külön escape-elned. Ez sok hibát megelőz:
# rossz (nehezen olvasható, idézőjelekkel küszködés): run = "shell \"trash-put %s\"" # jó: run = "shell -- trash-put %s"
A többsoros szkripteket TOML többsoros szöveggel (''' vagy """) érdemes írni.
A block és az orphan: ha a parancs interaktív, terminálos program, adj --block kapcsolót; ha grafikus, önállóan futó program, amely a Yazi bezárása után is éljen, adj --orphan kapcsolót.
5.7 Életszerű példák
Billentyű 1 – könyvtár-könyvjelzők (a g sorozat). Az alapértelmezett g d a ~/Downloads könyvtárba ugrik, ez magyar nyelvű rendszeren nem létezik, mert a mappák neve Letöltések, Dokumentumok, Képek, Zene, Videók. Az xdg-user-dir parancs mindig a helyes nevet adja vissza, függetlenül a rendszer nyelvétől17:
[[mgr.prepend_keymap]] on = [ "g", "d" ] run = 'shell -- ya emit cd "$(xdg-user-dir DOWNLOAD)"' desc = "Ugrás a Letöltések mappába" [[mgr.prepend_keymap]] on = [ "g", "o" ] run = "cd ~/Dokumentumok" desc = "Ugrás a Dokumentumok mappába" [[mgr.prepend_keymap]] on = [ "g", "m" ] run = "cd /mnt" desc = "Ugrás a /mnt mappába (csatolt lemezek)"
Az xdg-user-dir a Mint része; Arch Linuxon az xdg-user-dirs csomaggal érhető el. A g után a Yazi felugró segédablakban (which) listázza az elérhető folytatásokat, ezért a desc mezők itt hasznosak.
Billentyű 2 – ugrás a Git-tároló gyökerébe. Fejlesztőknek ez egy nagyon gyakori mozdulat (a szabály a hivatalos dokumentációból való):
[[mgr.prepend_keymap]] on = [ "g", "r" ] run = 'shell -- ya emit cd "$(git rev-parse --show-toplevel)"' desc = "Ugrás a Git-tároló gyökerébe"
Billentyű 3 – terminál nyitása az aktuális könyvtárban. A ! billentyű megnyitja a shellt a jelenlegi könyvtárban, kilépéskor (exit) visszatérsz a Yazi-ba:
[[mgr.prepend_keymap]] on = "!" for = "unix" run = 'shell "$SHELL" --block' desc = "Shell nyitása itt"
Billentyű 4 – az Esc egyszeri megnyomása kilép a beviteli mezőből. Alapból az Esc a Vim-módból normál módba lép, és csak a második Esc szakítja meg a bevitelt. Ha nem használod a Vim-módot, egyszerűsítheted (ez az [input] réteg):
[[input.prepend_keymap]] on = "" run = "close" desc = "Bevitel megszakítása"
Billentyű 5 – egy veszélyes billentyű letiltása. A D végleges törlést jelent (bár megerősítést kér). Ha nem akarod, hogy egy elgépelés miatt egyáltalán elérhető legyen, a noop művelettel letilthatod. A letiltott billentyű nem jelenik meg a which ablakban sem:
[[mgr.prepend_keymap]] on = "D" run = "noop"
Billentyű 6 – átnevezés a kiterjesztés megtartásával. Az r alapból a kurzort a kiterjesztés elé teszi. Ha teljesen új nevet akarsz beírni, de a kiterjesztést megtartanád, az --empty=stem kiüríti a név törzsét (foo.jpg → .jpg), a --cursor=start pedig az elejére teszi a kurzort:
[[mgr.prepend_keymap]] on = "R" run = "rename --empty=stem --cursor=start" desc = "Átnevezés: új név, a kiterjesztés megmarad"
Billentyű 7 – gyors eszközök az e sorozaton. Az e betű alapból szabad. Néhány külső eszköz egy billentyűkombinációval elérhető (a programoknak telepítve kell lenniük):
[[mgr.prepend_keymap]] on = [ "e", "d" ] run = "shell --block -- ncdu" desc = "Lemezhasználat az aktuális könyvtárban (ncdu)" [[mgr.prepend_keymap]] on = [ "e", "z" ] run = "shell 'zip -r .zip %h' --cursor=7 --interactive" desc = "A kurzor alatti könyvtár tömörítése zip-be" [[mgr.prepend_keymap]] on = [ "e", "f" ] run = "shell --block -- diff -u %s1 %ts1 | less" desc = "Két fájl összehasonlítása a két lap között"
A magyarázat: az ncdu interaktív, ezért --block kell. A zip sor a beviteli mezőt előre kitöltve nyitja meg, és a --cursor=7 a kurzort a .zip elé teszi, így csak a fájlnevet kell beírnod. A diff sorhoz két lapot használunk: az elsőben jelölj ki egy fájlt, a másodikban a másik fájlt (%s1 az aktuális lap első kijelöltje, a %ts1 a következő lap első kijelöltje).
Billentyű 8 – lapváltás magyar billentyűzeten. A Yazi alapból a [ és ] billentyűkkel lép a lapok között, a { és } cseréli a lapokat. Magyar kiosztáson ezek AltGr-os kombinációk (lásd az 5.9 fejezetet), ezért egyszerűbb a t sorozathoz kötni:
[[mgr.prepend_keymap]] on = [ "t", "n" ] run = "tab_switch 1 --relative" desc = "Következő lap" [[mgr.prepend_keymap]] on = [ "t", "p" ] run = "tab_switch -1 --relative" desc = "Előző lap"
Billentyű 9 – lapos nézet (flat view) és tartalomkeresés. Az fd-vel végzett, üres kulcsszavú keresés az almappák fájljait egyetlen listában mutatja („lapos nézet”). A search_do azonnal, beviteli mező nélkül futtat, ezért egy billentyűre kötve gyors lapos nézetet ad (itt legfeljebb három mélységig). A rga (ripgrep-all) a PDF-ek és dokumentumok tartalmában is keres, de külön telepíteni kell:
[[mgr.prepend_keymap]] on = [ "g", "F" ] run = 'search_do --via=fd --args="-d 3"' desc = "Lapos nézet (legfeljebb 3 mélységig)" [[mgr.prepend_keymap]] on = [ "g", "s" ] run = "search --via=rga" desc = "Keresés fájlok tartalmában (rga)"
Billentyű 10 – az aktuális könyvtár megnyitása a grafikus fájlkezelőben. Ha valamit egérrel szeretnél elvégezni (például húzással áttenni egy grafikus programba), egy billentyűvel megnyithatod az aktuális könyvtárat a rendszer alapértelmezett fájlkezelőjében (Minten a Nemóban):
[[mgr.prepend_keymap]] on = [ "g", "n" ] run = "shell --orphan -- xdg-open ." desc = "Aktuális könyvtár megnyitása a grafikus fájlkezelőben"
Billentyű 11 – másolás a rendszer vágólapjára is. Egy billentyűhöz több művelet is köthető (a run listája sorban fut le). A hivatalos dokumentáció példája az y (másolás) mellett a kijelölt fájlokat a rendszer vágólapjára is elhelyezi, így egy grafikus alkalmazásba (például levelezőbe vagy fájlkezelőbe) is beilleszthetők. X11 alatt (Minten ez az alapértelmezett) az xclip kell hozzá:
[[mgr.prepend_keymap]] on = "y" run = [ "shell -- echo %s | xclip -i -selection clipboard -t text/uri-list", "yank" ]
Wayland alatt a wl-copy a megfelelő eszköz, a dokumentáció külön példát mutat rá. Éles használat előtt próbáld ki, hogy a célalkalmazásod elfogadja-e a beillesztést.
5.8 Ütközések és a billentyűk felfedezése
- Egy billentyűs és több billentyűs kötés ütközése. Ha egy billentyű már önmagában is le van kötve (például az r, az s vagy a d), ne használd egy több billentyűs sorozat első tagjaként ([ "r", "x" ]), mert a két kötés összeakadhat. A sorozatok kezdőbillentyűjének használd a már eleve előtagként működő g, c, t, m, , billentyűket, vagy e gy szabad betűt (például e, b, i, u).
- A segédablak (which). Egy sorozat első billentyűjének lenyomása után a Yazi felugró listában mutatja a lehetséges folytatásokat és azok desc leírását. Ezért érdemes minden saját kötéshez leírást írni.
- A súgó (F1 vagy ~). Az összes aktuális kötést, az alapértelmezetteket és a sajátjaidat is felsorolja. Innen kideríthető, hogy egy billentyű szabad-e.
- Az alapértelmezett kiosztás: keymap-default.toml. Innen lehet átvenni a műveletek pontos nevét és a desc mintáit.
5.9 Magyar billentyűzet: mire figyelj?
A Yazi számos alapértelmezett billentyűje olyan karakter, amely magyar kiosztáson AltGr lenyomását igényli. Ez nem hiba, de lassíthatja a munkát, ha nem tudsz róla:
| Karakter | Használata a Yazi-ban | Magyar kiosztáson (általában) |
|---|---|---|
| ~ | Súgó (az F1 is megteszi) | AltGr + 1 |
| [ és ] | Előző / következő lap | AltGr + F és AltGr + G |
| { és } | A lap cseréje az előzővel / következővel | AltGr + B és AltGr + N |
| ; | Shell-parancs futtatása | AltGr + , |
Az AltGr billentyűk ütközhetnek egyes terminálemulátorok saját kiosztásával, ezért ha egy karakter nem működik a Yazi-ban, először egy sima szövegmezőben (például a shellben) ellenőrizd, hogy a billentyűzeted valóban azt a karaktert adja. A gyakori műveletekhez érdemes egyszerűbb kombinációt rendelni (például a 8. példa t n és t p kötése).
6. theme.toml – színséma és megjelenés
6.1 Két alaptípus: szín és stílus
A theme.toml szinte minden beállítása két egyszerű típusra épül:
- Szín (Color): hexadecimális RGB-érték ("#484D66"), vagy 17 előre definiált névvel is megadható: reset, black, white, red, lightred, green, lightgreen, yellow, lightyellow, blue, lightblue, magenta, lightmagenta, cyan, lightcyan, gray, darkgray.
- Stílus (Style): egy beágyazott tábla2, amely a fg (előtér) és bg (háttér) színen kívül logikai kapcsolókat is tartalmazhat: bold (félkövér), dim (halványított – nem minden terminál támogatja), italic (dőlt), underline (aláhúzott), blink és blink_rapid (villogó), reversed (előtér-háttér felcserélve), hidden (rejtett), crossed (áthúzott).
Egy stílus megadása:
cwd = { fg = "#8bd5ca", bold = true }Ha egy szakaszt vagy mezőt nem adsz meg, a Yazi az alapértelmezett (vagy a flavor) értékét használja – nem kell mindent kitölteni.
6.2 Kész színséma (flavor) vagy saját theme.toml?
Mielőtt egyesével színezgetnéd a felületet, érdemes eldönteni, kész flavort18 használsz-e, vagy mindent magad állítasz be. A kettő keverhető: a flavor adja az alapszíneket, a theme.toml-ban pedig felülírhatod az egyedi részleteket – a sajátod mindig elsőbbséget élvez a flavorral szemben.
[flavor]
dark = "catppuccin-mocha"
light = "catppuccin-latte"
# Innentől a flavor fölé írt saját módosítások:
[mgr]
cwd = { fg = "#4ec9b0", bold = true }A flavorokat a yazi-rs/flavors tárból lehet telepíteni (ya pkg add yazi-rs/flavors:catppuccin-mocha), vagy kézzel a ~/.config/yazi/flavors/ könyvtárba másolni. Ha csak flavort használsz, a theme.toml-nak érdemes kizárólag a [flavor] szakaszt tartalmaznia – minden más benne lévő szakasz felülírja a flavor megfelelő részét, ami félreértést okozhat, ha erre nem számítasz.
6.3 A fájllista ([mgr]) és a mutatósáv ([indicator])
A legtöbb látható elem a [mgr] szakaszban van:
| Mező | Mit színez? |
|---|---|
| cwd | A jelenlegi könyvtár elérési útja a felső sorban |
| find_keyword / find_position | A /-es keresés találata a fájlnévben, illetve a találatok pozíciója (pl. „2/5”) |
| symlink_target | A szimbolikus link célja (a -> /cél/útvonal rész) |
| marker_copied / marker_cut | A másolásra/kivágásra jelölt fájlok sávjelzése |
| marker_marked / marker_selected | A vizuális módban előre kijelölt, illetve a Space-szel kijelölt fájlok jelzése |
| count_copied / count_cut / count_selected | A státuszsorban megjelenő darabszám stílusa |
| border_symbol / border_style | Az oszlopok közötti elválasztó karakter és színe |
| syntect_theme | A kódelőnézet szintaxiskiemelésének színsémája (.tmTheme fájl útvonala) |
Példa 1 – letisztult elválasztó vonal az oszlopok között. Az alapértelmezett elválasztó vékony függőleges vonal; ha vastagabb, jobban látható elválasztást szeretnél:
[mgr]
border_symbol = "┃"
border_style = { fg = "#585b70" }Példa 2 – jól látható másolás/kivágás jelzés. Ha gyakran dolgozol sok fájllal egyszerre, hasznos, ha a másolásra vagy kivágásra jelölt elemek élénk, egymástól jól megkülönböztethető színt kapnak:
[mgr]
marker_copied = { fg = "#a6e3a1", bg = "#a6e3a1" }
marker_cut = { fg = "#f38ba8", bg = "#f38ba8" }
marker_selected = { fg = "#89b4fa", bg = "#89b4fa" }
count_copied = { fg = "#a6e3a1", bold = true }
count_cut = { fg = "#f38ba8", bold = true }
count_selected = { fg = "#89b4fa", bold = true }Példa 3 – saját kódszínséma a szövegelőnézetben. A syntect_theme egy Sublime Text-féle .tmTheme fájlra mutat (nem TOML!). Ilyen fájlokat a GitHubon „tmTheme” kulcsszóval kereshetsz, vagy letöltheted valamelyik ismert szerkesztő portját:
[mgr] syntect_theme = "/home/felhasznalo/.config/yazi/Dracula.tmTheme"
Fontos: ha flavort használsz, a syntect_theme nem állítható, mert a flavorok a saját tmtheme.xml fájlukat használják – ilyenkor ezt a sort hagyd ki a theme.toml-ból.
A [indicator] szakasz a görgetősávok (a három oszlop jobb szélén megjelenő vékony csík, amely a lista méretéhez képest mutatja, hol tartasz) színét (parent, current, preview) és a köréjük tett díszítő karaktereket (padding = { open = "▐", close = "▌" }) állítja.
6.4 Lapok, mód és állapotsor: [tabs], [mode], [status]
A [tabs] az aktív és inaktív lapfülek (active, inactive) színét, illetve az elválasztó karaktereket (sep_inner, sep_outer) adja meg. A [mode] a bal alsó sarokban megjelenő módjelzőt (NORMAL, SELECT, UNSET) színezi, külön a normál, a kijelölő (vizuális) és a „megfordított kijelölés” (unset) módhoz, mindegyikhez egy fő (_main) és egy másodlagos (_alt) stílussal.
Példa 4 – jogosultságok színkódolása az állapotsorban. A [status] a jobb alsó sarokban megjelenő adatokat (jogosultságok, folyamatjelző) színezi. Hasznos, ha az olvasás-írás-futtatás jogosultságokat élénk színnel emeled ki – így egy pillantással látod, ha egy fájl futtatható, vagy ha valahol hiányzik az írásjog:
[status]
perm_type = { fg = "#89b4fa" }
perm_read = { fg = "#a6e3a1" }
perm_write = { fg = "#f9e2af" }
perm_exec = { fg = "#f38ba8", bold = true }
perm_sep = { fg = "#585b70" }Példa 5 – jól látható hibaállapot másolás közben. Ha egy másolás vagy áthelyezés hibába ütközik (például betelt lemez, hiányzó jogosultság), a folyamatjelző progress_error stílust kap. Ezt érdemes szembetűnőre állítani, hogy a hosszú másolás közben ne maradjon észrevétlen:
[status]
progress_normal = { fg = "#a6e3a1" }
progress_error = { fg = "#1e1e2e", bg = "#f38ba8", bold = true }6.5 Felugró ablakok: [which], [confirm], [pick], [input], [cmp], [tasks], [help], [spot], [notify]
Ezek a szakaszok a felugró ablakok stílusát adják meg – a szövegüket (mit írjanak ki) az 5. fejezetben (yazi.toml) tárgyalt [input], [confirm], [pick] szakaszok határozzák meg, a kettő együtt alkotja a végeredményt.
Példa 6 – a többbillentyűs súgóablak (which) elrendezése. Ha sok saját billentyűkötést vettél fel (lásd az 5. fejezet példáit), a lista hosszú lehet. A cols (1, 2 vagy 3) több oszlopba tördeli:
[which]
cols = 2
cand = { fg = "#f9e2af", bold = true }
rest = { fg = "#6c7086" }
desc = { fg = "#cdd6f4" }A cand a még le nem nyomott, elérhető billentyűket, a rest a leírás utáni kitöltő szöveget, a desc a leírásokat színezi.
Példa 7 – magyar feliratok a megerősítő gombokon. A gombok szövege (btn_labels) a theme.toml-ban, nem a yazi.toml-ban van – ezért ha az 5. fejezet 12. példájában a kérdéseket magyarra fordítottad, érdemes a gombokat is lefordítani:
[confirm]
btn_labels = [ "Igen", "Nem" ]
btn_yes = { fg = "#1e1e2e", bg = "#a6e3a1", bold = true }
btn_no = { fg = "#cdd6f4" }Példa 8 – a feladatkezelő ([tasks]) kiemelése. Hosszabb másolásoknál gyakran nyitva tartod a feladatkezelőt (w); hasznos, ha a kurzor alatti feladat jól látszik:
[tasks]
hovered = { fg = "#1e1e2e", bg = "#89b4fa" }A [notify] a felugró értesítések három szintjét (title_info, title_warn, title_error) színezi, a [spot] a Tab billentyűvel elérhető részletes fájlinformációs ablakot, a [cmp] az automatikus kiegészítés (például útvonal beírásakor felkínált javaslatok) megjelenését.
6.6 Fájltípus szerinti színezés: [filetype]
Ez az egyik leglátványosabb, és a gyakorlatban is talán legtöbbet használt szakasz: szabályok listája, amely a fájl MIME-típusa vagy neve alapján dönti el, milyen színt és stílust kapjon a sor a listában. A szabályok fentről lefelé, az első illeszkedőig érvényesülnek, ezért a sorrend számít – a legspecifikusabb szabályokat felülre kell tenni.
[filetype]
rules = [
{ mime = "image/*", fg = "yellow" },
{ mime = "{audio,video}/*", fg = "magenta" },
{ mime = "inode/empty", fg = "cyan" },
{ url = "*", is = "orphan", fg = "red" },
{ url = "*/", fg = "blue" },
]Két különleges minta van: url = "*" minden fájlra illeszkedik, url = "*/" minden könyvtárra. Az is kulccsal (csak url-lel vagy mime-mal együtt használható) speciális típusokra lehet szűkíteni: block (blokkeszköz), char (karaktereszköz), exec (futtatható), fifo, link (szimbolikus link), orphan (törött szimbolikus link), sock (foglalat), sticky (sticky bit).
Példa 9 – kiemelt fájltípusok hangfájl-gyűjteményekhez. Ha sokat dolgozol hangoskönyv vagy podcast-könyvtárakkal, hasznos, ha az .m4a/.mp3 fájlok és a hozzájuk tartozó leíró szövegfájlok más-más, jól megkülönböztethető színt kapnak, a törött linkek pedig azonnal szembetűnjenek:
[filetype]
rules = [
{ mime = "audio/*", fg = "lightmagenta" },
{ name = "*.txt", fg = "lightyellow" },
{ url = "*", is = "orphan", fg = "red", bold = true },
{ url = "*/", fg = "lightblue" },
](A name a fájl nevére, kiterjesztésre illeszkedő minta – a [filetype] szabályokban a mezőt a dokumentáció mime és url néven említi, saját névminta esetén az url = "*.txt" forma használandó; a fenti name csak illusztráció, a gyakorlatban url-ként add meg.)
Példa 10 – futtatható szkriptek kiemelése. Ha sokat dolgozol saját szkriptekkel (bash, Python), hasznos, ha azonnal látod, melyik fájl futtatható:
[filetype]
rules = [
{ url = "*", is = "exec", fg = "green", bold = true },
{ url = "*/", fg = "blue" },
]Fontos sorrendi hiba, amit érdemes elkerülni: ha az url = "*/" (minden könyvtár) szabályt a lista elejére teszed, az minden könyvtárra lecsap, mielőtt a specifikusabb szabályok (például egy adott könyvtárnévre illő minta) egyáltalán esélyt kapnának. A specifikus szabályok mindig előrébb legyenek, az „elkapó” (*, */) szabályok a lista végén.
6.7 Egyedi ikonok: [icon]
A Yazi beépítve tartalmazza az nvim-web-devicons ikonkészletét19. Az [icon] szakasszal ezt egészítheted ki, vagy (a prepend_*/append_* nélkül) teljesen le is cserélheted. Az ikonszabályok négy kategóriába tartoznak, és ilyen sorrendben illeszkednek: globs (útvonalminta, leglassabb, de a legpontosabb), dirs (könyvtárnév), files (fájlnév), exts (kiterjesztés), végül conds (feltétel).
Példa 11 – saját mappaikonok magyar könyvtárnevekhez. Az alapértelmezett ikonkészlet angol mappaneveket (Desktop, Downloads, Music) ismer fel; a magyar nyelvű Mint ennél más neveket használ:
[icon]
prepend_dirs = [
{ name = "Letöltések", text = "", fg = "#8aadf4" },
{ name = "Dokumentumok", text = "", fg = "#a6da95" },
{ name = "Zene", text = "", fg = "#f5a97f" },
{ name = "Hangoskönyvek", text = "", fg = "#c6a0f6" },
](A text mezőbe Nerd Font-ikon kell; a fenti karakterek csak helykitöltők – a tényleges ikonokat a Nerd Font Cheat Sheet oldalon található karakterekkel érdemes helyettesíteni.)
Példa 12 – feltétel alapú ikon a rejtett könyvtáraknak. A conds a | (vagy), & (és), ! (nem) és zárójelek segítségével kombinálható:
[icon]
prepend_conds = [
{ if = "hidden & dir", text = "" },
{ if = "!(dir | link)", text = "" },
]7. Hasznos, érdekes és munkát gyorsító beállítások
A fenti fejezetek sok apró beállítást mutattak be; ez a rész kiemeli azokat, amelyek a leginkább megérik a beállítással töltött időt – vagy egyszerűen csak érdekesek.
A leghasznosabbak (ezekkel érdemes kezdeni):
- sort_by = "natural" + sort_translit = true (3.2 fejezet). Sorszámozott, ékezetes nevű fájloknál (epizódok, fejezetek, számlák) azonnal helyes sorrendet ad – nagyon sok felesleges görgetést spórol meg.
- export EDITOR=... (3.3 fejezet). Ha ez nincs beállítva, minden szövegfájl a Vimben (újabban a nano-ban) nyílik meg, ami sokaknak kellemetlen meglepetés. Egyetlen sor, és örökre megoldva.
- A ! billentyű: shell nyitása a jelenlegi könyvtárban (5.7, 3. példa). Ez a leggyakrabban hiányolt funkció azoknál, akik a Midnight Commanderhez vagy a rangerhez szoktak; a Yazi-ban egy sorral pótolható.
- A g r: ugrás a Git-tároló gyökerébe (5.7, 2. példa). Fejlesztői munkafolyamatban naponta többször hasznos.
- ratio = [ 1, 4, 0 ] (előnézet nélkül) gyenge gépen vagy lassú hálózaton (3.2, 4.3 fejezet). Az egyetlen beállítás, amely a legnagyobb, azonnal érezhető sebességjavulást adja, ha a gép vagy a kapcsolat szűk keresztmetszet.
- A noop előnéző/előtöltő egy adott MIME-típusra vagy útvonalra (4.3 fejezet, 3–5. példa). Célzottan kapcsolja ki a lassú részt (nagy PDF-ek, hálózati mappák), a többi előnézetet érintetlenül hagyva – ennél finomabb szabályozás nincs.
Érdekesek, amelyekre kevesebben gondolnak:
- A %t / %T előtag a két lap kijelölései között (5.6 fejezet). Két lapot használva, egy billentyűre köthető egy olyan művelet (diff, összehasonlítás, egyedi átmásolás), amely mindkét lap kijelöléseit egyszerre látja.
- A reveal mint áthidalás a terminál és a grafikus világ között (3.3 fejezet vége). Ha egy fájlt egérrel kellene valahova áthúznod, a reveal egy billentyűre nyitja meg ugyanazt a mappát a grafikus fájlkezelőben.
- A [[open.prepend_rules]] url-alapú, útvonalra szűkített szabályai (3.3, 8. példa). Nemcsak fájltípus, hanem hely szerint is eldöntheted, mi történjen egy fájllal – például egy adott projektmappában más szerkesztő induljon.
- A [icon] feltételes szabályai (conds) (6.7, 12. példa). Logikai kifejezésekkel (hidden & dir, !(dir | link)) finomabb ikonozás érhető el, mint amit egyszerű névvagy kiterjesztéslistával lehetne.
- Az YAZI_CONFIG_HOME váltogatása (2.3 fejezet). Nemcsak teszteléshez jó: több, egymástól teljesen eltérő beállításkészlet (például „munka” és „otthoni”) között válthatsz vele, akár egy shell-aliasszal.
Amivel a legtöbb időt lehet megspórolni hosszú távon:
- A konfiguráció Git-be tevése (2.4 fejezet). Egyetlen git commit ér annyit, mint tíz óra újra-beállítás egy újratelepítés után.
- A taplo-alapú sémaellenőrzés (2.4 fejezet). Egy elgépelt mező vagy hibás zárójel azonnal kiderül, mielőtt a Yazi-t egyáltalán elindítanád – ez a 8. fejezet legtöbb hibáját megelőzi.
- *A MARKDOWN_HASH0b93eda49628e6ab77e083be53bfe2c6MARKDOWNHASH és `[[…append]]** következetes használata a teljes listát felülíró alak helyett (1. fejezet, 3. elv). Egyetlen szokás, amely elkerülhetővé teszi, hogy egy frissítés után elveszítsd az új alapértelmezett funkciókat.
8. Gyakori hibák szerkesztés közben
Ez a fejezet azokat a hibákat gyűjti össze, amelyeket a gyakorlatban a legtöbben elkövetnek a három fájl szerkesztésekor. A legtöbb egyetlen elgépelés vagy egy régi útmutató másolása miatt történik.
8.1 TOML-szintaxis
| Hiba | Mit okoz? | Megoldás |
|---|---|---|
| A tömb (prepend_keymap = [ {...}, {...} ]) és a tömbtábla ([[mgr.prepend_keymap]]) keverése ugyanabban a szakaszban | TOML-elemzési hiba, a Yazi el sem indul, vagy csak a fájl egy részét olvassa be | Egy szakaszon belül válaszd az egyik írásmódot, és legyél következetes (lásd az 5.2 fejezetet) |
| Hiányzó záró idézőjel vagy kapcsos zárójel egy hosszabb run parancsban | Szintaxishiba, gyakran a hibaüzenet egy másik, későbbi sorra mutat | A taplo check (2.4 fejezet) pontosan megmutatja a hibás sort |
| Idézőjel a shell-parancsban idézőjelön belül, escape-elés nélkül | TOML-hiba vagy hibás parancs | Használd a -- „opciók vége” jelölést (5.6 fejezet), és kerüld a beágyazott idézőjeleket |
| Fordított (Windows-os) osztásjel a Linuxos útvonalakban (\) | Az útvonal nem lesz érvényes | Linuxon mindig / a elválasztó |
| Tabulátor és szóköz keverése a behúzásban | A legtöbb TOML-elemző ezt megengedi, de a diff-ek (Git) átláthatatlanná válnak | Válassz egyet, és tartsd következetesen |
8.2 Fogalmi, nem szintaktikai hibák
- Elavult szakasz Név használata. A [manager] a régi neve a [mgr]-nek. Ha egy régebbi blogbejegyzésből vagy fórumhozzászólásból másolsz példát, és az nem hoz semmilyen látható hatást, ellenőrizd a szakasznevet a jelenlegi dokumentációban.
- A keymap = [...] (nem prepend_ vagy append_) véletlen használata. Ez lecseréli az összes alapértelmezett billentyűkötést a [mgr] rétegben – a q, a h/j/k/l, a másolás-beillesztés is eltűnik, csak a sajátod marad. Ez a leggyakoribb módja annak, hogy valaki „elveszíti” a Yazi teljes irányítását egyetlen sor miatt. Csak akkor használd, ha tudatosan az összes alapértelmezett kötést le akarod cserélni.
- Ütköző billentyű felülírása észrevétlenül. Ha egy prepend_keymap-ban olyan billentyűt kötsz le, amely már foglalt (például d), a sajátod nyer, de az eredeti funkció (itt: lomtárba helyezés) elérhetetlenné válik, amíg vissza nem állítod. A F1 súgóval mindig ellenőrizhető, mi lett az adott billentyűvel.
- for mező hiánya, ha a konfigurációt több gépen (Linux és nem Linux) osztod meg. Egy csak Linuxon értelmezhető shell-parancs (például xdg-open) más rendszeren hibát dobhat. A for = "linux" (vagy "unix") ilyenkor megvédi a szabályt.
- A sorrend figyelmen kívül hagyása a [filetype] és [open] szabályoknál. Mivel az első illeszkedő szabály nyer, egy túl általános minta (mime = "*/*", url = "*/") a lista elején elnyomja az utána következő, specifikusabb szabályokat (lásd a 6.6 fejezet figyelmeztetését).
- A syntect_theme és a flavor egyidejű használata. Ha flavort állítottál be, a syntect_theme mezőt a Yazi figyelmen kívül hagyja – a flavor saját tmtheme.xml-je érvényesül. Ha egyedi kódszínsémát akarsz, vagy ne használj flavort a kódkiemeléshez, vagy keress olyan flavort, amelynek a tmtheme.xml-je megfelel.
- Relatív útvonal a cache_dir-ben vagy a syntect_theme-ben. Ezeknél abszolút útvonalat vár a program; a ~ sok helyen működik, de biztonságosabb kiírni a teljes elérési utat (/home/felhasznalo/...).
- A gyorsítótár figyelmen kívül hagyása. Ha egy előnézeti beállítás (méret, minőség) módosítása után a régi kép jelenik meg, ne gondold hibásnak a beállítást – töröld vagy ürítsd a gyorsítótárat (4.3 fejezet).
8.3 Gyakorlati félreértések
- „Nem történt semmi” – elfelejtett újraindítás. A Yazi a konfigurációt induláskor olvassa be. Egy módosítás csak új indítás (vagy új lap, ha a beállítás lapfüggetlen – de a legtöbb nem az) után látszik. Ha több példány van nyitva, indíts újra az összeset. Vagy ne tarts nyitva többet!
- A theme.toml hiba miatt egyáltalán nem induló Yazi. Egy érvénytelen szín (fg = "asdf") vagy elgépelt mező miatt a program leállhat indításkor. Ha ez történik, a 2.5 fejezet „mentőöv” módszerével (a konfiguráció ideiglenes félretételével) gyorsan kiderül, hogy a hiba a theme.toml-ban van-e.
- Az AltGr-os billentyűk letiltása egy terminálemulátor beállításában. Ha egy saját billentyűkötés (vagy egy alapértelmezett, mint a [ vagy a ;) egyáltalán nem reagál, előfordulhat, hogy a terminálemulátorod maga foglalja le azt a kombinációt (lásd az 5.9 fejezetet). Ellenőrizd egy egyszerű szövegmezőben, hogy a billentyű a várt karaktert küldi-e.
- A <C-m>, <C-i> és hasonlók lekötése. Ezek a régi terminálprotokoll16 szerint megegyeznek az <Enter>-rel és a <Tab>-bal. Ha ezt véletlenül felülírod, az Enter és a Tab alapvető működése is megváltozhat (lásd az 5.3 fejezetet).
- Elfelejtett block vagy orphan egy saját megnyitónál vagy shell-parancsnál. Interaktív, terminálos program block nélkül azonnal visszaadja az irányítást a Yazi-nak, mielőtt a program ténylegesen elindulna – zavaros, „villanó” képernyőt eredményezhet. Grafikus program orphan nélkül a Yazi bezárásakor megszakadhat.
9. Hasznos honlapok
Ez a lista a konfigurációhoz kapcsolódó forrásokat gyűjti össze; az általános Yazi-oldalakat (telepítés, súgó, bővítménygyűjtemények) az első cikk 11. fejezete tartalmazza.
| Oldal | Tartalma |
|---|---|
| yazi-rs.github.io/docs/configuration/overview | A konfigurálás alapelvei, a prepend_*/append_* mechanizmus |
| yazi-rs.github.io/docs/configuration/yazi | A yazi.toml teljes, hivatalos referenciája |
| yazi-rs.github.io/docs/configuration/keymap | A keymap.toml teljes, hivatalos referenciája, az összes elérhető művelettel |
| yazi-rs.github.io/docs/configuration/theme | A theme.toml teljes, hivatalos referenciája |
| yazi-rs.github.io/docs/flavors/overview | A flavor-rendszer működése, saját flavor készítése |
| yazi-rs.github.io/docs/tips | Hivatalos konfigurációs receptek és trükkök |
| yazi-rs.github.io/docs/faq | Gyakran ismételt kérdések, sok konfigurációs témával |
| github.com/sxyazi/yazi/tree/shipped/yazi-config/preset | Az alapértelmezett yazi.toml, keymap.toml, theme.toml fájlok forrása |
| github.com/sxyazi/yazi/blob/shipped/yazi-config/preset/keymap-default.toml | Az összes alapértelmezett billentyűkötés és a műveletek pontos neve |
| github.com/yazi-rs/flavors | Kész flavorok gyűjteménye |
| github.com/yazi-rs/flavor-template | Sablon saját flavor készítéséhez |
| taplo.tamasfe.dev | A taplo TOML-ellenőrző és -formázó dokumentációja |
| yazi-rs.github.io/schemas/yazi.json, .../keymap.json, .../theme.json | A három konfigurációs fájl JSON-sémája (szerkesztői ellenőrzéshez és a taplo-hoz) |
| github.com/search?q=tmTheme\&type=repositories | .tmTheme fájlok kereséséhez (a syntect_theme beállításhoz) |
| www.nerdfonts.com/cheat-sheet | Az egyedi ikonszabályokhoz ([icon]) használható Nerd Font-karakterek listája |
| github.com/sxyazi/yazi/discussions | Közösségi kérdések, sok konkrét konfigurációs példával |
| github.com/sxyazi/yazi/releases | A kiadási jegyzetek, amelyekben a törő konfigurációs változások szerepelnek |
10. Összegzés
A Yazi három konfigurációs fájlja – a yazi.toml, a keymap.toml és a theme.toml – egyetlen közös logikát követ: az alapértelmezések a programba vannak építve, a saját fájlokban csak az eltéréseket kell megadni, és a listaszerű beállításoknál a prepend_*/append_* pár segít kiegészíteni ahelyett, hogy le kellene cserélni mindent. Ez a logika egyszerre teszi a Yazi-t rendkívül rugalmassá, és egyszerre a leggyakoribb hibaforrássá is, ha valaki nem veszi figyelembe.
A gyakorlatban a legtöbb hasznot néhány jól megválasztott beállítás adja: a természetes rendezés, a megfelelő $EDITOR, néhány saját billentyűkötés (Git-gyökér, shell nyitása, könyvtár-könyvjelzők) és egy előnézeti beállítás a saját géphez vagy hálózathoz igazítva. Ezekre érdemes elsőként időt szánni; a színséma és az ikonok finomhangolása inkább kényelmi kérdés, amivel bármikor, ráérősen is lehet foglalkozni – akár egy kész flavor átvételével, akár saját színek megadásával. Az első hasznos, a második pedig látványosan szép. A hasznosság segíti a gyors munkát!
A szerkesztéshez a séma-ellenőrzés (taplo), a kis lépésekben haladás és a Git-alapú verziókövetés a három leghasznosabb szokás: ezekkel a 8. fejezetben felsorolt hibák nagy része elkerülhető, vagy percek alatt megtalálható.
11. Lábjegyzetek
-
TOML: egyszerű, ember számára is jól olvasható konfigurációs fájlformátum. [szakaszokból] és kulcs = érték párokból áll, listákat és beágyazott táblákat is támogat. ↩
-
Beágyazott (inline) tábla: egy TOML-táblát egyetlen sorban, kapcsos zárójelek között is meg lehet adni, például fg = "red", bold = true . A Yazi a Style típusú beállításoknál szinte mindig ezt a formát használja. ↩ ↩
-
Tömbtábla (array of tables): a TOML [[szakasz]] jelölése, amely egy listát épít fel több, ismétlődő táblából. A [[mgr.prepend_keymap]] minden előfordulása egy-egy új billentyűkötést ad a listához – ez egyenértékű azzal, mintha egyetlen prepend_keymap = [ {...}, {...} ] tömböt írnál. ↩ ↩
-
Konfigurációs könyvtárak Linuxon: a felhasználói beállítások hagyományosan a ~/.config/ alatt, az állapot- és naplófájlok pedig a ~/.local/state/ alatt tárolódnak. A ~ a saját könyvtáradat jelöli (például /home/felhasznalo). ↩
-
Taplo: önálló, Rustban írt TOML-ellenőrző és -formázó program, amelyhez a legtöbb szerkesztőhöz (VS Code, Neovim) is készült kiegészítő. Egy JSON-séma (a Yazi esetében a projekt saját sémái) alapján ellenőrzi, hogy egy TOML-fájl mezői érvényesek-e. ↩
-
Dotfiles: a felhasználó saját, ponttal kezdődő konfigurációs fájljainak és könyvtárainak (~/.config/..., ~/.bashrc stb.) gyűjtőneve. Sokan ezeket egy Git-tárban tartják, hogy új gépen egy paranccsal visszaállíthatók legyenek. ↩
-
Megnyitó (opener): a konfigurációban megadott parancs, amely egy adott fájltípust megnyit. A [opener] szakasz nevesíti a parancsokat, a [open] szakasz szabályai döntik el, melyik fájltípushoz melyik nevesített megnyitó tartozzon. ↩
-
MIME-típus: a fájl tartalmának szabványos azonosítója (például text/plain, image/png). A Yazi a file paranccsal állapítja meg, és ez alapján dönt a megnyitóról, az előnézetről és a [filetype] színezésről is. ↩ ↩
-
$EDITOR környezeti változó: a rendszeren beállított alapértelmezett szövegszerkesztő neve. Sok Linux-program (nemcsak a Yazi) ezt olvassa ki, amikor szöveges fájlt kell megnyitnia. Beállítása: export EDITOR=nano (vagy más program neve) a ~/.bashrc fájlban. ↩
-
block és orphan: két kapcsoló, amely megmondja a Yazi-nak, hogyan viselkedjen egy elindított külső programmal. A block azt jelenti, hogy a Yazi megvárja a program végét (terminálos, interaktív programokhoz kell), az orphan azt, hogy a program a Yazi bezárása után is önállóan tovább fusson (grafikus, nem terminálos programokhoz). ↩
-
Glob-minta: fájlnevekre illeszkedő egyszerűsített mintázat, amelyben a * tetszőleges karaktersorozatot, a ** tetszőleges mélységű könyvtárláncot, a a,b pedig alternatívát jelent (*.{png,jpg} = „png vagy jpg kiterjesztésű”). A find és a ls parancs *-os mintáihoz hasonló, de annál kicsit gazdagabb. ↩ ↩
-
Gyorsítótár (cache): egy könyvtár, ahová a program az újrafelhasználható, de újra is előállítható adatokat (itt: az előnézeti képeket) menti, hogy legközelebb ne kelljen újra elkészítenie őket. A Yazi gyorsítótára alapból a rendszer általános gyorsítótár-könyvtárában van, ez a [preview] cache_dir beállítással módosítható. ↩
-
Az előnézet négy szerepköre: a fetcher egy adatot (jellemzően a MIME-típust) derít ki gyorsan minden fájlról; a preloader egy nehezebb előnézetet (kép, videó, PDF) készít elő a háttérben, mielőtt a kurzor odaérne; a previewer magát a jobb oldali oszlopban látható tartalmat állítja elő; a spotter a Tab billentyűvel elérhető, részletesebb fájlinformációs nézetet tölti fel. ↩
-
SSHFS: program, amellyel egy távoli, SSH-n elérhető könyvtár a helyi fájlrendszerbe csatolható, mintha helyi mappa lenne. Emiatt a rajta végzett minden fájlművelet (előnézet-készítést is beleértve) valójában hálózati forgalmat jelent. ↩
-
Billentyűsorozat (chord): több, egymás után lenyomott billentyű, amelyet a program egyetlen parancsként értelmez (például a g, majd a g billentyű egymás után). A TOML-ban ilyenkor az on mező egy lista, nem egyetlen szöveg. ↩
-
A terminál billentyű-jelentési protokollja: a hagyományos (legacy) terminálprotokoll egyes billentyűkombinációkat nem tud megkülönböztetni egymástól – például a Tab-ot a Ctrl+I-től, vagy az Enter-t a Ctrl+M-től –, mert történetileg ugyanazt a vezérlőkódot küldik. Az újabb, ún. „Kitty billentyűzet-protokollt” támogató terminálok ezt már meg tudják különböztetni. ↩ ↩
-
xdg-user-dir: parancssori program, amely a felhasználó szabványos mappáinak (Letöltések, Dokumentumok, Zene stb.) tényleges, a rendszer nyelvének megfelelő nevét adja vissza – így egy szkript vagy billentyűkötés nem kell, hogy „kitalálja”, hogy a mappa neve épp Downloads vagy Letöltések. ↩
-
Flavor: a Yazi „kész” színsémáinak neve. A saját theme.toml és a kiválasztott flavor tartalma automatikusan összefésülődik, a saját beállítások mindig elsőbbséget élveznek a flavorral szemben. ↩
-
nvim-web-devicons: eredetileg a Neovim szövegszerkesztőhöz készült ikonkészlet, amely fájltípusokhoz és mappákhoz rendel Nerd Font-karaktereket. A Yazi ezt a készletet built-in módon átvette az [icon] szakasz alapértelmezéseként. ↩

Hozzászólások
Szintén igaz,
Beküldte balacy -
Értékelés:
hogy fenn van a honlapomon (magyarlinux.hu) a harmadik rész, bár az nem ilyen laza, hanem a pluginokról szól. Ide is felkerül majd, valamikor.
Ha már itt rontom a levegőt,
Beküldte berus -
Értékelés:
Ha már itt rontom a levegőt, grat a sorozathoz, ez komoly meló lehetett...
A modernebb megoldások közül az elio kicsit szinpibb, de a yazi is jó kis cucc.
A vége meg mindig az lf és a vifm...