Создайте намеренный край с помощью xrandr

Вопрос или проблема

Есть ли способ сказать xrandr “это пространство намеренно оставлено пустым”?

У меня есть ноутбук, который работает на внутреннем дисплее с разрешением 1920×1080, но внешний монитор, который я использую, из-за другого соотношения сторон не имеет этого режима. Он работает на 1920×1200.

Таким образом, базовая настройка:

xrandr \
--output LVDS-1 --mode 1920x1080 \
--output DP-1 --mode 1920x1200 --same-as LVDS-1

[не в масштабе:]
┌─────────────────┬─────────────────┐
│                 │                 │
│  (ноутбук)      │  (внешний)      │
│  (LVDS-1)       │  (DP-1)         │
│                 │                 │
│                 │                 │
└─────────────────┤                 │
   (пусто...)     │                 │
                  └─────────────────┘

Как я могу указать, что область размером 1920×120 ниже LVDS-1 должна отображаться как черная полоса, на которую нельзя кликнуть мышью на DP-1?

Я пытался просто справиться с помощью --panning 1920x1200+0+0/1920x1080+0+0/0/0/0/120, но движение экрана оказалось очень раздражающим.

Обновление:

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

Я нашел обходной путь в обсуждении соотношения сторон под Compiz (вариант варианта #2):

xrandr --fb 1920x1080 \
--output LVDS-1 --mode 1920x1080 \
--output DP-1 --mode 1920x1200 --scale 1x.9

Это заставляет внешний монитор масштабировать изображение. Я не уверен, что --fb 1920x1080 (который указывает размер виртуального экрана) здесь строго необходим. Возможно, --pos 0x0 мог бы заменить его.

Обходной путь все еще довольно неудовлетворительный — он просто работает, потому что это удобное, простое кратное, — было бы хорошо иметь более общее решение.

Ответ или решение

Для создания намеренной границы в настройках вашего дисплея с использованием xrandr, вы столкнулись с задачей соединения двух экранов с различными аспектами. Это приводит к ситуации, когда необходимое разрешение для одного экрана не совпадает с разрешением другого. Ваша цель — обозначить область, оставшуюся пустой, как черную полоску на внешнем мониторе (DP-1), которая недоступна для ввода с мыши.

Понимание проблемы

В вашем случае, вы используете внутренний дисплей (LVDS-1) с разрешением 1920×1080 и внешний дисплей (DP-1) с разрешением 1920×1200. При попытке объединить эти два дисплея, как вы уже заметили, на внешнем дисплее будет демонстрироваться избыточное пространство на 120 пикселей, которое будет отображаться темно-серым (или другим цветом, в зависимости от фона) и будет доступно для ввода с мыши, что не является вашим предпочтением.

Решение

Вы можете использовать опцию --fb для изменения виртуального экрана и тем самым ограничить доступное пространство. Ниже приводится команда с кратким описанием используемых параметров:

xrandr --fb 1920x1080 \
       --output LVDS-1 --mode 1920x1080 \
       --output DP-1 --mode 1920x1200 --scale 1x.9

Объяснение команды

  1. --fb 1920x1080: Определяет размер виртуального экрана, который будет ответственным за отображение. Это означает, что вся ваша графика будет ограничена границами 1920×1080, создавая «пустое» пространство, соответствующее размерам вашего внутреннего дисплея.

  2. --output LVDS-1 --mode 1920x1080: Этот флаг устанавливает внутренний дисплей в необходимое разрешение.

  3. --output DP-1 --mode 1920x1200 --scale 1x.9: Данное указание настраивает внешний монитор в запрашиваемом разрешении, но с использованием параметра масштабирования, который уменьшает высоту отображаемого изображения. Это связано с тем, что внешнее устройство может отображать улучшенное разрешение, но его фактическое использование будет соответствовать 1920×1080, что эффективно «заполняет» нижние 120 пикселей черным цветом (или фоном).

Альтернативные подходы

Если вы ищете более универсальное решение, попробуйте следующие возможные подходы:

  • Создание дополнительных виртуальных экранов: Можете рассмотреть возможность создания второго виртуального экрана, где вы захотите задать правую полосу. Это может быть полезно в случаях, когда вы хотите скомбинировать различные настройки дисплеев или изменить их расположение.

  • Обновление драйверов графической карты: Убедитесь, что у вас установлены последние версии драйверов для вашей графической карты. Иногда это работает лучше с настройками xrandr и может дать дополнительные опции.

Итак, используя вышеприведённый подход, вы можете эффективно настроить ваш рабочий стол так, чтобы ненужная область не мешала вам и не была доступна для ввода, создавая тем самым более комфортное пространство для работы.

Оцените материал
Добавить комментарий

Капча загружается...