Noah's Blog

Linux双屏分辨率过低解决方案

2016-02-05

转载请保留 本文来自 Noah‘sBlog

u=759327989,3980608969&fm=21&gp=0.jpg

手里有一个以前家里以旧换新的老笔记本,型号是清华同方锋锐K42A,因为配置比较落后,让我用的又一直比较…散热有了很大的问题,就把屏幕、硬盘和光驱拆下来做了一些改造。14.1‘(1280*800)屏幕改造成了一个VGA显示器,做了个双屏,但是Windows10下表现很正常,Linux下第二屏的分辨率只能到1024*768,以下记录一些解决的笔记。

解决思路

目前网上流行的解决方案有两种,一种是利用xorg-server的自带的工具xrandr修改,但是效果是临时的,下次登陆会消失,并可能报出CSTC错误的对话框,另一种是修改/etc/X11/xorg.conf,增加新的监视器,但是修改复杂,受发行版、DE还有驱动的影响太大,参考资料也比较老,修改后不容易起效还容易黑屏。

我的方法

废话少说,直接上代码

1
2
3
4
#!/bin/bash
xrandr --newmode "1280x800" 83.50 1280 1352 1480 1680 800 803 809 831 -hsync +vsync
xrandr --addmode VGA1 "1280x800"
xrandr --output VGA1 --mode "1280x800"

记住使用root权限编辑,保存为/usr/bin/fixdisplay,运行

$ sudo chmod +x /usr/bin/fixdisplay

给脚本加上运行权限即可

详解

  1. 第一行中–newmode后面的数据来自于运行
    cvt 1280 800```
    1
    2
    3
    命令后输出的Modeline一项的值,取决于第二屏所需要的分辨率,读者需根据自己的实际需要选择,并将引号内的模式名复制到第二三行代码的相应位置。
    2. 第三行中的VGA1是显示接口,可运行
    ```$ xrandr -q

命令获取到自己的显示接口

自此,基本脚本已经搞定,终端内用fixdisplay命令即可解决二屏分辨率问题,但是仅在一次登陆session生效

自动启动

由于我只熟悉gnome/unity环境和深度的DDE,所以我只介绍这两种桌面环境设置脚本自启动的方法供参考。

GNOME/UNITY 环境

启动器内搜索 “启动应用程序”,点击打开后添加fixdisplay

Deepin Desktop Environment(DDE)环境

root将以下内容保存为/usr/share/applications/fixdisplay.desktop

1
2
3
4
5
6
7
8
9
[Desktop Entry]
Name=Fix Display
GenericName=Fix Display
Comment=修复双屏幕分辨率脚本
Exec=fixdisplay
Terminal=false
Type=Application
Icon=default
Categories=Utility;

打开启动器找到Fix Display,右键添加为开机启动项

存在问题

Ubuntu下可能出现CSTC错误对话框,但不影响使用,如果觉得不爽可运行
$ rm ~/.config/monitors.xml
不过有可能过2-3次又出现~
在Linux Deepin下表现十分完美