我尝试实现以下目标:
当我将笔记本电脑连接至扩展坞时,我希望使用连接至扩展坞的外部显示器。
为此,我使用了一个udev规则,该规则运行一个脚本,我知道该脚本实际上应在预期的时间运行。在执行xrandr命令之前,该脚本会在我的xsesison中设置与它们的值相对应的XAUTHORITY和DISPLAY环境变量。我运行的命令可以从xsession内部完美调用。
从scipt调用,但是,遇到以下错误:
“配置crtc 0失败”。
在另一个tty(设置了XAUTHORITY和DISPLAY env vars)上执行xrandr会导致相同的错误。
有什么想法吗?
xsession中的env变量:
> echo $XAUTHORITY
/run/user/1000/gdm/Xauthority
> echo $DISPLAY
:0
我的脚本:
#!/bin/bash
export XAUTHORITY=/run/user/1000/gdm/Xauthority
export DISPLAY=:0
HDMI_2_STATUS=$(</sys/class/drm/card0/card0-HDMI-A-2/status )
if [ "connected" == "$HDMI_2_STATUS" ]; then
# is connected
# video
xrandr --output LVDS-1 --off
xrandr --output HDMI-2 --auto
# debug
# echo $? >> /tmp/foo
else
# not connected
# video
xrandr --output HDMI-2 --off
xrandr --output LVDS-1 --auto
# debug
# echo $? >> /tmp/foo
fi