linux xorg屏幕分辨率设置
背景
在linux中设置默认分辨率,目前可知有两种方法:
1.xrandr命令可设置分辨率,但重启后恢复默认值,需要通过添加开机启动脚本,来设置显示值。
2.在xorg中设置显示器的默认分辨率。
linux环境:ubuntu 18.04
使用到的工具:xrandr ,cvt,systemctl
方案一
xrandr,可直接输出当前显示分辨率,及可支持的分辨率.
cureent 1280x1024:当前分辨率
*:当前分辨率
+:最优分辨率,若不配置,默认选择为最优设置
列表显示为当前支持的分辨率
connected:表示当前连接的显示器,disconnected:未连接显示器
DP-1,HDMI-1,DP-2,HDMI-2:表示可外接显示器的名字
修改分辨率为1600x900:xrandr --output DP-1 --mode 1600x900
DP-1:为当前连接显示器,mode参数为可支持分辨率其中任一一个
若为双屏设置,每个output单独设置mode即可。
设置DP在HDMI显示的左边:(DP,HDMI具体名字通过xrandr输出结果可查看)
xrandr --output DP-1 --left-of HDMI-2
HDMI-2 connected 1920x1080+1600+0 (normal left inverted right x axis y axis) 527mm x 296mm
1920x1080+1600+0:当前显示分辨率为1920x1080;+1600表示横向从1600的像素点开始显示,即该显示器显示内容在右边,且左边显示宽度为1600;+0表示纵向从0开始显示。
添加开机启动设置
开机启动项,添加到中/etc/xdg/autostart,新建一个default_pixel.desktop.内容如下:
[Desktop Entry]
Version=1.0
Name=pixel
Exec=/userdata/share/pixel.sh
Terminal=false
Type=Application
Categories=
GenericName=
X-GNOME-Autostart-Phase=Initialization
X-KDE-autostart-phase=1
NoDisplay=true
Exec:为执行的指令,而设置项命令添加到/userdata/share/pixel.sh中即可 , 文件需要修改为可执行的权限。/userdata/share/pixel.sh内容如下:
#!/bin/sh
xrandr --output DP-1 --mode 1600x900
方案二
在xorg中设置显示器的默认分辨率,xorg的配置文件放在/usr/share/X11/xorg.conf.d/中,自行新增文件来设置,本文新增screen-resolution.conf文件。
单屏设置:
Section "Screen"
Identifier "Screen0"
SubSection "Display"
Modes "1024x768"
EndSubSection
EndSection
Modes:设置分辨率,此方法会将连接的显示器都设置为“1024x768",若连接双屏,则双屏为复制屏,且大小均为"1024x768"
HDMI设置:
Section "Monitor"
Identifier "HDMI-2"
Option "Primary" "true"
Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
Option "PreferredMode" "1600x900_60.00"
EndSection
Identifier "HDMI-2":"HDMI-2"是根据xrandr拿到的,外接显示器的接口名字
Option "Primary" "true":配置该显示器的显示方式,有多组参数可配,如:Option "RightOf" "HDMI-2"
Modeline:设置的显示参数,其值可根据cvt获取。输入cvt 1600 900 60,可得到以下显示,将Modeline的值copy到配置文件中的modeline即可,可设多组。
# 1600x900 59.95 Hz (CVT 1.44M9) hsync: 55.99 kHz; pclk: 118.25 MHz
Modeline "1600x900_60.00" 118.25 1600 1696 1856 2112 900 903 908 934 -hsync +vsync
Option "PreferredMode" "1600x900_60.00":选择1600x900_60.00的modeline进行显示
此设置只影响hmdi-2口接入的显示器,不影响其它口接入的显示设置。
DP设置:
Section "Monitor"
Identifier "DP-1"
Option "RightOf" "HDMI-2"
Modeline "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
Option "PreferredMode" "1280x1024_60.00"
EndSection
若DP和HDMI都有设置,则双屏接入时,分别按照其配置进行设置。
测试方法
sudo systemctl restart lightdm.service(重启显示服务)或者重启查看效果