简介
xrandr是一款官方的扩展配置工具。它可以设置屏幕显示的大小、方向、镜像等,包括对多屏的设置。详细的使用方法可以通过man xrandr查看。
单屏设置
查询
使用xrandr -q或者xrandr命令可以查询当前的显示状态,使用xrandr --verbose将会显示更详细的信息。
pc:~$ xrandr
Screen 0: minimum 8 x 8, current 1920 x 1080, maximum 32767 x 32767
eDP1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 345mm x 194mm
1920x1080 60.02*+ 59.93
1680x1050 59.95 59.88
1600x1024 60.17
1400x1050 59.98
1280x1024 60.02
1440x900 59.89
1280x960 60.00
1360x768 59.80 59.96
1152x864 60.00
1024x768 60.00
800x600 60.32 56.25
640x480 59.94
HDMI1 disconnected (normal left inverted right x axis y axis)
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
以上结果表明eDP1为主屏,且分辨率为1920x1080,起始位置为0+0。
设置分辨率
设置分辨率时需要指定设置的output及mode,如将eDP1的分辨率改为1920x1080,命令就是:
xrandr --output eDP1 --mode 1920x1080
1
–output:指定显示器。
–mode:指定一种有效的分辨率。
–rate:指定刷新率。
添加有效分辨率
如果xrandr查询结果中没有合适的分辨率,则可以通过newmode来添加,下面将给出eDP1添加1280x1024x60的分辨率方法。
$ cvt 1280 1024 60
Modeline “1280x1024_60.00” 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
1
2
3
使用newmode创建一个mode,参数就是上面的modeline后的内容,命令如下:
xrandr --newmode “1280x1024_60.00” 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +vsync
1
新建模式,将新模式添加至当前输出设备:
xrandr --addmode eDP1 1280x1024_60.00
1
如果出错,则说明不支持此模式。
设置newmode为当前分辨率:
xrandr --output eDP1 --mode 1280x1024_60.00
1
如果对于新分辨率不放心,可以追加sleep 5以及一条切换到已有分辨率命令,保证不会困在无效分辨率:
xrandr --output eDP1 --mode 1280x1024_60.00 && sleep 5 && xrandr --newmode “1920x1080-safe” 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync && xrandr --addmode eDP1 1920x1080_60.00 && xrandr --output eDP1 --mode 1920x1080_60.00
1
双屏设置
如现在有两个output,分别为eDP1和HDMI1
设置主屏
xrandr --auto --output eDP1 --primary
1
auto:可以自动启用关闭的屏幕。
primary:设置主屏。
复制模式
xrandr --auto --output eDP1 --pos 0x0 --mode 1920x1080 --output HDMI1 --same-as eDP1
1
pos:起始位置,x。
same-as:与eDP1输出保持一致。
扩展模式
xrandr --auto --output eDP1 --pos 0x0 --mode 1920x1080 --primary --output HDMI1 --mode 1024x768 --right-of eDP1
1
right-of:HDMI1的起始位置在eDP1的右边。
命令的结果就是HDM1 会在 eDP1 的右边, eDP1 为主屏, 另外位置的参数还有 --left-of, --above, --below 等。
如果需要自定义两个屏幕的位置, 可以通过计算每个屏幕的分辨率, 用 --pos 参数来指定每个屏幕显示的位置.
单屏模式
xrandr --output eDP1 --pos 0x0 --mode 1920x1080 --primary --output VGA1 --off
1
–off:关闭某个屏幕.
自定义模式
另外屏幕的旋转, 镜像和缩放可以分别使用 --rotate, --reflect 和 --scale 参数来实现.
永久保存
如果需要永久保存配置,可以通过更改/etc/X11/xorg.conf或者/etc/X11/xorg.conf.d/****进行保存。