У меня старый ноутбук 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
Как должен выглядеть правильный скрипт?
Можно ли включить экран ноутбука после отсоединения внешних дисплеев? Потому что в настоящее время он остается даже, когда я отключаю внешние дисплеи и перезагружаю систему; (
Я сейчас использую это. Работает на 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.
Для достижения цели вам нужно сделать два скрипта.
один для включения обоих внешних дисплеев и выключения дисплея вашего ноутбука.
и другой, чтобы отменить изменения, внесенные сценарием один.
Итак, создайте 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
и соответственно указать имена устройств.
А также вы можете проверить, поддерживает ли ваше оборудование три дисплея одновременно, включив дисплей ноутбука вместе с двумя мониторами.
Сначала откройте Утилиту настроек электропитания и выберите Ничего не делать , когда крышка ноутбука закрыта. Все настройки> Мощность
Тогда все, что нужно, это добавить пару псевдонимов к .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'