پست

تنظیم دائمی رزولوشن دلخواه در اوبونتو و KDE با xrandr و Xsetup

چگونه با cvt و xrandr یک حالت تصویری شناسایی‌نشده را اضافه کنیم و آن را از طریق Xsetup برای راه‌اندازی مجدد و صفحهٔ ورود SDDM در کوبونتو/KDE دائمی کنیم؛ به‌همراه نکاتی برای Plasma و Wayland مدرن.
فهرست مطالب
نشان KDE

خلاصه

  • با cvt یک modeline بسازید، آن را با xrandr --newmode و xrandr --addmode اضافه کنید و سپس روی خروجی نمایشگر فعالش کنید.
  • تغییرهای مربوط به نشست فعلی پس از راه‌اندازی مجدد از بین می‌روند و صفحهٔ ورود را هم اصلاح نمی‌کنند.
  • در KDE/Kubuntu که از SDDM استفاده می‌کند، همان دستورها را در Xsetup قرار دهید تا پیش از نمایش صفحهٔ ورود اجرا شوند.

بعد از مهاجرت از GNOME/Unity به KDE، ‏SDDM پنل اولتراواید من را درست تشخیص نمی‌داد و به‌جای ۲۵۶۰×۱۰۸۰ روی Full HD می‌ماند. پیش‌تر هم در اوبونتو با مانیتور قدیمی‌تری که رزولوشن بومی‌اش در تنظیمات نمایش داده نمی‌شد، با مشکل مشابهی روبه‌رو شده بودم.

راه‌حل در هر دو مورد یکسان است: با xrandr یک حالت تصویری سفارشی بسازید و با Xsetup آن را دائمی کنید؛ از جمله برای صفحهٔ ورود.

۱. نام خروجی نمایشگر را پیدا کنید

حالت‌های تصویری به یک کانکتور مشخص متصل می‌شوند. فهرست آن‌ها را ببینید:

1
xrandr

خطی را پیدا کنید که connected دارد؛ برای نمونه HDMI-2، DP-1 یا eDP-1. در ادامه از HDMI-2 استفاده شده است؛ آن را با نام خروجی خودتان جایگزین کنید.

۲. با cvt یک modeline بسازید

برای ۲۵۶۰×۱۰۸۰ با نرخ ۵۰ هرتز:

1
cvt 2560 1080 50

این دستور یک خط Modeline چاپ می‌کند. هنگام ارسال آن به xrandr، واژهٔ Modeline را حذف کنید. در مورد من، مقادیر چنین بودند:

1
2
3
xrandr --newmode "2560x1080_50.00" 188.75 2560 2712 2976 3392 1080 1083 1093 1114 -hsync +vsync
xrandr --addmode HDMI-2 2560x1080_50.00
xrandr --output HDMI-2 --mode 2560x1080_50.00 --rate 50

اگر صفحه سیاه شد یا چشمک زد، نرخ نوسازی پایین‌تر را امتحان کنید (cvt 2560 1080 45) یا برای بعضی LCDها از cvt -r برای reduced blanking استفاده کنید. همچنین می‌توانید آزمایش را با یک بازگشت امن انجام دهید:

1
xrandr --output HDMI-2 --mode 2560x1080_50.00 && sleep 5 && xrandr --output HDMI-2 --auto

۳. آن را دائمی کنید (از جمله برای صفحهٔ ورود)

تغییرهای xrandr فقط تا پایان نشست فعلی X باقی می‌مانند. همچنین پیش از مدیر نمایش اجرا نمی‌شوند؛ بنابراین SDDM ممکن است همچنان با رزولوشن نادرست نمایش داده شود.

‏SDDM پیش از نمایش صفحهٔ ورود، Xsetup را با دسترسی root اجرا می‌کند. همان سه دستور را در آن قرار دهید.

KDE 5 / SDDM (کوبونتو ۱۸٫۰۴ و جدیدتر):

/usr/share/sddm/scripts/Xsetup

نمونهٔ محتوای فایل (اگر shebang یا توضیحی از قبل وجود دارد، آن را حفظ کنید):

1
2
3
4
5
6
#!/bin/sh
# Xsetup — پیش از نمایش پنجرهٔ ورود با دسترسی root اجرا می‌شود

xrandr --newmode "2560x1080_50.00" 188.75 2560 2712 2976 3392 1080 1083 1093 1114 -hsync +vsync
xrandr --addmode HDMI-2 2560x1080_50.00
xrandr --output HDMI-2 --mode 2560x1080_50.00 --rate 50

فایل را با sudo ویرایش کنید، سپس سیستم را راه‌اندازی مجدد کنید و هم صفحهٔ ورود و هم دسکتاپ را بررسی کنید.

مسیرهای KDE / KDM قدیمی‌تر:

1
2
3
/etc/kde4/kdm/Xsetup
/etc/kde3/kdm/Xsetup
/etc/kde/kdm/Xsetup

جایگزین‌ها وقتی فقط به نشست دسکتاپ نیاز دارید

اگر اصلاح صفحهٔ ورود ضروری نیست:

روشماندگاریتوضیح
~/.xprofile یا اسکریپت autostartنشست X شماساده است؛ صفحهٔ ورود تغییر نمی‌کند
/etc/X11/xorg.conf.d/10-monitor.confکل سرور Xmodeline را در بخش Monitor می‌گذارید؛ پایدارتر اما پرجزئیات‌تر
گزینهٔ Apply Plasma Settings در SDDMصفحهٔ ورود (Plasma 5/6)وقتی حالت تصویری از قبل وجود دارد، بهترین انتخاب نخست برای چیدمان/مقیاس‌بندی است

رفع اشکال

  • xrandr: cannot find mode — پیش از --addmode، حالت را با --newmode بسازید و دقیقاً همان نام حالت را استفاده کنید.
  • خطای BadMatch در --addmode — زمان‌بندی برای پنل یا کابل شما نادرست است، یا EDID مشکل دارد. نرخ نوسازی دیگری را امتحان کنید یا modeline را از گزارش Xorg / EDID مانیتور بگیرید.
  • نام کانکتور نادرست است — نام‌ها درایورهای GPU متفاوت‌اند و بین Wayland و X11 هم می‌توانند فرق کنند. همیشه آن را در یک نشست X11 با xrandr بخوانید.
  • پس از ورود درست است اما صفحهٔ ورود نادرست است — اسکریپت نشست شما اجرا شده، ولی Xsetup اجرا نشده است. مطمئن شوید صفحهٔ ورود SDDM مبتنی بر X11 است و DisplayCommand هنوز به اسکریپت شما اشاره می‌کند.

وقتی حالت تصویری پس از راه‌اندازی مجدد و در صفحهٔ ورود باقی ماند، کار تمام است؛ نمایشگر اولتراواید (یا آن پنل قدیمی سرسخت) با رزولوشنی که باید از ابتدا می‌داشت.