Xrandr

 

简介

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

设置分辨率

设置分辨率时需要指定设置的outputmode,如将eDP1的分辨率改为1920x1080,命令就是:

xrandr --output eDP1 --mode 1920x1080 
  • 1

--output:指定显示器。 
--mode:指定一种有效的分辨率。 
--rate:指定刷新率。

添加有效分辨率

如果xrandr查询结果中没有合适的分辨率,则可以通过newmode来添加,下面将给出eDP1添加1280x1024x60的分辨率方法。 
1. 使用cvt生成一个modeline,命令如下:

$ cvt 1280  1024  60
# 1280x1024 59.89 Hz (CVT 1.31M4) hsync: 63.67 kHz; pclk: 109.00 MHz
Modeline "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
  • 1
  • 2
  • 3
  1. 使用newmode创建一个mode,参数就是上面的modeline后的内容,命令如下:
xrandr --newmode "1280x1024_60.00"  109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
  • 1
  1. 新建模式,将新模式添加至当前输出设备:
xrandr --addmode eDP1 1280x1024_60.00
  • 1

如果出错,则说明不支持此模式。

  1. 设置newmode为当前分辨率:
xrandr --output eDP1 --mode 1280x1024_60.00
  • 1
  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,分别为eDP1HDMI1

设置主屏

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/****进行保存。

 

xrandr --output "DISP3 BG" --rotate normal/inverted/left/right

引用:

 

<think>嗯,用户想了解xrandr和cvt命令。这两个工具在Linux系统中用于显示配置,我得先回忆一下它们的具体用途和用法。 首先,xrandr是X Window系统的扩展,用来调整屏幕分辨率、旋转方向什么的。它还能管理多显示器,比如扩展或镜像屏幕。而cvt命令是用来生成模型ine,可能用户需要自定义分辨率的时候会用到。 用户可能是遇到了外接显示器的问题,或者想调整分辨率,但系统默认没有提供所需的分辨率。这时候就需要用cvt生成新的模式,再用xrandr添加进去。 接下来得详细解释每个命令的用法。比如xrandr的基本命令,列出当前显示设备,调整分辨率,旋转屏幕。然后cvt怎么计算模型ine的参数,生成正确的xrandr命令。 可能用户不太清楚步骤,所以需要分步骤说明。比如先用xrandr查看现有显示设备和分辨率,再用cvt生成新模式,用xrandr添加模式,最后应用新分辨率。还要注意可能的错误,比如显示器不支持自定义分辨率,导致黑屏,这时候需要指导如何恢复。 还要提醒用户备份配置,避免系统问题。另外,不同Linux发行版可能有差异,但大多数基于Xorg的应该适用。如果用户用的是Wayland,可能这些命令不适用,需要说明。 总之,结构要清晰,步骤明确,给出实际例子,让用户能一步步操作,同时注意潜在的问题和解决办法。</think>以下是对 `xrandr` 和 `cvt` 命令的分步介绍: --- ### 1. **xrandr 是什么?** - **用途**:Linux 下管理显示器的命令行工具(基于 X Window 系统)。 - **核心功能**: - 查看显示器信息(如分辨率、刷新率) - 调整屏幕分辨率、旋转方向 - 管理多显示器(扩展/镜像/关闭屏幕) #### 常用操作: - **查看当前显示设备**: ```bash xrandr ``` 输出示例: ``` HDMI-1 connected 1920x1080+0+0 ... # 当前连接的显示器及分辨率 ``` - **设置分辨率**(需设备支持): ```bash xrandr --output HDMI-1 --mode 1920x1080 ``` - **旋转屏幕**(90度/逆时针): ```bash xrandr --output HDMI-1 --rotate left ``` --- ### 2. **cvt 是什么?** - **用途**:生成自定义显示模式的工具(计算 `Modeline` 参数)。 - **适用场景**:当系统未提供所需分辨率时,通过 `cvt` 生成参数,再用 `xrandr` 添加新分辨率。 #### 操作步骤: 1. **生成模型ine**(例如创建 1440x900 60Hz 模式): ```bash cvt 1440 900 60 ``` 输出示例: ``` # 1440x900 59.89 Hz (CVT 1.30MA) hsync: 55.84 kHz; pclk: 106.50 MHz Modeline "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync ``` 2. **将模型ine添加到 xrandr**: ```bash xrandr --newmode "1440x900_60.00" 106.50 1440 1528 1672 1904 900 903 909 934 -hsync +vsync ``` 3. **为显示器应用新分辨率**: ```bash xrandr --addmode HDMI-1 "1440x900_60.00" xrandr --output HDMI-1 --mode "1440x900_60.00" ``` --- ### 3. **注意事项** - **兼容性**:自定义分辨率可能导致黑屏(显示器不支持时),需谨慎操作。 - **临时生效**:通过 `xrandr` 的配置重启后失效,需持久化可写入 `~/.xprofile` 或 Xorg 配置文件。 - **备份配置**:修改前建议备份 `/etc/X11/xorg.conf`。 --- ### 4. **实际案例** **问题**:外接投影仪仅支持 1280x800 分辨率,但系统未提供该选项。 **解决**: 1. 用 `cvt 1280 800 60` 生成模型ine。 2. 通过 `xrandr` 添加并应用新分辨率。 --- 通过以上步骤,你可以灵活管理 Linux 系统的显示设置,尤其适用于多显示器或非标准分辨率场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值