Ubuntu 下笔记本外接显示器

Linux 2012-10-06

默认ubuntu外接显示器时会以两个显示器中较低的显示器分辨率同时显示两个屏幕,为了外接显示器可以达到最理想的分辨率,我们需要改造一下显示设置。

先在终端中运行

```sudo xrandr```

会得到类似以下的结果:

```LVDS2 connected (normal left inverted right x axis y axis)
1366x768 60.1 + 40.1
1360x768 59.8 60.0
1024x768 60.0
800x600 60.3 56.2
640x480 59.9
VGA2 connected (normal left inverted right x axis y axis) 0mm x 0mm
1024x768 60.0
800x600 60.3 56.2
848x480 60.0
640x480 59.9```

可以看到LVDS2是笔记本自带的显示器,最高分辨率1366x768,这个分辨率是没有错了,VGA2则是外接的显示器,最高分辨率可以达到1024x768,当然这个还不是真正最高的分辨率,就我的显示器来说,它可以达到1080p的分辨率,也就是1920x1080,我的目的就是要让它以最高的分辨率来显示。

继续在终端中执行
```sudo cvt 1920 1080```

可以得到如下结果
```# 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync```

添加显示分辨率
```sudo xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync```
其实就是把上面的参数复制下来。

```sudo xrandr --addmode VGA2 "1920x1080_60.00"```

这里的VGA2对应xrandr里面的显示值。

再执行
```sudo xrandr```

这下可以看到我们想要的分辨率了。

```LVDS2 connected (normal left inverted right x axis y axis)
1366x768 60.1 + 40.1
1360x768 59.8 60.0
1024x768 60.0
800x600 60.3 56.2
640x480 59.9
VGA2 connected (normal left inverted right x axis y axis) 0mm x 0mm
1024x768 60.0
800x600 60.3 56.2
848x480 60.0
640x480 59.9
1920x1080_60.00 60.0* ```

接下来就可以在ubuntu的设置中心里面设置分辨率了,由于我是笔记本,我不需要双屏同时显示,所以,还可以用下面的命令设置分辨率,同时关闭我不需要的屏幕。

```sudo xrandr --output VGA2 --mode "1920x1080_60.00" --output LVDS2 --off```

输出VGA2为1080p的分辨率,同时关LVDS2的屏幕,每次系统重启都需要重设,可以做一个脚本开机的时候运行一次,我推荐是手动设置,因为有时候没有外接显示器时,如果自动执行脚本,会导致笔记本没有显示,手动执行是最好的选择。

可以做一个脚本类似这样,放在桌面上。

```echo 你的密码|sudo -S xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
sudo xrandr --addmode VGA2 "1920x1080_60.00"
sudo xrandr --output VGA2 --mode "1920x1080_60.00" --output LVDS2 --off```

第一行是把sudo输入密码的步骤也省略了,把密码也放入脚本当中,当然,安全角度来说,你的脚本最好不要让不该看到的人看到。VGA2跟LVDS2只是一个参数,不同机子可能不一样,有的是LVDS1,全部以xrandr执行出来的结果为准。