تغییر تم در Gnome و Flatpak در ۲۰۲۳!

امین 3 اکتبر 2023 زمان خواندن: 2 دقیقه

مدتی از توسعه libadwaita میگذره که دست اندرکاران Gnome از اون برای تم دسکتاپ و اپلیکیشن هاشون استفاده میکنند. اگه اخیرا تم جدیدی رو دانلود کرده باشید و یا سیستم رو آپدیت کرده باشید حتما متوجه شدید که بعضی اپلیکیشن ها مثل files یا همون nautilus از تمی استفاده میکنن که پیشفرض سیستمه. این تم پیشفرض همون libadwaita است که غیر قابل تغییره. چون به صورت یک library نصب میشه و سیستم خاص خودش رو برای قالب بندی اپلیکیشن ها داره.

این درحالیه که سایر اپلیکیشن ها مثلا Gnome-terminal یا هر اپلیکیشن مبتنی بر GTK که دارید از تمی که خودتون در Gnome Tweaks مشخص کردید استفاده میکنه.

برای اینکه به یک راه حل جمع بندی شده در این مورد برسیم، ضمن نثار پیامهایی به روح توسعه دهندگان Gnome ادامه مطلب رو ببینید

تم اپلیکیشن ها در Gnome

با وجود سنگ اندازی های libadwaita ما میتونیم یک تم یکدست برای اپلیکیشنهامون داشته باشیم. برای اینکار تم رو که دانلود کردید در پوشه ~/.themes یا ~/.local/share/themes نصب کنید. سپس بسته به جایی که نصب کردید از دستور زیر استفاده کنید و به جای اسم و مسیر تم، تم خودتون رو قرار بدید:

$ rm -r ~/.config/gtk-4.0/
$ ln -sf ~/.themes/Colloid-Light/gtk-4.0/{assets,gtk.css,gtk-dark.css} ~/.config/gtk-4.0/

و بعد از طریق Gnome Tweaks (که حتما نصب شده) تم مورد نظرتون رو برای legacy Applications انتخاب کنید و یا از دستورهای زیر استفاده کنید:

$ gsettings set org.gnome.desktop.wm.preferences theme "Colloid-Light"
$ gsettings set org.gnome.desktop.interface gtk-theme "Colloid-Light"

حالا اگر یکبار logout/in کنید میبینید که تم اپلیکیشن ها یکدست شده.

منتها اینجا یک مشکلی داریم. و اون سوییچ بین دارک مود هست که دو دستگی پیش میاد. یعنی اپلیکیشن های libadwaita از دستور این سوییچ اطاعت نمیکنن (چون بهشون گفتیم که از کانفیگ ما استفاده کنن و نه libadwaita) و اپلیکیشن های دیگه تبعیت میکنند. یک راه بیشتر نداریم، یا از اول تم دارک رو در دستور بالا قرار بدیم یا تم لایت. باید بیخیال تغییر دارک‌مود بشیم.

و اما تم اپلیکیشن های Flatpak

راه اصولیش اینه که تم های مخصوص Flatpak رو از مخازن flatpak نصب کنید. برای اینکه ببینید چه تم هایی در مخازن وجود دارند از این دستور استفاده کنید:

$ flatpak search gtk3theme

و بعد با دستور زیر تم مورد نظرتون رو نصب کنید. (به جای adw-gtk3 اسم تم رو بگذارید)

$ flatpak install flathub org.gtk.Gtk3theme.adw-gtk3

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

$ sudo flatpak override --filesystem=$HOME/.themes

متاسفانه نمیشه به پوشه /usr/share/themes دسترسی بدیم و مجبوریم که تم رو در پوشه home کاربر خودمون نصب کنیم.

در مرحله بعد با دستور زیر مشخص میکنیم که اپلیکیشن های flatpak از چه تمی استفاده کنن:

$ sudo flatpak override --env=GTK_THEME=adw-gtk3

پیشنهاد من: استفاده از همین تم پیشفرض یعنی libadwaita و نصب تم adw-gtk3 برای legacy Applications و Flatpak تا سیستمی کاملا یکدست داشته باشیم که با سوییچ دارک‌مود هم مشکلی نداشته باشه.

در این لینک و این لینک اطلاعت بیشتری راجع به این موضوع هست که میتونید بررسی کنید.

اولین نفری باشید که دیدگاهی ارسال می کند!




حاصل سر و کله زدن های من با لینوکس