Как выровнять нижние края двух мониторов с XRandR?

21

У меня есть два выхода, которые я хотел бы использовать на моем ноутбуке:

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

Я поставил свои мониторы до примерно так:

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

Это все хорошо, но мой ноутбук сидит значительно ниже , чем мой внешний монитор, и с верхними краями экранов выровнены, это делает переход от одного экрана к другим , а неинтуитивному. Есть ли способ выровнять нижние края? Я думал, что мог бы использовать --posфлаг, чтобы сделать это, но я попытался и не видел никакой разницы (возможно, я не знаю, как использовать это должным образом).

elynnaie
источник

Ответы:

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 0312 для LVDS. Вам не нужно указывать размер виртуального экрана (больше), он изменяет размер автоматически.

Обратите внимание , что --posможно злоупотреблять, для Exemple , чтобы создать дыру между вашими двумя экранами, или перекрывают друг друга. Большинство (все?) WM не сможет справиться с этим через.

EDIT: Ах, вы хотите, наоборот, зафиксировано, что.

BatchyX
источник
Хех, понял это право , прежде чем отправил. Не могли бы вы объяснить, как работает флаг --pos?
elynnaie
Спасибо, это делает много смысла! Я думаю , что вы хотите заменить 1600 с 1080 в вашем примере, хотя.
elynnaie
@denaje: исправлено.
BatchyX
2
Неужели нет способа сделать это в XRandR без использования значений магии? Я хотел бы иметь скрипт , который работает независимо от разрешения экрана Подключенный Если нет , я думаю , я мог бы извлечь значения из выходного XRandR, но это звучит немного утомительно ....
Khaur
6

В дополнение к @ отличным BatchyX в ответ , альтернативный -И ИМО более convenient- вариант может использовать ARandR (что означает «Другой XRandR GUI»):

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

Вам может понадобиться установить его первым, но это доступно в репозиториях большинства дистрибутивов . Вот как это выглядит для меня на LXDE, для установки с одним внешним монитором , подключенным через VGA, выше, и родной (нетбук) размер монитора под ним:

ARandR скриншот

waldyrious
источник
3

Если вы ищете решение перетащить и падение GUI на основе, я могу рекомендовать ARandR .

Это позволяет установить наиболее важные параметры XRandR, например , положение экрана и разрешение, которые затем могут быть сохранены в виде скрипта , который вызовы xrandrс соответствующими параметрами.

Флориан Фрэнзен
источник