笔记本外接了个22寸的大显示器,一般情况下,ubuntu启动后,本本和外接显示器的分辨率都很和谐。
但是有时候开会接投影仪时,输出的分辨率变为1024*768,开完会接上大显示器后,最大分辨率还是1024*768,插拔显示器的信号线、在Monitor Preferences里面on/off或者detect monitors等方法都没办法选择22寸的合适分辨率。
用xrandr命令也可以看到分辨率的情况(大显示器就是那个VGA1):
zhubaining@zhubaining-laptop:~$ xrandr
Screen 0: minimum 320 x 200, current 2304 x 800, maximum 8192 x 8192
VGA1 connected 1024x768+1280+0 (normal left inverted right x axis y axis) 473mm x 296mm
1024x768 60.0*
800x600 60.3 56.2
848x480 60.0
640x480 59.9
LVDS1 connected 1280x800+0+0 (normal left inverted right x axis y axis) 261mm x 163mm
1280x800 60.0*+ 50.0
1024x768 85.0 75.0 70.1 60.0
832x624 74.6
800x600 85.1 72.2 75.0 60.3 56.2
640x480 85.0 72.8 75.0 59.9
720x400 85.0
640x400 85.1
640x350 85.1
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
HDMI2 disconnected (normal left inverted right x axis y axis)
DP2 disconnected (normal left inverted right x axis y axis)
DP3 disconnected (normal left inverted right x axis y axis)
当然,重启一下机器就好了,但是这样太麻烦。
经过高人指点并参阅网文,总结出如下方法:
1. 生成目标分辨率的modeline:
zhubaining@zhubaining-laptop:~$ cvt 1680 1050
# 1680x1050 59.95 Hz (CVT 1.76MA) hsync: 65.29 kHz; pclk: 146.25 MHz
Modeline "1680x1050_60.00" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync
2. 新建mode:
zhubaining@zhubaining-laptop:~$ sudo xrandr --newmode "1680x1050_60.00" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync
3. 添加:
zhubaining@zhubaining-laptop:~$ sudo xrandr --addmode VGA1 "1680x1050_60.00"
4. 生效(这一步也可以在Monitor Preferences里面执行):
zhubaining@zhubaining-laptop:~$ sudo xrandr --output VGA1 --mode "1680x1050_60.00"
5. 如果此时发现两个显示重叠了,那么在Monitor Preferences里面调整一下它们的位置。
如果还有大小、边界不正确等其他问题,可以尝试在Monitor Preferences里把外接显示器off再on一下。
二. 设置主显示器
Monitor Preferences里面没有设置主显示器的地方,不过可以用xrandr:
zhubaining@zhubaining-laptop:~/bin$ sudo xrandr --output VGA1 --primary