مشکل مانیتورهای HiDPI و یک سری تنظیمات

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

مانیتورهای با رزولوشن بالا (4k) و اصطلاحا HiDPI کمی زودتر از پیشرفت های نرم افزاری سر و کلشون پیدا شد. و مدتی طول کشید ابتدا سیستم عامل ها و بعد کم کم نرم افزارها خودشون رو بروز کنن تا بتونن از پس این رزولوشن بر بیان.

با اینکه طی چند سال گذشته خیلی از نرم افزارها خودشون رو به این قضیه رسوندن، ولی هنوزم که هنوزه یک سری مشکلاتی برای نمایش توی این مانیتورها وجود داره.

مانیتور لپتاپ من 15.6 اینچی است با رزولوشن 4k. تا همین چند وقت پیش داشتم از رزولوشن پایین تری استفاده میکردم. تا اینکه دیگه تصمیم گرفتم وقتشه 4k رو هم برای استفاده روزانه تجربه کنم. باید بگم که بی نظیره! 

من از دسکتاپ Gnome Shell (در زمان نوشتن، نسخه ۴۴) روی Manjaro و با رابط Wayland استفاده میکنم. رزولوشن 4k برای این اندازه مانیتور زیاده و نرم افزارها بسیار ریز خواهند شد. بنابراین توی تنظیمات گنوم، scaling رو روی ۲۰۰٪ میگذارم تا اندازه منطقی ای داشته باشم.

ولی داستان از اینجا شروع میشه...

البته قبلش بگم که ممکنه در سیستم شما طور دیگه ای باشه. باید خودتون تست کنید، بررسی کنید، و متناسب با سیستم خودتون عمل کنید. کافیه کمی جست و جو و تلاش کنید!

مشکلات

من متاسفانه به یک بیماری مبتلا هستم که اپلیکیشن های QT رو نصب نمیکنم! حتی VLC! ولی مجبورم manjaro-settings-manager رو که مبتنی بر QT است نگه دارم. با این تنظیمات رزولوشن، اپلیکیشن های QT خیلی ریز باز میشن. چون این گنوم هست که داره ۲۰۰٪ نشون میده، qt رو باید بهش بفهمونیم وقتی توی گنوم باز میشی از گنوم تبعیت کن.

دوم اینکه بوردر برنامه هایی مثل GIMP از این ۲۰۰٪ تبعیت نمیکنن. باید به اونها هم بفهمونیم که بزرگ شن!

سوم اینکه اندازه و تم ماوس هم بهم میریزه! توی یک اپلیکیشنی بزرگه، توی یکی دیگه کوچیک! و توی یه اپلیکیشنی هم اصلا یک تم دیگه ای داره!!!

راه حل ها

برای حل این مشکلات، یک راهش این هست که Fractional Scaling رو فعال کنیم. ولی به نظر من نکنیم بهتره. تجربتا میگم که مصرف CPU میره بالا. و برنامه هایی که از xWayland استفاده میکنن (مثل تلگرام یا گوگل کروم) هم تار میشن. بنابراین روی همین scaling پیشفرض میمونیم و سعی میکنیم این چندگانگی ها رو برطرف کنیم.

اولین کاری که میکنیم اینه که یک سری تنظیمات جدید به environment اضافه میکنیم. برای اینکار میبایست فایلی به نام .bash_profile رو در پوشه home کاربر خودتون بسازید و این محتویات رو داخلش بذارید:

#
# ~/.bash_profile
#

## hidpi Scaling
 export QT_AUTO_SCREEN_SCALE_FACTOR=1
 export QT_SCALE_FACTOR=1
 export QT_ENABLE_HIGHDPI_SCALING=1
 export GDK_SCALE=2

## Cursor size fix
 export XCURSOR_SIZE="44"
 export XCURSOR_THEME="Xcursor-breeze-snow"

سایز کرسر ماوس بستگی به تمی که استفاده میکنید داره. من xcursor-breeze رو دوست دارم که میتونید از مخازن آرچ نصبش کنید. اندازه پیشفرض کرسر ۲۴ هست. ولی من روی ۲۲ تنظیم کردم:

$ gsettings set org.gnome.desktop.interface cursor-size 22

و بعد در فایل بالا اندازه ۴۴ رو برای XCURSOR_SIZE میگذاریم.

برای اینکه همین تم کرسر توی اپلیکیشن های QT و اپلیکیشن هایی مثل mpv هم نشون داده بشه، باید یه حقه بزنیم! و تم دیفالت کرسر رو به تم مورد نظر خودمون تغییر بدیم. برای اینکار ابتدا این مسیر رو میسازیم: ~/.local/share/icons/default و یک فایل به نام index.theme توش درست میکنیم که محتوای زیر رو داشته باشه:

[Icon Theme]
Inherits=Xcursor-breeze-snow

و بعد با دستور زیر تم کرسر خودمون رو به این مسیر لینک میکنیم:

$ ln -s /usr/share/icons/xcursor-breeze-snow/cursors ~/.local/share/icons/default/cursors

در مورد کروم هم من با این دستور مشکل تار شدن نوشته ها رو برطرف کردم:

$ google-chrome-stable --disable-features=WaylandFractionalScaleV1

تنها مشکلی که باقی میمونه، اپلیکیشن های خیلی قدیمی ای هستن که از gtk-2 استفاده میکنن. متاسفانه gtk-2 از scaling پشتیبانی نمیکنه. بنابراین اگر همچین اپلیکیشن هایی دارید بهتره دنبال جایگزین بگردید...

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




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