پیشرفتهفصل 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ساختار پوشهterminalbash
mkdir -p ~/.config/yazi/flavors/my-theme.yazi cd ~/.config/yazi/flavors/my-theme.yazi # فایلهای واقعی رو از قالب رسمی شروع کن؛ فایل XML خالی معتبر نیست # https://github.com/yazi-rs/flavor-template - 2flavor.tomlساختارش مثل theme.toml هست؛ بخشهایی که تعریف نکنی از پیشفرض Yazi میان.
- 3tmtheme.xmlاین فایل رنگ هایلایت سینتکس پیشنمایش کد رو تعیین میکنه. از یه تم معتبر با مجوز مناسب استفاده کن و LICENSE-tmtheme رو هم نگه دار.
- 4فعالش کنtheme.tomltoml
[flavor] dark = "my-theme"