7
6月
2021
11:52

如何从 Linux 命令行更改显示分辨率

7 6月 2021 11:52

如果屏幕上的图像分辨率与显示分辨率不匹配,您可以使用命令行更改分辨率。

На 我在装有 Linux Mint 19.3 操作系统的 PC 上工作,拥有分辨率为 1366 x 768 像素的宽屏显示器。 有一天,我在关闭显示器的情况下启动计算机,并将分辨率设置为 1024 x 768。不知何故,这个分辨率被记住了,图像被拉伸了。

运行_main_显示器的诊断(显示器支持的显示分辨率):

xrandr -d :0 -q

屏幕 0:最小 8 x 8,当前 1024 x 768,最大 32767 x 32767
VGA1接初级1024x768+0+0(正常左倒右x轴y轴)0mm x 0mm
1024x768 60.00*
800x600 60.32 56.25
848x480 60.00
640x480 59.94

如您所见,系统选择的分辨率为1024x768,并标有星号*。

 

解决问题

  1. 找出显示器型号(后盖上的贴纸) - 使用规格中的型号,找出显示器支持的最大分辨率。
    在本例中,为 1366 x 768 像素,刷新率为 60 Hz。

连接到 Internet 并安装 xcvt 软件包。

sudo apt install xcvt

  1. 运行命令 无级变速器 与分辨率和刷新率对应的参数:
    CVT 1366 768 60

就我而言,输出如下:

#1368x768 59.88 Hz (CVT) 水平同步:47.79 kHz; pclk:85.25兆赫
模型行“1368x768_60.00”85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync

  1. 您需要将线路输入 xrandr 输入以创建新的视频模式:

xrandr --newmode "1368x768_60.00" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +vsync

  1. 找出显示的名称 - 由 xrandr 命令显示:

    xrandr -d :0 -q

就我而言,只有一个显示器及其名称 VGA1

  1. 将先前创建的新模式添加到显示中:

xrandr --addmode VGA1 1368x768_60.00

  1. 最后,我运行命令来更改图像分辨率(将显示切换到新模式“1368x768_60.00”):

sudo xrandr --output VGA1 --mode 1368x768_60.00

显示屏可能会闪烁或闪烁。 如果一切顺利,图像将成为所选的分辨率。

如有必要,将分辨率恢复为 1024x768:
按几次 Enter 键,然后在命令行中输入以下命令

sudo xrandr --output VGA1 --mode 1024x768

如有必要,重复更改显示模式:

xrandr --output VGA1 --mode 1368x768_60.00

按“输入"

不需要每次都输入sudo密码。


分辨率为 1280x1024 的显示器的附加功能:

cvt 1280 1024 60
xrandr --newmode "1280x1024_60.00"   109.00  1280 1368 1496 1712  1024 1027 1034 1063 -hsync +vsync
xrandr --addmode VGA-1 1280x1024_60.00
sudo xrandr --output VGA-1 --mode 1280x1024_60.00

! !! 2023 年 12 月 29 日新增:要设置显示分辨率并保存可立即运行的 shell 脚本来更改屏幕分辨率,您可以使用该程序 阿兰德尔:
!!!sudo apt安装arandr
! !!阿兰德尔

! 2026 年 1 月 27 日更新:某些显卡驱动程序响应设置 xrandr --output 模式的命令,但出现错误“xrandr:无法获取输出默认的 gamma 大小”、“xrandr:配置 crtc 0 失败”和“xrandr:Gamma 大小为 0”。 您可以尝试在加载时在Grub菜单中按“e”或“Tab”并将类似的内容添加到GRUB_CMDLINE_LINUX_DEFAULT行参数中 nvidia_drm.fbdev=1 nvidia_drm.modeset=1。 或者对于 ATI Rage 128 显卡: fb.fbdev=1 fb.modeset=1,取决于 /var/log/Xorg.0.log 文件的内容。 并继续加载 F10 或 Ctrl+X 或 Enter。 仍然不适用于旧显卡的复杂命令的示例: sudo xrandr --输出默认 --平移 1368x768 --crtc 0 --brightmess 1.0 --scale 1x1 --gamma 1:1:1,错误是相同的:“xrandr:Gamma 大小为 0”。 那么最简单的方法就是更换显卡。 ;-[

登录 Linux 时永久设置显示分辨率

我将以下三个命令写入可执行文件中。

首先,我在我的主文件夹中创建了一个空文件

nano resolution.sh

并在其中插入4行文本:

#!/bin/bash
xrandr --newmode "1368x768_60" 85.25 1368 1440 1576 1784 768 771 781 798 -hsync +垂直同步
xrandr --addmode VGA1 1368x768_60
xrandr --输出 VGA1 --模式 1368x768_60

已保存文件。

相同的文件,但对于 1280x1024 显示器,我附上:
分辨率.sh.zip

授予权限 - 仅由当前用户(所有者)执行。

sudo chmod 700 resolution.sh

添加到启动(我有 LXQT shell):
开始 - 选项 - LXQT 设置 - 会话设置 - 自动启动 - 添加
sh /home/vladimir/resolution.sh
确认后关闭了窗口。

! 另一种选择是将命令添加到用户主目录中的文件中 .xinitrc:

导出 GNOME_SHELL_SESSION_MODE=ubuntu
导出 XDG_CURRENT_DESKTOP=ubuntu:GNOME
导出 XDG_DATA_DIRS=/usr/share/openbox:/usr/local/share/:/usr/share/


xrandr --newmode "1280x1024_60.00" 109.00 1280 1368 1496 1712 1024 1027 1034 1063 -hsync +垂直同步
xrandr --addmode VGA-1 1280x1024_60.00
xrandr --输出 VGA-1 --模式 1280x1024_60.00

注销并登录查看。 输入后,显示屏闪烁并应用正确的显示分辨率。
另外,可以从窗口运行命令文件resolution.sh终端

HDMI 连接和多显示器的情况

与上面讨论的通过 VGA 线连接不同,当使用通过 HDMI 接口连接的多台显示器时,命令语法有所不同:

xrandr --newmode DVI-I-1 mode_name1 ...
xrandr --newmode DVI-I-2 mode_name2 ...
xrandr --addmode DVI-I-1 模式名称1
xrandr --addmode DVI-I-2 模式名称2
xrandr --输出 DVI-I-1 --模式 mode_name1
xrandr --输出 DVI-I-2 --模式 mode_name1

可以使用相同的命令获取监控接口名称

xrandr -q

添加: 可以使用图形实用程序准备用于同时更改多个显示器分辨率的 shell 命令文件 阿兰德尔 (安装: sudo apt安装arandr )。 arandr 这个名称代表“Another XRandR GUI”(用于安装 XRandR 的 GUI 实用程序)。

添加:适用于桌面环境LXQT (在 Lubuntu 操作系统、Fedora Linux 或自安装的 shell 中)- 有一个图形实用程序 lxqt-配置-监视器 可在菜单“选项”-“LXQT 设置”-“监视器设置”。 借助它的帮助,您可以更改显示器屏幕的分辨率和刷新率,并将设置保存在“配置文件”(设置文件)中。 但是,LXQT 中的屏幕分辨率配置文件无法从命令行进行编辑。 实用性 **lxqt-配置-监视器**修改文本文件:
./.config/autostart/lxqt-config-monitor-autostart.desktop
./.config/lxqt/lxqt-config-monitor.conf

从文件启动 LxQT 会话时,将使用此处列出的设置文件 〜/.xinitrc,从中调用脚本 执行startlxqt


资料来源:
https://askubuntu.com/questions/281509/...
linuxmint.com 论坛



相关出版物