Xrandr расширить настройки дисплея

У меня старый ноутбук Lenovo E330, работающий под управлением Xubunu 16.04

Я подключил к нему 2 внешних дисплея, один с VGA, а другой с кабелем HDMI.

Я пытаюсь написать простую команду, чтобы расширить мой рабочий стол до двух внешних дисплеев, крышка будет закрыта, поэтому я буду запускать только 2 дисплея одновременно.

    Screen 0: minimum 320 x 200, current 1920 x 1080, maximum 8192 x 8192
LVDS-1 connected primary 1366x768+0+0 (normal left inverted right x axis y axis) 293mm x 165mm
   1366x768      60.03*+
   1360x768      59.80    59.96  
   1024x768      60.04    60.00  
   960x720       60.00  
   928x696       60.05  
   896x672       60.01  
   960x600       60.00  
   960x540       59.99  
   800x600       60.00    60.32    56.25  
   840x525       60.01    59.88  
   800x512       60.17  
   700x525       59.98  
   640x512       60.02  
   720x450       59.89  
   640x480       60.00    59.94  
   680x384       59.80    59.96  
   576x432       60.06  
   512x384       60.00  
   400x300       60.32    56.34  
   320x240       60.05  
VGA-1 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 477mm x 268mm
   1920x1080     60.00*+
   1680x1050     59.95  
   1280x1024     75.02    60.02  
   1440x900      74.98    59.89  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   640x480       75.00    72.81    66.67    59.94  
   720x400       70.08  
HDMI-1 connected (normal left inverted right x axis y axis)
   1920x1080     60.00 +
   1680x1050     59.88  
   1280x1024     75.02    60.02  
   1440x900      74.98    59.90  
   1024x768      75.03    60.00  
   800x600       75.00    60.32  
   640x480       75.00    72.81    66.67    59.94  
   720x400       70.08  
DP-1 disconnected (normal left inverted right x axis y axis)

Команда должна быть чем-то простым, как один из них.

xrandr --auto --output VGA-1 --mode 1920x1080 --right-of HDMI-1

или

xrandr --output LVDS-1 --off  
xrandr --output VGA-1 --mode 1920x1080
xrandr --output HDMI-1 --mode 1920x1080

Как должен выглядеть правильный скрипт?

Можно ли включить экран ноутбука после отсоединения внешних дисплеев? Потому что в настоящее время он остается даже, когда я отключаю внешние дисплеи и перезагружаю систему; (

2
задан 19 December 2017 в 18:18

3 ответа

Я сейчас использую это. Работает на Xubuntu с awesome-wm. Эти функции xrandr переключают мониторы и позволяют wm перемещать теги, похожие на рабочие столы alt; которые отображаются в виде вкладок папок вдоль верхнего края. Как и в моем случае, иногда оконному менеджеру не нравится, когда его советуют упаковать и переместить.

Идея состоит в том, чтобы перезапустить Window Manager, прежде чем снова перемещать экраны. Поэтому каждый раз, когда вы звоните xrandr, обязательно перезапускайте оконный менеджер.

Я использую свою оболочку ZSH

, поместил эти строки в ваш .zshrc, иначе он может работать и в bashrc, но я этого не пробовал.

switch1() {
    xrandr --output VGA1 --mode 1920x1080 --primary --output HDMI-1 --mode 1920x1080 --left-of LVDS1 --output LVDS1 --mode 1280x800 --left-of VGA1;
    sleep 2;
    echo 'customization.orig.restart()' | awesome-client;
    xrandr --output VGA1 --mode 1920x1080 --output HDMI-1 --mode 1920x1080 --left-of LVDS1 --output LVDS1 --primary --mode 1280x800 --left-of VGA1;
    sleep 2;
    echo 'customization.orig.restart()' | awesome-client;
    xrandr --output VGA1 --off --output HDMI1 --off;
    echo 'customization.orig.restart()' | awesome-client;
    sleep 1;
}

switch2() {
    xrandr --output VGA1 --mode 1920x1080 --output HDMI-1 --mode 1920x1080 --left-of LVDS1 --output LVDS1 --primary --mode 1280x800 --left-of VGA1;
    sleep 2;
    echo 'customization.orig.restart()' | awesome-client;
    xrandr --output VGA1 --mode 1920x1080 --primary --output HDMI-1 --mode 1920x1080 --left-of LVDS1 --output LVDS1 --mode 1280x800 --left-of VGA1;
    sleep 2;
    echo 'customization.orig.restart()' | awesome-client;
    xrandr --output LVDS1 --off;
    echo 'customization.orig.restart()' | awesome-client;
    sleep 1;
}

Далее объяснение customization.orig.restart () - это просто особая часть, которая у меня была. Функция AwesomeWM awesome.restart() будет работать для тех, кто не использует модифицированную конфигурацию rc.lua.

Просто, чтобы у вас было все это, я нашел это обсуждение о перемещении тегов на новый экран и использовал функции перемещения именованных тегов, найденные здесь , которые могут идти куда угодно в rc. .lua или включите файл custom.lua для дополнительных функций, которые вы можете добавить. Убедитесь, что файл custom.lua включен в файл rc.lua.

1
ответ дан 19 December 2017 в 18:18

Для достижения цели вам нужно сделать два скрипта.

один для включения обоих внешних дисплеев и выключения дисплея вашего ноутбука.

и другой, чтобы отменить изменения, внесенные сценарием один.

Итак, создайте script1.sh и сделайте его исполняемым со следующим содержимым.

#!/bin/bash
    xrandr --output LVDS-1 --off  
    xrandr --output VGA-1 --mode 1920x1080 --auto
xrandr --output HDMI-1 --mode 1920x1080 --auto

и script2.sh со следующим содержанием и сделать его слишком исполняемым.

#!/bin/bash
xrandr --output VGA-1 --off
xrandr --output HDMI-1 --off
xrandr --output LVDS-1 --mode 1366x768 --auto

Вы можете запустить scipt1.sh после подключения внешних дисплеев, и вам нужно запустить script2.sh перед удалением внешних дисплеев.

Обратите внимание, что вышеописанный метод зеркально отображает ваш экран на двух отдельных экранах одновременно. И если вам нужен отдельный экран, а не зеркальное отображение, вы можете использовать опцию --left-of или --right-of и соответственно указать имена устройств.

А также вы можете проверить, поддерживает ли ваше оборудование три дисплея одновременно, включив дисплей ноутбука вместе с двумя мониторами.

0
ответ дан 19 December 2017 в 18:18

Сначала откройте Утилиту настроек электропитания и выберите Ничего не делать , когда крышка ноутбука закрыта. Все настройки> Мощность

Тогда все, что нужно, это добавить пару псевдонимов к .bash_aliases

# для закрытой крышки, это будет расширено отображает ,

alias 2mon='xrandr --output HDMI-1 --auto --primary --rotate normal --output VGA-1 --preferred --rotate normal --left-of VGA-1 --output LVDS-1 --off'

# только для ноутбука до отключения внешних мониторов :

alias 1mon='xrandr --output LVDS-1 --auto --rotate normal --output HDMI-1 --off --output VGA-1 --off'
0
ответ дан 19 December 2017 в 18:18

Другие вопросы по тегам:

Похожие вопросы: