فهرست سریع فصل‌ها
متوسطفصل 11 از 20⏱ حدود 14 دقیقه

⚙️آموزش تنظیمات Yazi و فایل yazi.toml

ساختار فایل‌های کانفیگ، mgr، preview، tasks و قواعد باز کردن.

تا اینجا با پیش‌فرض‌ها کار کردیم. حالا وقتشه یازی رو بکنیم «مالِ خودمون». همه‌چیز توی ~/.config/yazi/ اتفاق می‌افته.

فایل‌های اصلی که باید بشناسی

yazi.tomlتنظیمات عمومی: چیدمان، مرتب‌سازی، پیش‌نمایش، openerها، وظایف
keymap.tomlکلیدهای میان‌بر در همه‌ی لایه‌ها
theme.tomlرنگ‌ها، آیکون‌ها و انتخاب flavor
init.luaکدهای Lua: بارگذاری پلاگین‌ها، تغییر رابط، رویدادها
package.tomlقفل نسخه‌ی پلاگین‌ها (خودکار توسط ya ساخته می‌شه)
terminal
bash

mkdir -p ~/.config/yazi
cd ~/.config/yazi
touch yazi.toml keymap.toml theme.toml init.lua
💡پیش‌فرض‌ها رو از کجا بگیرم؟
فایل‌های پیش‌فرض یازی توی مخزنش هستن. برای این آموزش از تگ ثابت v26.9.1 استفاده میکنیم؛ اگه نسخه‌ی نصب‌شده فرق داره، تگ همون نسخه رو انتخاب کن. اگه می‌خوای ببینی پیش‌فرض چیه و ازش کپی بگیری:
terminal
bash

curl -fLO https://raw.githubusercontent.com/sxyazi/yazi/v26.9.1/yazi-config/preset/yazi-default.toml
curl -fLO https://raw.githubusercontent.com/sxyazi/yazi/v26.9.1/yazi-config/preset/keymap-default.toml
ولی هیچ‌وقت کل فایل پیش‌فرض رو کپی نکن توی کانفیگت! فقط چیزهایی که می‌خوای عوض کنی رو بنویس، بقیه خودکار از پیش‌فرض میاد.

مفهوم کلیدی: Override در برابر Extend

این رو اگه بفهمی، ۹۰٪ سردرگمی‌های کانفیگ حل می‌شه. برای آرایه‌ها (کلیدها، قواعد باز کردن، پیش‌نمایش‌کننده‌ها) دو حالت داری:

  • جایگزینی کامل: اگه بنویسی keymap = [...] یا rules = [...]، همه‌ی پیش‌فرض‌ها پاک می‌شن و فقط چیزی که نوشتی می‌مونه. (معمولاً چیزی نیست که بخوای!)
  • افزودن: با prepend_* قواعدت قبل از پیش‌فرض‌ها و با append_* بعد از اون‌ها قرار می‌گیرن. چون اولین قاعده‌ی مطابق برنده‌ست، برای بازنویسی یه پیش‌فرض از prepend استفاده کن.

بخش [mgr] — قلب تنظیمات

~/.config/yazi/yazi.toml
toml

[mgr]
ratio          = [1, 4, 3]     # نسبت عرض سه ستون؛ صفر یعنی مخفی
sort_by        = "natural"     # none|mtime|btime|extension|alphabetical|natural|size|random
sort_sensitive = false         # حساس به بزرگی و کوچکی حروف
sort_reverse   = false         # ترتیب معکوس
sort_dir_first = true          # پوشه‌ها اول لیست
sort_translit  = false         # نرمال‌سازی حروف لهجه‌دار موقع مرتب‌سازی
linemode       = "size"        # اطلاعات کنار هر ردیف
show_hidden    = false         # نمایش فایل‌های مخفی
show_symlink   = true          # نشون دادن مقصد لینک‌ها
scrolloff      = 5             # فاصله‌ی مکان‌نما از لبه‌ها
mouse_events   = ["click", "scroll"]   # رویدادهای ماوس
📌نکته درباره ratio
اگه صفحه‌ت باریکه (مثلاً توی tmux با چند پنل)، [0, 1, 1] ستون والد رو حذف می‌کنه و فضای بیشتری می‌دی به لیست و پیش‌نمایش. اگه پیش‌نمایش نمی‌خوای [1, 4, 0].

بخش [tasks] — کنترل موازی‌سازی

yazi.toml
toml

[tasks]
file_workers     = 3      # عملیات فایل
plugin_workers   = 5      # وظایف پلاگین‌ها
fetch_workers    = 5      # دریافت اطلاعات
preload_workers  = 2      # پیش‌بارگذاری
process_workers  = 5      # فرایندهای خارجی
bizarre_retry    = 3      # تلاش مجدد در خطاهای موقت
image_alloc      = 536870912   # حداکثر حافظه برای دیکد یک تصویر (بایت)
image_bound      = [10000, 10000]  # سقف ابعاد تصویر؛ صفر یعنی نامحدود
suppress_preload = false       # مخفی کردن وظایف پیش‌بارگذاری از لیست

از پیش‌فرض‌ها شروع کن. اگه مصرف منابع بالاست، تعداد کارهای هم‌زمان رو یکی‌یکی کمتر کن و نتیجه رو بسنج؛ مقدار مناسب به سخت‌افزار و نوع فایل بستگی داره.

بخش [input] و [confirm] — ظاهر پنجره‌های کوچیک

yazi.toml
toml

[input]
cursor_blink = true

# محل و اندازه‌ی ورودی «ساخت فایل»
create_origin = "top-center"
create_offset = [0, 2, 50, 3]

# ورودی تغییر نام درست زیر خود فایل ظاهر بشه
rename_origin = "hovered"
rename_offset = [0, 1, 50, 3]

[confirm]
trash_origin = "center"
trash_offset = [0, 0, 70, 20]

بخش [which] — منوی راهنمای کلیدهای دنباله‌ای

yazi.toml
toml

[which]
sort_by      = "none"    # none | key | desc
sort_reverse = false

این همون پنجره‌ی کوچیکیه که وقتی g می‌زنی پایین صفحه ظاهر می‌شه و گزینه‌های بعدی رو نشون می‌ده.

یه کانفیگ شروع‌کننده‌ی کامل برای فدورا

قبل از تغییر، از کانفیگ فعلی نسخه‌ی پشتیبان بگیر. این نمونه برای شروعه؛ nvim و mpv رو جدا نصب کن یا نام اون‌ها رو با برنامه‌های نصب‌شده‌ی خودت عوض کن. بخش‌های تکراری TOML رو کنار هم کپی نکن:

~/.config/yazi/yazi.toml
toml

[mgr]
ratio          = [1, 4, 3]
sort_by        = "natural"
sort_dir_first = true
sort_sensitive = false
linemode       = "size"
show_hidden    = false
show_symlink   = true
scrolloff      = 5

[preview]
wrap          = "no"
tab_size      = 2
max_width     = 1200
max_height    = 1200
image_delay   = 30
image_filter  = "triangle"
image_quality = 75

[opener]
edit = [ { run = 'nvim %s', block = true, desc = "ویرایش", for = "unix" } ]
open = [ { run = 'xdg-open %s1', desc = "باز کردن با سیستم", for = "unix" } ]
play = [ { run = 'mpv %s', orphan = true, desc = "پخش", for = "unix" } ]
extract = [ { run = 'ya pub extract --list %s', desc = "استخراج", for = "unix" } ]

[open]
prepend_rules = [
	{ mime = "text/*",   use = [ "edit", "open" ] },
	{ mime = "image/*",  use = [ "open" ] },
	{ mime = "video/*",  use = [ "play", "open" ] },
	{ mime = "audio/*",  use = [ "play" ] },
	{ url  = "*.{zip,tar,gz,xz,bz2,7z,rar}", use = [ "extract", "open" ] },
]

[input]
cursor_blink = true

[which]
sort_by = "none"

چند تا ترفند مدیریت کانفیگ

پروفایل دوم برای تست

terminal
bash

# یه کانفیگ جدا بدون دست زدن به اصلی
YAZI_CONFIG_HOME=~/.config/yazi-test yazi

وقتی کانفیگ خراب می‌شه

terminal
bash

# لاگ رو روشن کن و اجرا کن
YAZI_LOG=debug yazi

# بعد از خروج، لاگ رو بخون
less ~/.local/state/yazi/yazi.log
⚠️TOML سخت‌گیره
اگه یازی بالا نیومد و ارور پارس داد، معمولاً یه کاما یا کروشه‌ی اضافه‌ست. TOML اجازه نمی‌ده هم prepend_keymap = [...] بنویسی و هم [[mgr.prepend_keymap]] برای یه بخش؛ یکی از دو سبک رو انتخاب کن.
🚀کانفیگت رو گیت کن
terminal
bash

cd ~/.config/yazi
git init && git add . && git commit -m "کانفیگ یازی من"
بعداً روی هر سیستم فدورای جدید فقط کافیه کلونش کنی و ya pkg install بزنی تا پلاگین‌ها هم برگردن.

منبع برای بررسی جزئیات و تغییرات نسخه‌ها: تنظیمات پیش‌فرض نسخه‌ی 26.9.1.

آموزش کار با Yazi برای توزیع‌های مختلف لینوکس کاربرد داره؛ مثال‌های نصب و تنظیم محیط با اولویت کاربری نوشته شدن که فدورا رو با تنظیمات پیش‌فرض نصب کرده. دستور نصب بسته‌ها و ابزارهای جانبی در توزیع‌های دیگه ممکنه متفاوت باشه.