A Yazi konfigurálása – yazi.toml, keymap.toml, theme.toml a gyakorlatban

enlightened Ez az oldal a közösségért készül. heart Kövess minket máshol is:  Linux Mint Magyar Közösség a Mastodon-on  Telegram csatorna – csak hírek  Beszélgessünk a Telegram – Linux csevegő csoport  Hírek olvasása RSS segítségével  Linux Mint Hivatalos Magyar Közösség a Facebook-on      Linux Mint Baráti Kör a Facebook-on
wink Ha hasznosnak találod, és szeretnéd, hogy folytatódjon, támogasd a munkát Ko-fi vagy Paypal segítségével. laugh

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

  1. A konfigurálás alapelvei
  2. A konfigurációs állományok helye és a munka gyakorlata
  3. yazi.toml – általános beállítások
  4. Az előnézet beállításai
  5. keymap.toml – billentyűkötések
  6. theme.toml – színséma és megjelenés
  7. Hasznos, érdekes és munkát gyorsító beállítások
  8. Gyakori hibák szerkesztés közben
  9. Hasznos honlapok
  10. Összegzés
  11. 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:

  1. 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.
  2. 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.
  3. 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

  1. 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.
  2. 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.
  3. 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
  4. 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.
  5. 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.
  6. 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.

  7. 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:

  1. [opener] – megnyitók (openers7) nevesített listája: melyik parancsot lehet futtatni.
  2. [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:

  1. A Yazi megállapítja a fájl MIME-típusát8 (a [plugin] szakasz fetchers szabályai szerint, alapból a file paranccsal).
  2. 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).
  3. 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.
  4. 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 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:

  1. 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.
  2. A <D-…> (Super) csak a fejlett billentyűprotokollt támogató terminálokban működik.
  3. 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

  1. 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. ↩

  2. 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. ↩ ↩

  3. 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. ↩ ↩

  4. 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). ↩

  5. 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. ↩

  6. 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. ↩

  7. 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. ↩

  8. 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. ↩ ↩

  9. $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. ↩

  10. 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). ↩

  11. 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. ↩ ↩

  12. 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ó. ↩

  13. 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. ↩

  14. 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. ↩

  15. 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. ↩

  16. 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. ↩ ↩

  17. 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. ↩

  18. 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. ↩

  19. 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,

Értékelés: 

0
Még nincs értékelve

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,

Értékelés: 

0
Még nincs értékelve

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...wink