
Я использую gnome с несколькими дисплеями. Я использую их в настройке зеркалирования. Однако всякий раз, когда мой внешний дисплей переподключается (будь то путем подключения или включения питания дисплея), он, кажется, забывает, что я предпочел, чтобы он зеркалировал.
Можно ли как-то сделать это значением по умолчанию?
решение1
При подключении внешнего дисплея нам необходимо запустить скрипт оболочки. Это можно сделать с помощьюудев
Во-первых, если у вас нетудевна вашем Ubuntu
Выполните следующую команду:
sudo apt install udev
Мониторинг (вывод) событий UDEV с помощью udevadm
Этот шаг будет самым важным для каждого пользователя. Запустите udevadm monitor --environment --udev
. Затем подключите кабель HDMI.
правило udev
На основе вывода указанной выше команды пользователь создал это правило udev в /etc/udev/rules.d/95-monitor-hotplug.rules
.
KERNEL=="card0", SUBSYSTEM=="drm", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/YOUR_USER_NAME_GOES_HERE/.Xauthority", RUN+="/usr/local/bin/hotplug_monitor.sh"
Где YOUR_USER_NAME_GOES_HERE
ваше имя пользователя?
Вы можете настроить xrandr
параметры в соответствии со своими потребностями.
Первый запуск xrandr
для обнаружения текущих экранов:
$ xrandr
Screen 0: minimum 320 x 200, current 3840 x 1080, maximum 8192 x 8192
LVDS1 connected (normal left inverted right x axis y axis)
1600x900 60.0*+ 40.0
1024x768 60.0
800x600 60.3 56.2
640x480 59.9
HDMI3 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 521mm x 293mm
1920x1080 60.0*+
1600x1200 60.0
1680x1050 59.9
1680x945 60.0
[...]
Чтобы настроить дисплеи таким образом, чтобы внешний монитор отображал текущий дисплей:
$ xrandr --output HDMI3 --same-as LVDS1
Проверьте названия отображаемых на экране устройств (LVDS1 и т. д.).
Скрипт xrandr для размещения по адресу /usr/local/bin/hotplug_monitor.sh
:
#! /usr/bin/bash
export DISPLAY=:0
export XAUTHORITY=/home/YOUR_USER_NAME_GOES_HERE/.Xauthority
function connect(){
xrandr --output HDMI3 --same-as LVDS1
}
function disconnect(){
xrandr --output HDMI3 --off
}
xrandr | grep "HDMI3 connected" &> /dev/null && connect || disconnect