我使用带有多个显示器的 gnome。我将它们用于镜像设置。但是,每当我的外接显示器重新连接时(无论是插入还是打开显示器),它似乎都会忘记我更喜欢镜像。
有什么方法可以将其设置为默认值吗?
答案1
当外部显示器连接时,我们需要触发 shell 脚本,我们可以通过使用udev
首先,如果你没有udev在你的 Ubuntu 上
运行以下命令:
sudo apt install udev
使用 udevadm 监视(输出)UDEV 事件
此步骤对每个用户来说都非常重要。运行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