意外情况
之前将一台老笔记本换成了Manjaro系统,外接显示器时突然原笔记本电脑屏幕的分辨率降低,并且在系统设置页面中丢失了原有的1380×760分辨率,最大只有960×540的分辨率。
问题解决-通过命令行添加自定义分辨率
既然是linux系统,设置有关的内容一定可以用命令行解决。
系统设置丢失了分辨率模式,自己手动加上去就行了。
第一步,xrandr 查
首先用管理员权限,查看当前显示器的分辨模式
sudo xrandr -q
[parrysms@parrysms-pc ~]$ sudo xrandr -q
Screen 0: minimum 8 x 8, current 960x540, maximum 32767 x 32767
LVDS1 connected primary 960x540+0+0 (normal left inverted right x axis y axis) 310mm x 170mm
960x540 59.82
864x486 60.00 59.92 59.57
640x480 59.94
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected (normal left inverted right x axis y axis)
命令行会显示系统里有的分辨率。如果没有你显示器对应的分辨率,那么就需要自行添加。
第二步,cvt 设置分辨率
添加的第一步是使用cvt
设置自定义分辨率。注意这里cvt
命令后面两个的分辨率参数一定得是小于等于显示器最大支持的分辨率。
sudo cvt 1360 768
[parrysms@parrysms-pc ~]$ cvt 1360 768
# 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
第三步,newmode 新增自己的分辨率
此时将会显示两行信息,找到 Modeline "1360x768_60.00"
的这个部分。Modeline 后面的 "1380x760_60.00" 部分是这个分辨率的模式及的名字,从引号开始到最后全部选中复制下来。(命令行里鼠标右键有复制选项)
使用参数新增分辨率模式,指令如下:xrandr --newmode 加上Modeline 后面的分辨率模式名以及一连串数字
举例而言,我的指令是sudo xrandr --newmode "1360x768_60.00" 84.75 1360 1432 1568 1776 768 771 781 798 -hsync +vsync
第四步,add mode 添加配置
还需要将新的自定义分辨率模式,添加到指定的显示器配置中,显示器名字就是最开始sudo xrandr -q
命令中看到有分辨率模式的那个显示器。
如果不想往上翻可以重新敲命令查一次。
[parrysms@parrysms-pc ~]$ sudo xrandr -q
Screen 0: minimum 8 x 8, current 960x540 maximum 32767 x 32767
LVDS1 connected primary 960x540+0+0 (normal left inverted right x axis y axis) 310mm x 170mm
960x540 59.82
864x486 60.00 59.92 59.57
640x480 59.94
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected (normal left inverted right x axis y axis)
这里可以看到笔记本自带的显示器名字是 LVDS1
,所以使用addmode
指令来添加。指令如下:
sudo xrandr --addmode 显示器名 分辨率模式名
因此我的指令是 (注意引号): sudo xrandr --addmode LVDS1 "1360x768_60.00"
第五步,output 生效
最后一步,output 输出使其配置生效即可。指令如下:
sudo xrandr --output 显示器名 --mode 分辨率模式名
因此我的指令是 (注意引号): sudo xrandr --output LVDS1 --mode "1360x768_60.00"
最后敲下回车,随着屏幕一闪,自定义分辨率就生效了。
这个设置可能会随着电脑重启失效,可以把相关命令保存成一个单独的shell文件方便执行。
所以说针对我自己的这台笔记本,可以把下面这些命令另存为 xrandr_1360.sh
sudo cvt 1360 768
sudo xrandr --newmode "1360x768_60.00" 84.75 1360 1432 1568 1776 768 771 781 798 -hsync +vsync
sudo xrandr --addmode LVDS1 "1360x768_60.00"
sudo xrandr --output LVDS1 --mode "1360x768_60.00"
执行的时候直接用 bash xrandr_1360.sh
就搞定啦。