如何使 xrandr 屏幕分辨率永久不变?

如何使 xrandr 屏幕分辨率永久不变?

我创建了脚本文件并将其命名为lightdmxrandr.sh。文件内容如下:

xrandr --newmode "1024x768_60.00"   63.50  1024 1072 1176 1328  768 771 775 798 -hsync +vsync
xrandr --addmode LDVS-0 1024x768_60.00
xrandr --output DisplayPort-0 --off --output LVDS-0 --mode 1024x768_60.00 --pos 0x0 --rotate normal --output HDMI-0 --off
unity --replace

并在终端写入:bash home/kakao/lightdmxrandr.sh我收到以下错误

kakao@kakao-dro:~$ bash /home/kakao/lightdmxrandr.sh
X Error of failed request:  BadName (named color or font does not exist)
  Major opcode of failed request:  140 (RANDR)
  Minor opcode of failed request:  16 (RRCreateMode)
  Serial number of failed request:  29
  Current serial number in output stream:  29
xrandr: cannot find output "LDVS-0"
xrandr: cannot find mode 1024x768_60.00
unity-panel-service stop/waiting
unity-panel-service start/running, process 2960
compiz (core) - Info: Loading plugin: core
compiz (core) - Info: Starting plugin: core
compiz (core) - Info: Loading plugin: ccp
compiz (core) - Info: Starting plugin: ccp
Killed

答案1

首先,您必须使用 xrandr 来确保新模式能够适合最大帧缓冲区大小:

xrandr | grep maximum

稍后您必须使用 gtf 创建模式行:

gtf 1024 768 60.00

您可以使用 xrandr 添加新模式:

xrandr --newmode "1024x768_60.00"   63.50  1024 1072 1176 1328  768 771 775 798 -Hsync +Vsync

现在您可以将此新添加的模式添加到所需的输出(VGA/LVDS)

xrandr --addmode LDVS-0 1024x768_60.00

现在你必须选择新的模式

xrandr --output LDVS-0 --mode 1024x768_60.00

一旦您验证一切正常,您就可以创建脚本来使更改持久化。

答案2

输出名称不正确:

xrandr: cannot find output "LDVS-0"

您可以使用以下方法找到正确的输出名称:

xrandr -q | grep " connected"

就我而言:

eDP-1 connected primary 1864x1050+0+0 (normal left inverted right x axis y axis) 346mm x 194mm

即我必须使用eDP-1作为输出名称。

答案3

如果名称已经定义,则可能出现 BadName。

我昨天也遇到了这个 badname 问题,并编写了一个可以帮我思考的小 bash 脚本 ;-)

如果需要,它会动态创建模式行,如果可能的话,它会自动选择输出,因此可能会直接解决您的问题。

https://github.com/philippkemmeter/set-resolution

相关内容