我想在每次启动时配置笔记本电脑的 2 个外部屏幕。因为我有一种扩展坞,所以我编写了一个小脚本来检索我的笔记本电脑是否连接到扩展坞。
如果是,监视器应通过 xrandr 自行配置。这是我的脚本:
#!/bin/bash
export DISPLAY=:0
export XAUTHORITY=/home/$USER/.Xauthority
sleep 1
DOCKED=$(cat /sys/devices/platform/dock.2/docked)
case "$DOCKED" in
0)
xrandr --output DVI1 --off --output VIRTUAL1 --off --output VGA1 --off &> && xrandr --output LVDS1 --mode 1024x768 --pos 0x0 --rotate normal
;;
1)
xrandr --output VIRTUAL1 --off --output LVDS1 --off && xrandr --output DVI1 --mode 1366x768 --pos 1360x0 --rotate normal --output VGA1 --primary --mode 1360x768 --pos 0x0 --rotate normal
;;
esac
不幸的是 xrand 在启动时无法以正确的方式工作。它向我展示了这一点:
xrandr: cannot find mode 1360x768
我有点困惑,因为如果我在我的电脑已经运行时启动脚本,它会完美运行并且没有错误报告!
所以我猜 xrandr 在启动时找不到我的监视器,因此它不知道每个监视器的具体配置。
我该如何解决这个问题?
非常感谢您帮助我!
答案1
首先添加你想要的模式。
使用 gtf/cvt 和 xrandr 来做到这一点。
$ cvt 1360 768 60
# 1360x768 59.80 Hz (CVT) hsync: 47.72 kHz; pclk: 84.75 MHz
Modeline "1360x768_60.00" 84.75 1360 1432 1568 1776 768 771 781 798 -hsync +vsync
$ gtf 1360 768 60 -x
# 1360x768 @ 60.00 Hz (GTF) hsync: 47.70 kHz; pclk: 84.72 MHz
Modeline "1360x768_60.00" 84.72 1360 1424 1568 1776 768 769 772 795 -HSync +Vsync
$ xrandr --newmode "1360x768_60.00" 84.72 1360 1424 1568 1776 768 769 772 795 -HSync +Vsync
$ xrandr --addmode VGA1 "1360x768_60.00"