دسکتاپ Wayland برای لینوکس با طراحی skeuomorphic
آدرس مقاله: https://github.com/fyzugx/DEsk آدرس نظرات: https://news.ycombinator.com/item?id=50103338 امتیاز: 261 # نظرات: 107
نسخه 0.1.2 (BETA) -- نسخه 1.1، اولین نسخه عمومی، با اصلاحات و نصب کننده برای فدورا. RELEASE-NOTES.md را ببینید.
من یک سرور Discord ایجاد کرده ام! همچنین می توانید اشکالات را گزارش کنید و ایده هایی را برای ویژگی های جدید در اینجا ارسال کنید! لینک: https://discord.gg/xR5f7Xs49
DEsk یک محیط D esktop E و میز در یک کلمه است -- نامی که از جامعه Reddit آمده است. قبلا DeskWM نامیده می شد: دستورات اکنون desk، desk-session، desk-setting و غیره هستند، و آنچه برای DeskWM تنظیم شده است (تنظیمات، داده های آن، متغیرهای DESKWM_*) خود به خود منتقل می شود.
یک دسکتاپ Wayland برای لینوکس در شکل واقعی اسکئومورفیسم - همان چیزی که iOS 6 داشت، که در آن همه چیز روی صفحه نمایش داده می شود تا شبیه چیز واقعی باشد. در اینجا دسکتاپ یک میز است.
پنجره ها ورق های کاغذی روی میز گردو هستند. داک یک کشو است، برنامههای شما در کلاسورها در یک قفسه کتاب پشت میز قرار میگیرند، اعلانها در صندوق پستی میرسند، و کنترلهای سیستم پنلی هستند که در پشت میز تعبیه شده است. اتاق ردیابی اشعه ای است و یک چراغ رومیزی همه آن را روشن می کند.
وضعیت: بتا DEsk هر روز بر روی ماشینهای نویسندهاش استفاده میشود و به دقت بررسی شده است (به docs/ARCHITECTURE.md، بخش 9 مراجعه کنید)، اما این اولین نسخه آن است: انتظار لبههای ناهموار را داشته باشید و انتظار داشته باشید همه چیز تغییر کند. تنظیمات و داده های شما به جلو منتقل می شود.
آخرین نسخه را از صفحه Releases دانلود کنید و آن را باز کنید (یا این مخزن را شبیه سازی کنید). سپس در پوشه آن خط مربوط به سیستم خود را اجرا کنید:
اوبونتو 24.04 / 26.04 (و Linux Mint، Pop!_OS)
سپس از سیستم خارج شوید و DEsk را در صفحه ورود انتخاب کنید.
گزینه های بیشتر، ساخت با دست و اجرای DEsk در یک پنجره در زیر ساخت و اجرا هستند.
هیچ چیز در اینجا نماد چیزی روی میز نیست. همانطور که در اسکئومورفیسم واقع گرایانه iOS 6، هر کدام به گونه ای ترسیم می شوند که شبیه چیز واقعی باشند - مواد آن، نور روی آن، سایه آن و فرسودگی استفاده.
DEsk قرار است به عنوان یک دسکتاپ کامل مانند GNOME یا KDE نصب شود، بنابراین برای هر کاری که میز دارد یک برنامه استاندارد انتخاب می کند: یک ترمینال، یک مرورگر وب، یک مدیر فایل و یک ویرایشگر متن. چیزهای کشو و Super+Enter آنها را باز کنید. برای هر شغل، اولین موردی که وجود دارد:
DEsk میز را می کشد. کار انجام شده روی آن با نرم افزار رایگانی که از قبل وجود دارد انجام می شود. با قرض گرفتن به کامل می رسد و بین آنچه می سازد و چیزی که قرض می گیرد، خط محکمی را حفظ می کند:
قانون برای موارد جدید: فقط آنچه را که به عنوان بخشی از اتاق ترسیم شده است یا فقط در داخل کامپوزیتور می توان انجام داد، بسازید. در غیر این صورت یک برنامه موجود را پیدا کنید که همانطور که تحت یک wlroots compositor کار می کند، و چیزی را فقط به عنوان آخرین راه حل بسازید. تنظیمات سیستم و kcmshell KDE (که خارج از پلاسما کار نمیکنند)، دیالوگهای X11 فقط Xfce و MATE، و صفحه نمایش و دیالوگهای ظاهری Xfce (که به xfsettingsd نیاز دارند و xfsettingsd GSettings را با پیشفرضهای Xfce بازنویسی میکند که در هنگام شروع استفاده نمیشوند) هستند.
install-desktop.sh با apt، dnf، pacman و zypper کار می کند. در دبیان و اوبونتو همین مجموعه نیز یک بسته است: equivs-build packaging/debian/desk-desktop.equivs.
برنامههای کلاسیک GTK Xfce و MATE در درجه اول قرار میگیرند زیرا پنجرههایی هستند که کاغذ میز برای آن بریده میشود - نوار منو، ابزارهای ساده و سند - و سبک هستند، سریع شروع میشوند و همانطور که هستند در Wayland اجرا میشوند. GTK 3 از طریق پروتکل تزیین سرور KDE از compositor فریم خود را می خواهد، بنابراین آنها روی کاغذ DEsk با عنوان چاپ شده و بدون نوار عنوان GTK قرار می گیرند. ویندوز با نوار هدر (برنامه های گنوم، فایرفاکس) قاب خود را در یک حاشیه کاغذ نگه می دارد.
تنظیمات پوسته (تنظیمات میز) تنظیمات خود DEsk - پنجرهها، اندازه اشیاء، میزان ترسیم شده، زبان، ساعت، تاریخ تولد شما و آب و هوا، زمانی که صفحه خاموش میشود و آیا میز قفل میشود - در برگه Shell و در برگه System ردیفهایی که برنامههای قرضگرفته شده را باز میکنند (شبکهها، دیسکها، دیسکهای پیشفرض، دیسکهای پیشفرض، دیسکهای چاپی دیگر، صدا، استفاده از دیسک، نمایه های رنگی، روش ورودی، تاریخ و زمان، نام و تصویر شما، کاربران، گذرواژه ها و کلیدها، افزودن و حذف برنامه ها، نسخه های پشتیبان، کاری که کامپیوتر انجام می دهد، و نمایه تجربه)
، ابتدا برنامه هایی با ظاهر کلاسیک، هر کدام با نماد برنامه و نام آن -- "Displays (wdisplays)" -- بنابراین می توانید ببینید تنظیمات چه کار می کند. ردیفی که برنامه آن نصب نشده است با بسته ای که باید نصب شود، با نام این توزیع چاپ می شود. دو زبانه روی برگه مانند زبانه های فهرست پوشه قرار دارند و در هر جیب یک پد سیمی با یک ورق به هر قسمت از فرم و یک یادداشت چسبنده در لبه هر برگه وجود دارد. گرفتن یادداشت برگه ها را از روی سیم به سمت آن می چرخاند، مانند تقویم رومیزی (صفحه بالا و پایین نیز).
با تغییر زبانه (یک کلیک، Ctrl+Tab یا Ctrl+Page Up/Down) صفحه دیگر را از زیر به بیرون از پوشه می کشد و با باز شدن پنجره، صفحه به همان صورت بالا می آید.
DEsk که بهعنوان یک جلسه (جلسه میز، از صفحه ورود به سیستم) شروع میشود، به D-Bus و systemd میگوید که صفحه نمایش آن کجاست، ورودیهای شروع خودکار XDG را اجرا میکند (با حذف مواردی که با آن مبارزه میکنند، مانند یک شبح اعلان دیگر یا یک قفل صفحه X)، و یک عامل احراز هویت، کلید شبکه، برنامهای که برای هر کدام از روشهای ورودی نصب میشود، راهاندازی میکند. نامزدهای روش ورودی زیر متن در حال نوشتن - در پنجره برنامه مانند صفحات خود میز - قرار می گیرند و کلیدها را در همان جایی که هستند رها می کنند.
وقتی کسی پشت میز نباشد صفحه را خاموش میکند (به طور پیشفرض اول قفل میشود)، به پخشکنندههای ویدیو اجازه میدهد آن را روشن نگه دارند، و مدیریت خروجی wlr (wdisplays، wlr-randr، kanshi) را به یاد میآورد، و ترتیب یک ابزار نمایش را برای هر مجموعه صفحهنمایش به خاطر میآورد. خروج از سیستم، راهاندازی مجدد و خاموش کردن از هر پنجره میخواهد ابتدا بسته شود، بنابراین برنامهای با کار ذخیرهنشده میتواند درباره آن سؤال کند. پنجره ای که بسته نمی شود آن را بالا نگه می دارد و در جلو قرار می گیرد.
تنظیمات پوسته همچنین آنچه را که فقط یک کامپوزیتور Wayland میتواند تنظیم میکند: ضربه زدن برای کلیک کردن، پیمایش طبیعی، سرعت اشارهگر و دکمههای سمت چپ (از طریق libinput)، طرحبندی صفحهکلید، طرحبندی دوم و کلیدهایی که به آن تغییر میکنند، و کلید تکرار -- یکباره روی چیزی که به برق متصل است اعمال میشود.
میزان ترسیم میز نیز یک تنظیم است، Graphics: Ultra (در جایی که GPU میتواند اتاق را دقیقتر و عریضتر ردیابی کند، و در حین حرکت هیچ چیز درشتتر کشیده نشود)، بالا (همانطور که ساخته شده است، پیشفرض)، متوسط، پایین و بازگشت دوبعدی - برای دستگاهی بدون GPU یا ماشین مجازی که روی CPU آن رندر میشود: بدون سایهها، هیچ چیز در اتاق حرکت نمیکند، هیچ چیز محو میشود، یکبار ردیابی شد، کوچک و ساده. در دو هسته CPU بدون GPU، اولین شروع از نزدیک به ده دقیقه به حدود یک ربع دقیقه و یک فریم از 2 میلیثانیه به 0.5 میلیثانیه میرسد.
نصب کننده نگاهی اجمالی به دستگاه می اندازد (desk-index --suggest : گرافیک یا پردازنده، برای چند ثانیه، رشته ها و حافظه، و مدت زمانی که پردازنده طول می کشد تا یک صفحه کاغذ را بکشد) و سطح آن را به عنوان پیش فرض دستگاه انتخاب می کند ( /etc/xdg/desk/shell.conf). انتخاب خود هر کاربر برنده است.
جایی که صفحه توسط پردازنده کشیده میشود - بدون GPU، یک ماشین مجازی بدون 3D، یک GPU بدون درایور - میز به صورت بازگشتی دوبعدی اجرا میشود، مگر اینکه خودتان سطحی را انتخاب کنید، و چنین میگوید: یک حرف در صندوق پست (درایورهای گرافیک یا تنظیمات ماشین مجازی را بررسی کنید) و یک خط قرمز در کنار Graphics در تنظیمات پوسته. 2D Fallback همان میز است که جلوههایش خاموش است، نه میز دوم، اتاق آن در یک پیکسل یک نمونه ترسیم شده و نرم شده است.
و اولین شروع، که اتاق را از هیچ ردیابی می کند، نامه ای در وسط میز باقی می گذارد که می گوید ممکن است یک یا دو دقیقه، بیشتر در برخی از ماشین ها طول بکشد، و میز را می توان در عین حال استفاده کرد.
این به معنای سبک ماندن در ماشین های قدیمی است. اندازهگیری شده روی دستگاهی که تقریبا سرعت لپتاپ 2010 را نگه میدارد (هر کدام یک چهارم هسته روی دو هسته، 2 گیگابایت، بدون GPU برای اتاق): ورود به سیستم بعدی، میز را در کمتر از نیم ثانیه نشان میدهد و چراغ را در 1.4 ثانیه روشن میکند. اولین مورد، که باید اتاق را روی پردازنده ردیابی کند، به جای یک دقیقه و نیم در تاریکی، نگاه اول نرم و نور را در هفت ثانیه نشان می دهد. تا کردن یک ورق 5 میلیثانیه بر فریم در Low هزینه دارد. اتاق ردیابی شده در میان بهروزرسانیها نگه داشته میشود و کاغذ در حرکت با سطح ریزتر یا درشتتر کشیده میشود (کل در بالا، نصف در پایین).
برنامههای روی میز نیز برای آن طراحی شدهاند: نمادهای خود DEsk که شبیه چیزهای واقعی روی میز هستند، روشی که iOS 6 آنها را ترسیم کرده است - پوشههای کارت Manila با کاغذهایی در آنها، یک صفحه تایپ شده با گوشه آن پایین، یک نامه امضا شده با جوهر آبی، یک دفتر کل، اسلایدها در عکسهای خود، یک فیلم ضبط شده از پایههای آن، تخته سنگ، یک کارتن نواری برای آرشیو، یک دسته کارتهای پانچ شده برای یک برنامه، یک قطعه چوبی برای فونت، یک سطل زباله سیمی که از آن میبینید، یک کره برنجی برای شبکه، یک درایو در جعبه آلومینیومی آن - با دانههای کاغذ، کارت، چوب و
d فلز برس خورده و سایه هایی که ایجاد می کنند. و یک تم GTK از کاغذ، جوهر و برنج. آنها در یک لایه dconf از خود DEsk روی لایه کاربر قرار می گیرند، بنابراین دسکتاپ دیگری در همان دستگاه ظاهر خود را حفظ می کند.
هنگامی که چیزی روی میز گیر می کند: Ctrl+Alt+Del دوبار همه چیز را از میز کنار می گذارد و دوباره همه را می کشد (پنجره ها به همان شکلی که هستند می مانند). سه بار از سیستم خارج می شود بازنشانی desk-ctl و خروج از سیستم desk-ctl همین کار را از ترمینال یا VT دیگری انجام می دهند.
desk-index دستگاه را بر اساس آنچه میز از آن میخواهد رتبهبندی میکند، روشی که Index تجربه ویندوز انجام میدهد: پردازنده، حافظه، گرافیک دوبعدی (نقاشی خود میز)، گرافیکهای سهبعدی (سایهزن اتاق، با CPU بررسی میشود) و دیسک، هر کدام 1.0-9.9، روی مترهای برنجی. امتیاز پایه کمترین است. desk-index --text به همین صورت در ترمینال چاپ می شود.
ساده ترین راه، نصب کننده توزیع شما (در زیر) است که همه چیز را به ارمغان می آورد. برای اینکه خودتان آن را بسازید:
با کاهش CPU، GPU و حافظه اندازهگیری میشود (CPUQuota و MemoryMax با سیستم اجرا میشود، مجموعه وظایف؛ تودرتو، 1440x900، همان عقربه در هر اجرا حرکت میکند). پس از ردیابی اتاق، حتی یک هسته بدون پردازنده گرافیکی هیچ فریمی افت نکرد. یک فریم حدود 2 میلی ثانیه قیمت دارد. فقط اولین ورود به سیستم، اتاق را ردیابی می کند: 6 تا 9 ثانیه در یک GPU، حدود 10 دقیقه در دو هسته بدون هسته (سپس در حافظه پنهان ذخیره می شود).
به عنوان یک جلسه که از صفحه ورود انتخاب شده است (GDM، SDDM، LightDM)، از نصب کننده سیستم خود استفاده کنید (نصب). هر چهار گزینه یکسان را انتخاب می کنند:
sh scripts/install_session.sh مورد مناسب را به تنهایی انتخاب می کند و آنچه را که می گوید در ~/.local/state/desk/install.log نگه می دارد. هر نصب کننده همین کار را انجام می دهد (مشتقاتی مانند Mint، Pop!_OS، EndeavourOS، Manjaro و Nobara شناخته می شوند): بسته ها، نسخه انتشار در نصب-نصب، فایل PAM، ورودی ورود به سیستم، و حذف نام قدیمی DeskWM (پس از درخواست). هر برنامهای که تب System Settings Shell باز میشود، نصب میشود، -بدون برنامه یا نه، و در پایان میز تنظیمات - فهرستی را که هر ردیف باز میکند (یا بستهای که میآورد) را بررسی کنید.
در توزیعهای دیگر، نیازمندیها را نصب کنید و scripts/install.sh را اجرا کنید. یا از یک TTY: desk-sesion .
برای به روز رسانی، کپی جدید را دریافت کنید و نصب کننده را دوباره به همان روش اجرا کنید (می گوید: "این به روز رسانی می کند"): آنچه نصب شده جایگزین می شود، آخرین بیلد دوباره استفاده می شود (یا زمانی که نمی تواند دوباره ساخته شود)، و تنظیمات شما و اتاق ردیابی شده باقی می مانند. همه چیزهایی که نصب کننده می گوید در ~/.local/state/desk/install.log (آخرین اجرا) نیز نگهداری می شود - چیزی که باید به آن نگاه کرد، یا ارسال کرد، اگر در قسمتی از مسیر متوقف شد.
کپی ساخته شده برای عبور، دارای SHA256SUMS است، و نصب کننده هر فایلی را قبل از ساخت بررسی می کند: یک کپی آسیب دیده می گوید کدام فایل اشتباه است و متوقف می شود (دوباره آن را کپی کنید؛ اگر نسخه جدیدی نیز آسیب دیده است، به حافظه یا دیسک دستگاه مشکوک شوید - memtest86+). یک زبان ژاپنی مبدل Mozc را در میان برنامه های پیشنهادی دریافت می کند. خود IBus برای همه نصب میشود، اما فقط برای زبانهایی اجرا میشود که از طریق یک روش ورودی تایپ شدهاند، یا زمانی که یکی راهاندازی میشود.
اولین شروع در یک اندازه صفحه نمایش جدید کمی صرف ردیابی پرتوی اتاق می شود، روی GPU صفحه نمایش با آن ترسیم می شود: ابتدا میز، سپس قفسه کتاب، کنترل پنل و صندوق پست، هرکدام به محض اینکه عکسشان قرار می گیرند به آن ها برمی گردند، و در آخر فیلم های دوربین به سمت آنها حرکت می کند (تا زمانی که یک فیلم تمام شود، حرکت به نمای آن یک برش است). هر قسمت همانطور که انجام می شود در کش ذخیره می شود، بنابراین اولین برش کوتاه شروع به جایی می کند که متوقف شده است.
آنچه DEsk هنگام اجرا می گوید در ~/.local/state/desk/session.log (جلسه قبل در session.log.old) نگهداری می شود. میز آن: اتاق: خطوط نشان میدهند که اتاق روی چه چیزی ردیابی شده است و هر قسمت چقدر طول میکشد -- چیزی که اگر شروع کند باشد ارسال میشود. یک GPU یک بار، در یک فرآیند فرزند، قبل از اینکه اتاق روی آن ردیابی شود، امتحان می شود. یکی که شکست میخورد میگوید چرا (آزمایشی ناموفق بود: ...)، و پردازنده به جای آن اتاق را ردیابی میکند - با کیفیت بالا حتی در جایی که Ultra انتخاب شده است، Ultra یک GPU برای ردیابی است.
سریعترین راه: این را در ترمینال اجرا کنید (هر دسکتاپ یا کنسول -- DEsk نیازی به راه اندازی ندارد) و فایلی را که می نویسد، ~/desk-report.txt ضمیمه کنید:
نسخه DEsk، لینوکس، کارت گرافیک و درایور شما، گزارش آخرین جلسه و خرابی DEsk را با نام کاربری، پوشه خانه، نام دستگاه و آدرس های شبکه شما جمع آوری می کند. قبل از ارسال آن را کامل بخوانید. همچنین بگویید چه کردید و چه اتفاقی افتاد.
بدون آن (میز قدیمیتر یا نصب نشده)، با دست وصل کنید:
هر دو متن ساده هستند. قبل از ارسال آنها را نگاه کنید. اگر میز گیر کرده است، بازنشانی desk-ctl از یک ترمینال (یا VT دیگر) دوباره همه چیز را بدون بستن پنجرهها ترسیم میکند.
DEsk با کمک هوش مصنوعی ساخته شده است. بسیاری از کدها و مستندات توسط کلود (مدل هوش مصنوعی آنتروپیک) و تحت هدایت نویسنده نوشته شده است: نویسنده تصمیم گرفت که DEsk چگونه باشد و چگونه ظاهر شود، آن را روی ماشینهای واقعی آزمایش کرد و آنچه را که وارد شد بررسی کرد. از گزارشها و وصلهها هم استقبال میشود.
متن اصلی (انگلیسی)
Wayland desktop for Linux with skeuomorphic design
Article URL: https://github.com/fyzugx/DEsk Comments URL: https://news.ycombinator.com/item?id=50103338 Points: 261 # Comments: 107