فهرست سریع فصل‌ها
پیشرفتهفصل 13 از 20⏱ حدود 10 دقیقه

🎨تغییر تم Yazi و نصب Flavor

theme.toml، نصب flavor، آیکون‌ها و هماهنگی با ترمینال فدورا.

یازی دو لایه برای ظاهر داره: Flavor (پوسته‌ی آماده که کل رنگ‌بندی رو یک‌جا عوض می‌کنه) و theme.toml (تنظیمات ریز خودت که روی flavor سوار می‌شه).

سریع‌ترین راه: نصب یه Flavor

terminal
bash

# چند تا از محبوب‌ترین‌ها
ya pkg add yazi-rs/flavors:catppuccin-mocha
ya pkg add yazi-rs/flavors:catppuccin-macchiato
ya pkg add yazi-rs/flavors:dracula
ya pkg add yazi-rs/flavors:catppuccin-latte
~/.config/yazi/theme.toml
toml

[flavor]
dark  = "catppuccin-mocha"
light = "catppuccin-latte"

همین. یازی رو ببند و باز کن. فلیورها توی ~/.config/yazi/flavors/ ذخیره می‌شن.

دستکاری ریز با theme.toml

هر چیزی که توی theme.toml بنویسی، روی flavor غالب می‌شه. ساختار رنگ‌ها ساده‌ست: هر بخش می‌تونه fg، bg، bold، italic، underline و reversed داشته باشه.

~/.config/yazi/theme.toml
toml

[mgr]
cwd = { fg = "#7dd3fc" }

# فایل‌های انتخاب‌شده
marker_selected = { fg = "#a78bfa", bg = "#a78bfa" }
marker_copied   = { fg = "#fbbf24", bg = "#fbbf24" }
marker_cut      = { fg = "#f87171", bg = "#f87171" }

# ردیف زیر مکان‌نما
[indicator]
current = { fg = "#0b0f1a", bg = "#34d8d0", bold = true }
preview = { underline = true }

# شماره‌ی تب‌ها
[tabs]
active   = { fg = "#0b0f1a", bg = "#34d8d0" }
inactive = { fg = "#94a3b8", bg = "#1e293b" }

# نشانگر حالت پایین صفحه
[mode]
normal_main = { fg = "#0b0f1a", bg = "#34d8d0", bold = true }
select_main = { fg = "#0b0f1a", bg = "#a78bfa", bold = true }
unset_main  = { fg = "#0b0f1a", bg = "#fbbf24", bold = true }

[status]
sep_left  = { open = "", close = "" }
sep_right = { open = "", close = "" }

رنگ‌بندی بر اساس نوع فایل

theme.toml
toml

[filetype]
rules = [
	{ mime = "image/*", fg = "#fbbf24" },
	{ mime = "video/*", fg = "#f472b6" },
	{ mime = "audio/*", fg = "#f472b6" },
	{ mime = "application/{zip,gzip,x-tar,x-7z-compressed}", fg = "#c084fc" },
	{ url = "*.md",  fg = "#7dd3fc" },
	{ url = "*.rs",  fg = "#fb923c" },
	{ url = "*.sh",  fg = "#4ade80" },
	{ url = "*/",    fg = "#60a5fa", bold = true },   # پوشه‌ها
	{ url = "*",     fg = "#cbd5e1" },                 # بقیه (باید آخر باشه)
]
⚠️ترتیب مهمه
قاعده‌ی { url = "*" } باید آخرین مورد باشه، وگرنه فایل‌ها رو می‌گیره و قواعد بعدی برای فایل‌ها بی‌اثر می‌شن.

آیکون‌ها

theme.toml
toml

[icon]
prepend_dirs = [
	{ name = "Downloads", text = "󰉍", fg = "#89b4fa" },
	{ name = "Documents", text = "󰈙", fg = "#f9e2af" },
	{ name = ".git",      text = "G", fg = "#f38ba8" },
]

prepend_globs = [
	{ url = "*.toml", text = "T", fg = "#fab387" },
	{ url = "*.lua",  text = "L", fg = "#89b4fa" },
]

prepend_exts = [
	{ name = "rpm", text = "R", fg = "#3c6eb4" },   # نشان دلخواه برای rpm
]
💡آیکون‌ها رو کلاً خاموش کن
اگه Nerd Font نداری یا از آیکون خوشت نمیاد:
theme.toml
toml

[icon]
globs = []
dirs  = []
exts  = []
files = []
conds = [ { if = "dir", text = "/" } ]

هماهنگی با ترمینال فدورا

رنگ‌های یازی وقتی درست دیده می‌شن که ترمینالت True Color پشتیبانی کنه. تست کن:

terminal
bash

echo "$COLORTERM"      # ممکنه truecolor یا 24bit باشه

# تست پالت 256 رنگ؛ این تست به‌تنهایی True Color رو ثابت نمیکنه
awk 'BEGIN{for(i=0;i<256;i++)printf "\033[48;5;%dm  \033[0m%s",i,(i%16==15?"\n":"")}'

خالی بودن $COLORTERM به‌تنهایی نبود پشتیبانی رو ثابت نمیکنه؛ تنظیم‌کردن این متغیر هم قابلیت تازه‌ای به ترمینال اضافه نمیکنه. اول پشتیبانی ترمینال رو بررسی کن، بعد تنظیمات RGB مربوط به همون ترمینال رو در tmux اعمال کن.

ساخت flavor شخصی

  1. 1
    ساختار پوشه
    terminal
    bash

    mkdir -p ~/.config/yazi/flavors/my-theme.yazi
    cd ~/.config/yazi/flavors/my-theme.yazi
    # فایل‌های واقعی رو از قالب رسمی شروع کن؛ فایل XML خالی معتبر نیست
    # https://github.com/yazi-rs/flavor-template
    
  2. 2
    flavor.toml
    ساختارش مثل theme.toml هست؛ بخش‌هایی که تعریف نکنی از پیش‌فرض Yazi میان.
  3. 3
    tmtheme.xml
    این فایل رنگ هایلایت سینتکس پیش‌نمایش کد رو تعیین میکنه. از یه تم معتبر با مجوز مناسب استفاده کن و LICENSE-tmtheme رو هم نگه دار.
  4. 4
    فعالش کن
    theme.toml
    toml

    [flavor]
    dark = "my-theme"
    

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