Как сохранить конфигурацию монитора в зависимости от того, сколько дисплеев доступно на ноутбуке?
У меня есть ноутбук, который я часто использую с внешним монитором и без него. Когда я подключаю монитор, Gnome-Shell автоматически переконфигурирует для использования второго дисплея, но он всегда размещает экран ноутбука слева. Он физически расположен справа, поэтому я использую диалоговое окно «Дисплеи» для его перемещения. Тем не менее, это теряется каждый раз, когда я отключаю дисплей или приостанавливаю работу и возобновляю работу ноутбука.
Это похоже на этот вопрос , но я не хочу жестко кодировать мою настройку Xorg / Xrandr для принудительного использования двух дисплеев, потому что я часто использую ноутбук без монитора. Я просто хочу, чтобы он автоматически размещал экран моего ноутбука вправо при каждом подключении внешнего монитора.
Редактировать: Выход xrandr
с настройкой внешнего монитора.
Screen 0: minimum 8 x 8, current 3200 x 1080, maximum 8192 x 8192
LVDS-0 connected primary 1280x800+1920+0 (normal left inverted right x axis y axis) 286mm x 179mm
1280x800 60.2*+
DP-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 510mm x 290mm
1920x1080 60.0*+
1680x1050 60.0
1280x1024 75.0 60.0
1280x960 60.0
1152x864 75.0
1024x768 75.0 60.0
800x600 75.0 60.3 56.2
640x480 75.0 59.9
DP-1 disconnected (normal left inverted right x axis y axis)
Решение существует двух частей:
, необходимо думать объединенных экранах как одном объединенном виртуальном экране, как объяснено здесь .
Для расположения двух экранов в объединенный виртуальный экран необходимо расположить их слева направо. В Вашем случае:
для размещения левого экрана в 0,0
:
xrandr --output DP-0 --pos 0x0
для размещения правильного экрана (сборка на экране):
xrandr --output LVDS-0 --pos 1920x0
, Когда мы помещаем эти две команды в сценарий:
#/bin/bash
xrandr --output DP-0 --pos 0x0
xrandr --output LVDS-0 --pos 1920x0
set_screen.sh
Для использования его (после того, как второй экран соединен), выполните команду:
/bin/bash /path/to/set_screen.sh
или, если Вы делаете его исполняемым файлом:
/path/to/set_screen.sh
Теперь у Вас есть две опции, Вы можете также:
или:
, Как описано В сообщении: сценарий Выполнения, когда монитор подключен .
Замена в разделе:
#--- set both commands (connect / disconnect) below
connect_command = "gedit"
"gedit"
командой для выполнения сценария, который Вы создали на шаге 1:
"/bin/bash /path/to/set_screen.sh"
, Если Вы добавляете сценарий в связанном сообщении к Вашим приложениям запуска, у Вас будет своя установка к полностью автоматически расположению Ваши экраны, если второй монитор будет подключен.