Ubuntu 20.04 xrandr 自定义分辨率在重启后不适用

Ubuntu 20.04 xrandr 自定义分辨率在重启后不适用

我完全是菜鸟,所以如果我说了一些愚蠢或不连贯的话,请原谅。

我正在通过 virtualbox 运行 Ubuntu 20.04,目前无法保持自定义分辨率。我已经安装了客户机附加组件以及 X11 客户机附加组件。

我有以下 bash 脚本我发现并根据我的目的进行了修改:

#!/bin/bash

# setup my massive monitor at 45hz if its plugged in

RESOLUTION="2560 1080 60" 
OUTPUT="Virtual1"

CONNECTED=$(xrandr --current | grep -i $OUTPUT | cut -f2 -d' ')

if [ "$CONNECTED" = "connected" ]; then
    MODELINE=$(cvt $RESOLUTION | cut -f2 -d$'\n')
    MODEDATA=$(echo $MODELINE | cut -f 3- -d' ')
    MODENAME=$(echo $MODELINE | cut -f2 -d' ')

    echo "Adding mode - " $MODENAME $MODEDATA
    echo "xrandr --newmode " $MODENAME $MODEDATA
    echo "xrandr --addmode " $OUTPUT $MODENAME
    echo "xrandr --output " $OUTPUT " --mode " $MODENAME
    xrandr --newmode $MODENAME $MODEDATA
    xrandr --addmode $OUTPUT $MODENAME
    xrandr --output $OUTPUT --mode $MODENAME
else
    echo "Monitor is not detected"
fi

在回显脚本执行的命令后,我得到以下内容:

xrandr --newmode  "2560x1080_60.00" 230.00 2560 2720 2992 3424 1080 1083 1093 1120 -hsync +vsync
xrandr --addmode  Virtual1 "2560x1080_60.00"
xrandr --output  Virtual1  --mode  "2560x1080_60.00"

我尝试了多种方法让它在重新启动或启动虚拟机时自动运行,但到目前为止没有任何效果。

  1. 我尝试将它添加到我和 root 的 crontabs 中,并加上标签
@reboot $HOME/bash_scripts/resolution.sh
  1. 我尝试将脚本的内容添加到我的 .bashrc 文件中,这样它就可以工作,并在我打开终端时立即修复分辨率(如预期的那样),但我试图在到达登录页面时立即修复分辨率。此外,这种方法会产生问题,因为它每次我打开终端窗口时都会尝试创建新模式,而这并不是我想要的

  2. 我将脚本的内容添加到根目录中的 .profile 文件中,但效果不佳。新模式已创建并添加,但未被选中(如果我输入 xrandr,我可以看到模式“2560x1080_60.00”已成功创建)。我也尝试在主目录中的 .xprofile 文件中执行此操作,但无济于事,如下所示这个答案

  3. 在 .config/autostart 中,我创建了文件 .desktop 并添加了命令,但仍然没有任何作用。

我读过这里的一些旧帖子,了解如何在 gdm 或 /etc/ 目录中的其他文件夹中执行此操作,但我并不熟悉或没有足够的经验来修改任何这些文件。

非常感谢您的帮助!

相关内容