MTP Ecosystem
یک سیستمعامل شخصی برای دسکتاپ خودم — مدیر پنجره، صفحه قفل، والپیپر، تنظیمات، ویجت و ترمینال، همه به Rust

دسکتاپ لینوکس خودم را با چیزی که نوشتم جایگزین کردم. این صفحه نتیجه آن است.
چیست
بیشتر پروژههای «دسکتاپ سفارشی لینوکس» یک کوه فایل کانفیگ هستند. این یکی نیست — برنامه است.
یک مدیر پنجره هست. یک صفحه قفل هست که رمز واقعی را از طریق PAM میپرسد — همان سیستمکالی که توزیعهای لینوکس استفاده میکنند، پس با حسابهای کاربری واقعی کار میکند. یک موتور والپیپر هست. یک اپلیکیشن تنظیمات با رابط گرافیکی هست. یک ترمینال هست. و ویجتها و یک لانچر هست که روی یک سوکت محلی با هم حرف میزنند.
با هم، چیزی شبیه سیستمعامل میشوند که هر روز استفاده میکنم، و روی همان پشته واقعی کامپوزیتور Wayland مینشستد — نه جایگزین کرنل یا درایور گرافیک.
چه کار میکند
- مدیر پنجره روی Smithay، کتابخانه مرجع کامپوزیتور Wayland، که مستقیم با DRM/GBM حرف میزند و برای هرچه GPU میکشد یک رندرکننده wgpu دارد.
- صفحه قفلی که واقعاً قفل میکند. تأیید رمز از طریق PAM — نه مقایسه با یک رشته ذخیرهشده — بههمراه کمنور کردن صفحه و مدیریت سشن.
- موتور والپیپر که پسزمینهها را ترکیب میکند و میتواند بدون بارگذاری دوباره فریمبافر در هر فریم آنها را انیمیت کند.
- اپ تنظیمات با GTK4/libadwaita، تا کاربری بهجای ویرایش فایل متنی انجام ندهد.
- ترمینال RTL — متن فارسی، رندر و ورودی راستبهچپ، که اکثر ترمینالها بد از پسش برمیآیند.
- ویجتها و لانچر با یک پروتکل سوکت محلی مشترک.
اعداد
| ۹۶٬۵۰۰ | خط Rust |
| ۳۲۶ | فایل سورس |
| ۴ | باینری در فضای کاری اصلی |
| ۱ | فضای کاری جدا برای افزونه مرورگر |
چرا ارزش دیدن دارد
دلیل نوشتن یک دسکتاپ این است که دیگر کاربر ابزارها نیستی و میشوی کسی که باید با پیامدهایش زندگی کند. درست کردن PAM یعنی قبول کنی صفحه قفلت الان یک مؤلفه امنیتی است، پس یک اشتباه پیامد واقعی دارد — و همین طرز نوشتن کدت را عوض میکند. کار با DRM/GBM یعنی قبول کنی کامپوزیتور هم وابستگی سختافزار دارد و وابستگی زمانی، و کامپوزیتوری که یک فریم را از دست بدهد قفل میشود.
این پروژه هم جایی است که بیشتر از همه مجبور شدم برای دیگران طراحی کنم: تنظیمات باید بدون مستندات قابل کشف باشد، و پروتکل سوکت ویجتها باید برای برنامهای که هنوز ننوشتهام معنا داشته باشد.
وضعیت فعلی
- ماشین خودم است، نه یک توزیع. تلاش نکردم روی سختافزاری که مال خودم نیست کار کند، پس نمیتوانم بگویم چقدر قابلحمل است.
- مدیریت باتری عملاً غایب است. پروفایلهای مصرف برق وصل نشدهاند؛ روی لپتاپ این یک محدودیت واقعی است.
- افزونه Chromium فضای کاری جداست و کمپیشرفتهترین بخش کار است.
فاصله این کار تا یک محصول دسکتاپ تمامشده زیاد است، و راحتتر است این را صریح بگویم تا اینکه وانمود کنم کار تمام شده.

