我完全是菜鸟,所以如果我说了一些愚蠢或不连贯的话,请原谅。
我正在通过 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"
我尝试了多种方法让它在重新启动或启动虚拟机时自动运行,但到目前为止没有任何效果。
- 我尝试将它添加到我和 root 的 crontabs 中,并加上标签
@reboot $HOME/bash_scripts/resolution.sh
我尝试将脚本的内容添加到我的 .bashrc 文件中,这样它就可以工作,并在我打开终端时立即修复分辨率(如预期的那样),但我试图在到达登录页面时立即修复分辨率。此外,这种方法会产生问题,因为它每次我打开终端窗口时都会尝试创建新模式,而这并不是我想要的
我将脚本的内容添加到根目录中的 .profile 文件中,但效果不佳。新模式已创建并添加,但未被选中(如果我输入 xrandr,我可以看到模式“2560x1080_60.00”已成功创建)。我也尝试在主目录中的 .xprofile 文件中执行此操作,但无济于事,如下所示这个答案
在 .config/autostart 中,我创建了文件 .desktop 并添加了命令,但仍然没有任何作用。
我读过这里的一些旧帖子,了解如何在 gdm 或 /etc/ 目录中的其他文件夹中执行此操作,但我并不熟悉或没有足够的经验来修改任何这些文件。
非常感谢您的帮助!