🖥️دسکتاپ و لینوکس★ شاخصسال: ۱۴۰۴–۰۵در حال توسعه فعال

MTP Ecosystem

سوئیت کامل دسکتاپ با راست خالص — کامپوزیتور Wayland، دیسپلی منیجر، ترمینال، مدیریت فایل و مرورگر Tauri

MTP Ecosystem cover
راستWaylandWGPUDRM/KMSSmithayPAMIcedTauriWGSL

چیست

MTP یک پروژه نیست — یک اکوسیستم است. پنج کریت مستقل راستی که با هم یک محیط دسکتاپ کامل را می‌سازند؛ از لحظه روشن شدن سیستم تا تب مرورگری که آخر سر باز می‌کنید:

کریت نقش توضیح
mtp-login دیسپلی منیجر رندر مستقیم DRM/KMS، احراز هویت PAM، مدیریت سشن، والپیپر GPU و انیمیشن بوت
mtp-compositor کامپوزیتور Wayland شل پنجره‌ها، پنل/تسک‌بار، مدیریت والپیپر، تنظیمات، موتور رندر اختصاصی
mtp-term شبیه‌ساز ترمینال PTY + رندر گرید با GPU، پشتیبانی ANSI، تب‌ها و رابط مبتنی بر scene
mtp-files مدیریت فایل Iced + WGPU، I/O ناهمگام، کش آیکون، بردکرامب و پیش‌نمایش
mtp-chrome مرورگر وب شل Tauri 2 با موتور تم اختصاصی راست + هاست افزونه

همه‌چیز ۱۰۰٪ راست و بدون هیچ وابستگی C است — در README جمع‌بندی شده: حدود ۳۲۴ فایل، حدود ۸۵ هزار خط کد، حدود ۱۸۵ مگابایت RAM در حالت بیکار برای کل سوئیت، و بوت سرد تا دسکتاپ قابل استفاده در کمتر از ۱.۵ ثانیه.

چرا مهم است

  • GPU از بوت تا خاموشی. DRM/KMS برای صفحه لاگین، WGPU با شیدرهای اختصاصی WGSL برای کامپوزیتور، متن رندر شده با GPU و حتی انیمیشن‌های فیزیک‌محور فنری برای پنجره‌ها و فلای‌اوت‌ها.
  • کامپوزیتور Wayland واقعی. بر پایه smithay با مدیریت xdg-shell، به‌همراه شل و مدیریت پنجره، ورک‌اسپیس، اسنپ و کش تامبنیل.
  • دسکتاپ دوزبانه. متن رابط به هر دو زبان انگلیسی و فارسی ارائه می‌شود (فونت‌های JetBrains Mono و Vazirmatn) — تنها سوئیت دسکتاپی از این دست که برای فارسی‌زبان‌ها طراحی شده.
  • اسباب‌بازی نیست. هر کریت ساختار مستقل با مانیفست Cargo خودش دارد و کل ورک‌اسپیس با یک Cargo.lock ساخته می‌شود.

معماری (بر اساس سورس)

mtp-login (drm/, display/, auth/, render/): از طریق کریت‌های خام drm و gbm با DRM/KMS صحبت می‌کند، با PAM (pam-sys) احراز هویت می‌کند و مسیر اسرار را با zeroize پاک می‌کند. ساعت و تاریخ را با wgpu روی والپیپر می‌کشد — از جمله ویجت تقویم جلالی (jalali-date).

mtp-compositor (src/backend, shell/, desktop/, panel/, physics/, render/): قلب اکوسیستم. ماژول‌های شاخص:

  • physics/spring.rs — انتگرال‌گیر Spring1D/Spring2D نیمه‌ضمنی اویلر آگاه از جرم؛ باز/بسته شدن پنجره، ظاهر شدن فلای‌اوت و مقیاس هاور همگی با فیزیک فنری انیمیت می‌شوند و tension/damping/mass از تنظیمات hot-reload می‌شوند.
  • shell/ — مدیریت پنجره، ورک‌اسپیس‌ها، اسنپ (snap.rs)، انیمیشن پنجره و کش تامبنیل.
  • panel/ — تسک‌بار کامل: چیدمان، hit-test، فلای‌اوت، ویجت‌های باتری/ساعت/CPU و اجرای دستور.
  • render/engine و render/text — موتور رندر GPU اختصاصی با ردیابی damage و چیدمان متن روی GPU.
  • desktop/wallpaper — مدیریت والپیپر انیمیت‌شده (دیکد فرمت‌های تصویر با image).

mtp-term: ترمینال پشت PTY (portable-pty)، پارسر vte، گرید GPU با شیدر، تب‌ها و لایه session.

mtp-files: با iced نسخه ۰.۱۳ و wgpu، رندر آیکون با resvg، پایش فایل‌سیستم با notify، آرشیو zip/tar/flate2، هایلایت سینتکس با syntect و پیش‌نمایش مارک‌داون با pulldown-cmark و پیش‌نمایش PDF با pdf-extract.

mtp-chrome: شل Tauri 2 (src-tauri) که در core/ آن یک theme-engine، یک compatibility-patcher و یک native-host راستی وجود دارد که رابط کرومیوم را از بیرون تم می‌کنند — به‌همراه chrome-extension/ و فرانت‌اند ui/.

نقشه وابستگی‌ها

  • در سطح ورک‌اسپیس: wgpu 22، winit 0.30، image (png/jpeg/webp/gif/bmp)، tracing، anyhow
  • mtp-login: drm، drm-ffi، drm-fourcc، gbm، input-sys، xkbcommon، wgpu، cosmic-text، pam-sys، nix، zeroize، chrono، jalali-date، rand، image
  • mtp-compositor: smithay 0.7، wgpu، winit، portable-pty، cosmic-text، swash، fontdb، sysinfo، chrono، toml، serde، nix، egui، rfd، ctrlc
  • mtp-term: portable-pty، wgpu، winit، vte، fontdue، arboard، sled، reqwest (rustls)، tokio، unicode-width/bidi، arabic_reshaper
  • mtp-files: iced 0.13، dirs، freedesktop-icons، image، resvg/usvg، sysinfo، trash، notify، zip/tar/flate2، similar، syntect، pulldown-cmark، pdf-extract
  • mtp-chrome: tauri 2، tauri-plugin-log، serde/serde_json و کریت‌های داخلی theme-engine و compatibility-patcher

شروع کار

cargo build --release          # کل ورک‌اسپیس را می‌سازد

# mtp-login برای DRM به روت نیاز دارد:
sudo ./target/release/mtp-login

# کامپوزیتور (داخل یک سشن فعال هم می‌توانید تست کنید):
./target/release/mtp-compositor

پروژه شامل install.sh و یک اسکریپت دیپلوی برای نصب یک‌دستوری هم هست.

چه چیزی را ثابت می‌کند

ساخت یک جزء سیستمعامل از صفر چشمگیر است؛ ساخت پنج جزء که با هم حرف می‌زنند — با یک فلسفه رندر، خط لوله GPU و رابط دوزبانه مشترک — دسته‌ای دیگر از کار است. MTP کار راستی سطح سیستم را در DRM، Wayland، محاسبات GPU، مدیریت PTY و تجربه کاربری دسکتاپ نشان می‌دهد؛ بدون هیچ runtime سی و با هدف بوت زیر ۱.۵ ثانیه.

پروژه‌های بیشتر