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

🖼️پیش‌نمایش تصویر، ویدیو و PDF در Yazi

پروتکل‌های تصویر، ffmpeg و poppler، ترمینال‌های سازگار روی فدورا.

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

چه چیزهایی پیش‌نمایش می‌شن؟

  • متن و کد: با هایلایت سینتکس داخلی (بدون نیاز به ابزار خارجی).
  • تصویر: رندر واقعی داخل ترمینال — نیاز به ترمینال سازگار.
  • ویدیو: فریم بندانگشتی با ffmpeg.
  • PDF: صفحه‌ی اول به‌صورت تصویر با pdftoppm از بسته‌ی poppler.
  • آرشیو: لیست فایل‌های داخل zip/tar/7z با 7-Zip.
  • JSON: فرمت‌شده و رنگی با jq.
  • SVG: با resvg تبدیل به تصویر می‌شه.
  • پوشه: لیست محتویاتش.

پیش‌نمایش تصویر: کدوم ترمینال روی فدورا؟

این مهم‌ترین بخش این فصله. نمایش تصویر توی ترمینال به «پروتکل گرافیکی» نیاز داره. یازی این‌ها رو پشتیبانی می‌کنه: Kitty graphics، iTerm2 inline، Sixel و به‌عنوان آخرین راه Überzug++.

ترمینالوضعیت تصویرنصب روی فدورا
Kitty✅ عالی (پروتکل خودش)sudo dnf install kitty
WezTerm✅ پروتکل تصویر داخلیطبق راهنمای نصب WezTerm
foot✅ خوب (Sixel)sudo dnf install foot
Ptyxisوابسته به نسخه و پشتیبانی Sixel؛ با ya env بررسی کنsudo dnf install ptyxis
Konsole✅ خوبsudo dnf install konsole
GNOME Terminal⚠️ بستگی به نسخه‌ی VTE دارهپیش‌فرض قدیمی
Alacrittyپروتکل تصویر داخلی ندارهÜberzug++ یا Chafa، بسته به محیط
🎩پیشنهاد من برای فدورا
kitty یکی از ترمینال‌هایی هست که Yazi برای نمایش تصویر پشتیبانی میکنه. با sudo dnf install kitty نصبش کن و یازی رو داخلش اجرا کن. سازگاری تصویر در tmux یا Zellij باید جدا بررسی بشه.

عیب‌یابی سریع تصویر

terminal
bash

# ببین یازی خودش چی تشخیص می‌ده
ya env

# کش پیش‌نمایش‌ها رو خالی کن (بعد از تغییر تنظیمات لازمه)
ya cache clear

# مطمئن شو ffmpeg و poppler و magick واقعاً نصبن
which ffmpeg pdftoppm magick resvg

تنظیمات پیش‌نمایش

~/.config/yazi/yazi.toml
toml

[preview]
wrap          = "no"          # شکستن خط در پیش‌نمایش کد: yes | no
tab_size      = 2             # عرض کاراکتر تب
max_width     = 1200          # حداکثر عرض تصویر کش‌شده
max_height    = 1200          # حداکثر ارتفاع
image_delay   = 30            # تأخیر قبل از ارسال تصویر (میلی‌ثانیه)
image_filter  = "triangle"    # nearest | triangle | catmull-rom | lanczos3
image_quality = 75            # کیفیت کش، بین ۵۰ تا ۹۰
  • image_delay: اگه موقع اسکرول سریع، ترمینالت کند می‌شه، این رو ببر بالا (مثلاً ۱۰۰). اگه ترمینالت قویه، بذارش ۰ تا تصویر آنی بیاد.
  • image_filter: هرچی پایین‌تر بری کیفیت بهتر ولی کندتر. triangle تعادل خوبیه.
  • بعد از تغییر max_width یا max_height حتماً ya cache clear بزن، وگرنه کش قدیمی استفاده می‌شه.

قواعد سفارشی پیش‌نمایش

می‌تونی برای هر MIME یا هر الگوی مسیر، پیش‌نمایش‌کننده‌ی دلخواه تعریف کنی:

yazi.toml
toml

[plugin]
prepend_previewers = [
  # فایل‌های CSV رو مثل متن نمایش بده
  { url = "*.csv", run = "code" },
  # برای مسیر شبکه‌ای کند، پیش‌نمایش رو خاموش کن
  { url = "/mnt/nas/**", run = "noop" },
]

prepend_preloaders = [
  { url = "/mnt/nas/**", run = "noop" },
]

این نمونه فقط از پلاگین‌های داخلی استفاده میکنه. اگه اسم یه پلاگین سفارشی رو توی run میذاری، اول باید همون پلاگین رو نصب و طبق راهنمای خودش تنظیم کرده باشی.

سرعت: پیش‌نمایش رو کاملاً خاموش کنم؟

اگه روی یه سرور ضعیف یا رزبری‌پای هستی یا اصلاً پیش‌نمایش تصویر نمی‌خوای:

yazi.toml
toml

[mgr]
ratio = [1, 4, 0]      # ستون پیش‌نمایش کلاً حذف می‌شه

# یا فقط تصویرها رو خاموش کن:
[plugin]
prepend_previewers = [ { mime = "image/*", run = "noop" } ]
prepend_preloaders = [ { mime = "image/*", run = "noop" } ]

[tasks]
preload_workers = 2    # روی سیستم ضعیف، همزمانی کمتر بهتره
🚀پنل پیش‌نمایش رو تمام‌صفحه کن
پلاگین رسمی toggle-pane بهت اجازه می‌ده با یه کلید پیش‌نمایش رو بزرگ یا مخفی کنی:
terminal
bash

ya pkg add yazi-rs/plugins:toggle-pane
keymap.toml
toml

[[mgr.prepend_keymap]]
on   = "T"
run  = "plugin toggle-pane max-preview"
desc = "بزرگ کردن پنل پیش‌نمایش"

منبع برای بررسی جزئیات و تغییرات نسخه‌ها: سازگاری پیش‌نمایش تصویر.

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