Як вирівняти нижній край двох моніторів за допомогою xrandr?


21

У мене є два виходи, які я хотів би використовувати на своєму ноутбуці:

  • LVDS1 - 1366 × 768
  • HDMI1 - 1920 × 1080

Я встановив монітори так:

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

Це все добре і добре, але мій ноутбук сидить значно нижче, ніж мій зовнішній монітор, і при вирівнюванні верхніх країв екранів це робить стрибок з одного екрана на інший досить неінтуїтивним. Чи є спосіб замість цього вирівняти нижні краї? Я думав, що можу використовувати --posпрапор для цього, але спробував і не побачив різниці (можливо, я не знаю, як правильно ним користуватися).

Відповіді:


38
 xrandr --output LVDS1 --auto --pos 0x312 --output HDMI1 --auto --pos 1366x0

В основному, --pos вказує положення верхнього лівого кута екрана у віртуальному просторі екрану. Віртуальний екран - це екран, який охоплює всі ваші фізичні екрани. Це дуже загальний спосіб визначення положень екрана.

Вам потрібна ця конфігурація:

(virtual screen coordinates)
     0       1366                 1366+1920

   0           A-----------------------
               |                      |
               |                      |
               |                      |
  x? B---------|         HDMI         |
     |         |                      |
     |  LVDS   |       1920x1080      |
     |1366x768 |                      |
1080 ----------------------------------

І вам потрібні координати A і B, щоб використовувати в цьому --posваріанті. xлегко вирішується як 1080 - 768 = 312, тому A знаходиться в (1366,0), а B - при (0,312).

Тому відповідними параметрами --pos є --pos 1366x0 для HDMI та --pos 0,312 для LVDS. Вам не потрібно вказувати розмір віртуального екрана (більше), він змінюється автоматично.

Зауважте, що --posможна зловживати, наприклад, щоб створити отвір між вашими двома екранами або створити перекриття. Більшість (усіх?) WM не зможуть впоратися з цим.

EDIT: о, ви хочете навпаки, виправити це.


Хе, зрозумів це безпосередньо перед публікацією. Чи могли б ви пояснити, як працює прапор --pos?
elynnaie

Дякую, це має багато сенсу! Я думаю, ви хочете замінити 1600 на 1080 у вашому прикладі.
elynnaie

@denaje: виправлено.
BatchyX

2
Чи немає способу зробити це в xrandr без використання магічних значень? Я хотів би мати сценарій, який працює незалежно від роздільної здатності екрана, який я підключаю. Якщо ні, я гадаю, я міг би витягнути значення з виводу xrandr, але це звучить трохи нудно…
Хаур

6

На додаток до відмінної відповіді @ BatchyX , альтернативним варіантом - і ІМО зручнішим - може бути використання ARandR (що означає "Інший графічний інтерфейс XRandR"):

ARandR призначений для забезпечення простого візуального переднього кінця для XRandR. Відносні позиції монітора відображаються графічно і можуть змінюватися способом перетягування.

Можливо, вам потрібно буде встановити його спочатку, але він доступний у сховищах більшості дистрибутивів . Ось як це шукає мене на LXDE, для налаштування з одним зовнішнім монітором, підключеним через VGA, і вбудованим (розміром нетбука) монітором під ним:

Скріншот ARandR


3

Якщо ви шукаєте рішення, що базується на графічному інтерфейсі GUI, я можу порекомендувати ARandR .

Це дозволяє встановити найважливіші параметри XRandR, наприклад положення екрана та роздільну здатність, які потім можуть бути збережені у вигляді скрипту оболонки, який викликає xrandrвідповідні параметри.


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