i3桌面环境-xrandr添加新的分辨率模式1920x1080

本文详细介绍了如何在Ubuntu 16.04的i3环境下通过xrandr添加并设置1920x1080分辨率模式,以解决全屏显示不完整的问题,包括查看现有模式、创建新模式、绑定虚拟显示器和配置i3。

xrandr添加新的分辨率模式1920x1080

为什么要添加分辨率模式1920x1080?

  • 虚拟机中使用xrandr查看没有1920x1080,全屏后无法覆盖整个屏幕。

基本测试环境

  • i3版本
i3 version 4.11 (2015-09-30, branch "4.11") © 2009 Michael Stapelberg and contributors
  • xrandr版本
zp@cfanzp-vm:~$ xrandr -v
xrandr program version       1.5.0
Server reports RandR version 1.5
  • ubuntu版本
zp@cfanzp-vm:~$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.7 LTS
Release:	16.04
Codename:	xenial

添加方法

  • 查看当前显示设置
zp@cfanzp-vm:~$ xrandr
Screen 0: minimum 1 x 1, current 1440 x 900, maximum 8192 x 8192
Virtual1 connected primary 1440x900+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   800x600       60.00 +  60.32  
   2560x1600     59.99  
   1920x1440     60.00  
   1856x1392     60.00  
   1792x1344     60.00  
   
   1920x1200     59.88  
   1600x1200     60.00  
   1680x1050     59.95  
   1400x1050     59.98  
   1280x1024     60.02  
   1440x900      59.89*  
   1280x960      60.00  
   1360x768      60.02  
   1280x800      59.81  
   1152x864      75.00  
   1280x768      59.87  
   1024x768      60.00  
   640x480       59.94  
Virtual2 disconnected (normal left inverted right x axis y axis)
Virtual3 disconnected (normal left inverted right x axis y axis)
Virtual4 disconnected (normal left inverted right x axis y axis)
Virtual5 disconnected (normal left inverted right x axis y axis)
Virtual6 disconnected (normal left inverted right x axis y axis)
Virtual7 disconnected (normal left inverted right x axis y axis)
Virtual8 disconnected (normal left inverted right x axis y axis)
  • 查看添加模式信息
zp@cfanzp-vm:~$ cvt 1920 1080
6 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz
Modeline "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
  • 添加新的模式
xrandr --newmode "1920x1080_60.00"  173.00  1920 2048 2248 2576  1080 1083 1088 1120 -hsync +vsync
  • 绑定虚拟显示器
xrandr --addmode Virtual1 "1920x1080_60.00"
  • 设置显示器
xrandr -s 1920x1080
  • 查看新的设置是否成功
zp@cfanzp-vm:~$ xrandr
Screen 0: minimum 1 x 1, current 1920 x 1080, maximum 8192 x 8192
Virtual1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 0mm x 0mm
   800x600       60.00 +  60.32  
   2560x1600     59.99  
   1920x1440     60.00  
   1856x1392     60.00  
   1792x1344     60.00  
   1920x1200     59.88  
   1600x1200     60.00  
   1680x1050     59.95  
   1400x1050     59.98  
   1280x1024     60.02  
   1440x900      59.89  
   1280x960      60.00  
   1360x768      60.02  
   1280x800      59.81  
   1152x864      75.00  
   1280x768      59.87  
   1024x768      60.00  
   640x480       59.94  
   1920x1080_60.00  59.96* 
Virtual2 disconnected (normal left inverted right x axis y axis)
Virtual3 disconnected (normal left inverted right x axis y axis)
Virtual4 disconnected (normal left inverted right x axis y axis)
Virtual5 disconnected (normal left inverted right x axis y axis)
Virtual6 disconnected (normal left inverted right x axis y axis)
Virtual7 disconnected (normal left inverted right x axis y axis)
Virtual8 disconnected (normal left inverted right x axis y axis)

  • i3配置文文件中设置分辨率
vim ~/.config/i3/config
exec --no-startup-id xrandr -s 1920x1080

参考链接

  • https://blog.youkuaiyun.com/qq_45662588/article/details/118442061

总结

  • 查看设置:xrandr
  • 查看需要设置的分辨率信息:cvt 1920 1080
  • 添加新的模式:xrandr --newmode “1920x1080_60.00” 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync
  • 绑定虚拟显示器:xrandr --addmode Virtual1 “1920x1080_60.00”
  • 设置分辨率:xrandr -s 1920x1080
  • i3配置文件设置分辨率:exec --no-startup-id xrandr -s 1920x1080
<think>我们正在解决的是:使用xrandr设置分辨率1920x1080时提示检测不到分辨率的问题。 根据引用[1][2][3][4]的内容,我们可以通过以下步骤解决: 1. 使用cvt命令生成一个1920x1080分辨率模式行(Modeline) 2. 用xrandr创建一个新的显示模式 3. 将新创建的模式添加到指定的输出(显示器) 4. 最后设置该输出使用新添加模式 具体步骤如下: #### 步骤1:生成模式行 打开终端,运行以下命令生成1920x1080分辨率60Hz刷新率的模式行: ```bash cvt 1920 1080 60 ``` 输出示例: ```bash # 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync ``` 我们需要的就是第二行`Modeline`后面的内容(包括引号内的名称和后面的参数)。 #### 步骤2:创建新的显示模式 复制上面输出的整行(从`Modeline`开始,注意不包括开头的`#`注释行),然后用`xrandr --newmode`命令创建新模式: ```bash xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync ``` 注意:这里引号内的名称可以自定义,但通常使用上述格式。 #### 步骤3:将新模式添加到指定输出 首先,我们需要知道要应用到的显示器名称(输出名称)。运行: ```bash xrandr ``` 在输出中找到你想设置的显示器名称(如`eDP-1`、`HDMI-1`、`DP-1`或`Virtual1`等)。然后,将新模式添加到该输出: ```bash xrandr --addmode <显示器名称> "1920x1080_60.00" ``` 例如,如果显示器名称是`Virtual1`(在虚拟机中常见),则: ```bash xrandr --addmode Virtual1 "1920x1080_60.00" ``` #### 步骤4:应用新模式 最后,设置该输出使用我们添加的新模式: ```bash xrandr --output <显示器名称> --mode "1920x1080_60.00" ``` 例如: ```bash xrandr --output Virtual1 --mode "1920x1080_60.00" ``` #### 永久保存设置(可选) 如果希望每次启动都自动应用,可以将上述命令添加到启动脚本中。根据不同的桌面环境,可以添加到: - `~/.profile` - `~/.xprofile` - `~/.xinitrc` 或者使用系统服务(如lightdm)的启动脚本。例如,在Ubuntu中,可以创建一个脚本文件(如`fix_resolution.sh`)并放在`/etc/profile.d/`目录下,或者使用`~/.config/autostart/`目录下的桌面项。 #### 示例脚本(永久设置) 创建一个脚本文件(例如`set_resolution.sh`): ```bash #!/bin/bash # 生成模式行并创建新模式的命令 xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync xrandr --addmode Virtual1 "1920x1080_60.00" xrandr --output Virtual1 --mode "1920x1080_60.00" ``` 然后给脚本执行权限: ```bash chmod +x set_resolution.sh ``` 最后,将脚本添加到开机启动(例如通过“启动应用程序”设置)。 ### 注意事项 1. **虚拟机环境**:如引用[3][4]所示,虚拟机中显示器名称通常为`Virtual1`,请根据实际情况调整。 2. **权限问题**:如果遇到权限问题,可能需要使用`sudo`执行`xrandr --newmode`和`xrandr --addmode`(但通常用户模式下也可以执行,尤其是在用户会话中)。 3. **模式名称一致**:确保在`--newmode`、`--addmode`和`--mode`中使用的模式名称一致(包括大小写和空格)。 ### 常见问题解决 - **如果提示“xrandr: Failed to get size of gamma for output default”**:这通常是因为没有正确指定显示器,请再次检查`xrandr`命令输出的显示器名称。 - **如果添加模式后仍然无法选择**:尝试重启X会话(注销再登录)或重启系统。 通过以上步骤,应该可以解决xrandr设置1920x1080分辨率时检测不到的问题[^1][^2][^3][^4]。 §§相关问题§§ 1. 如何查看当前系统支持的分辨率模式? 2. 如何删除使用`xrandr --newmode`添加的自定义分辨率模式3. 如何设置双显示器的不同分辨率?</think>### 解决 xrandr 设置 1920x1080 分辨率报错的方法 当使用 xrandr 设置 1920x1080 分辨率时出现"检测不到分辨率"错误,通常是因为系统未注册该分辨率模式。以下是完整的解决方案: #### 1. 生成分辨率模式信息 ```bash cvt 1920 1080 60 ``` 输出示例: ``` # 1920x1080 59.96 Hz (CVT 2.07M9) hsync: 67.16 kHz; pclk: 173.00 MHz Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync ``` #### 2. 创建新分辨率模式 ```bash xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync ``` 📌 注意:引号内的模式名称必须与 cvt 输出的 Modeline 名称完全一致[^1] #### 3. 确定显示器标识符 ```bash xrandr ``` 在输出中找到目标显示器标识符(如 `eDP-1`, `HDMI-1`, `Virtual1` 等) #### 4. 添加模式到显示器 ```bash xrandr --addmode <显示器标识> "1920x1080_60.00" ``` 示例(虚拟机环境): ```bash xrandr --addmode Virtual1 "1920x1080_60.00" # 引用[3][^3] ``` #### 5. 应用新分辨率 ```bash xrandr --output <显示器标识> --mode "1920x1080_60.00" ``` 示例: ```bash xrandr --output Virtual1 --mode "1920x1080_60.00" # 引用[3][^3] ``` ### 永久保存配置(避免重启失效) ```bash sudo nano /etc/profile.d/set_resolution.sh ``` 添加以下内容: ```bash #!/bin/bash xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync xrandr --addmode Virtual1 "1920x1080_60.00" xrandr --output Virtual1 --mode "1920x1080_60.00" ``` 保存后设置可执行权限: ```bash sudo chmod +x /etc/profile.d/set_resolution.sh ``` ### 故障排除 1. **权限问题**:在虚拟机中可能需要使用 `sudo` 2. **模式名称不匹配**:确保所有命令中的模式名称一致 3. **显示器标识错误**:通过 `xrandr` 确认正确的显示器标识符 4. **刷新率问题**:尝试不同刷新率(如 `cvt 1920 1080 50`) ### 数学原理 分辨率设置涉及时序参数计算: $$ \text{像素时钟} = \frac{\text{水平像素} \times \text{垂直像素} \times \text{刷新率}}{\text{空白间隔因子}} $$ 其中空白间隔因子约为 1.05,因此: $$ 173.00 \text{MHz} \approx \frac{1920 \times 1080 \times 60}{1.05} $$ > **提示**:在虚拟机中(如 VMware/VirtualBox),需先安装增强工具/客户机附加组件才能支持高分辨率[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

打杂程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值