Вимкнути відключені дисплеї (xrandr)


17

У мене є ноутбук з двома відеовиходами, якими я користуюсь вдома (HDMI1, VGA1). Щоб увімкнути їх, я роблю це:

xrandr --output HDMI1 --right-of LVDS1 --auto
xrandr --output LVDS1 --off
xrandr --output VGA1 --right-of HDMI1 --auto

Коли я хочу йти на роботу, я беру свій ноутбук, але спочатку запускаю наступне:

xrandr --output VGA1 --off
xrandr --output LVDS1 --left-of HDMI1 --auto
xrandr --output HDMI1 --off

І тоді це залишає дисплей мого ноутбука активним, як і слід.

Проблема, з якою я стикаюсь, полягає в тому, що іноді я не пам'ятаю вимкнути два екрани перед тим, як взяти комп'ютер на роботу. Коли я приїжджаю, я спробувати різні комбінації --outputі , --offале я не можу отримати мій екран повторно включений.

Це вихід, який я запускаю, xrandrне показуючи нічого:

Screen 0: minimum 320 x 200, current 3840 x 1080, maximum 8192 x 8192
LVDS1 connected (normal left inverted right x axis y axis)
   1366x768       60.0 +
   1024x768       60.0··
   800x600        60.3     56.2··
   640x480        59.9··
VGA1 disconnected 1920x1080+1920+0 (normal left inverted right x axis y axis) 0mm x 0mm
HDMI1 disconnected 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
DP1 disconnected (normal left inverted right x axis y axis)
  1920x1080 (0x4c)  148.5MHz
        h: width  1920 start 2008 end 2052 total 2200 skew    0 clock   67.5KHz
        v: height 1080 start 1084 end 1089 total 1125           clock   60.0Hz

Майже кожна команда, яку я спробував, повертається:

xrandr: Configure crtc 2 failed
X Error of failed request:  BadMatch (invalid parameter attributes)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  21 (RRSetCrtcConfig)
  Serial number of failed request:  40
  Current serial number in output stream:  40

Наче два монітори не відмовляються від CRTC, і оскільки моє обладнання підтримує лише 2, воно заблоковано, поки я не підключу ці монітори та відключую їх.

Відповіді:


11

Ви можете помістити всю конфігурацію лише в одну команду, наприклад:

xrandr --output VGA1 --off --output HDMI1 --off --output LVDS1 --left-of HDMI1 --auto

і це повинно зробити роботу, тому що це складно написати команду (на довгий час), ви можете створити сценарій, який перевіряє поточні додані екрани, і зробити потрібну настройку. (ви можете додати до клавішної клавіші швидкого доступу)

if [ -z `xrandr --query | grep "HDMI1 connected"` ]
then
    xrandr --output DP2 --off --output DP1 --off --output HDMI2 --off \
        --output HDMI1 --off \
        --output LVDS1 --mode 1366x768 --pos 0x0 --rotate normal \
        --output VGA1 --off
else
    xrandr --output DP2 --off --output DP1 --off --output HDMI2 --off \
        --output HDMI1 --mode 1920x1080 --pos 0x0 --rotate normal --primary \
        --output LVDS1 --off --output VGA1 --off
fi

це не фантазійний сценарій, але може працювати для вас.


1

Здається, не відбувається подія, що створюється, коли екран, на жаль, відключений. наявність опитування сценарію xrandr є досить важким, але ви можете заглянути в / sys / class / drm / * / статус і опитувати ці файли, а потім вжити необхідних дій xrandr, коли стан зміниться з "підключеного" на щось інше (або повністю зникне).


1

Я знаю, що це дуже стара тема, але я хотів поділитися тим, як я вирішив проблему, використовуючи вашу інформацію про вмикання та вимикання моніторів, а потім відключення їх. Я використовував програму під назвою autorandr і, в основному, просто налаштував свій дисплей на двох моніторах autorandr --save docked. Тоді я скористався цим xrandr --output VGA --off, потім відключив монітор, після чого autorandr --save mobile. Autorandr автоматично переключиться між різними режимами залежно від того, що ви підключили чи відключили. Сподіваємось, що це допомагає всім, хто натрапить на це! Також це як моя перша реальна відповідь, тому дайте мені знати, чи можу я щось змінити, щоб бути більш зрозумілим.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.