如何设置使用 startx 启动的应用程序的分辨率和旋转屏幕

如何设置使用 startx 启动的应用程序的分辨率和旋转屏幕

我安装了 Ubuntu Server 20.04,并在其上添加xubuntu-desktop并禁用了它systemctl set-default multi-user,我只需要随附的库来启动我的应用程序。

所以现在我有一个仅以 CLI 模式启动的安装。

登录后,我appimage使用 启动一个应用程序startx myapp.appimage

我的问题是它没有使用显示器的整个尺寸,而只是使用了中间的一个正方形,而且我在尝试旋转该屏幕时遇到了另一个问题,因为我的显示器是纵向的。

我已经搜索了一段时间来寻找这些答案,虽然接近答案,但还没有完全找到。

人们说尝试一下xrandr,例如xrandr -q应该列出你的视频输出,但它返回Can't open display。我可能必须创建一个.xsession.xinitrc文件并xrandr在其中运行startx?我迷路了……

我还看到有人谈论在监视器部分添加选项xorg.conf。此文件在文件系统中不存在,但有替代方案xorg.conf.d,在那里,我找不到他们谈论的部分,似乎我必须自己创建它,但这意味着将设置硬编码到这个特定的监视器,不是吗?

我的显卡芯片是:VGA compatible controller Intel Corporation HD Graphics 500,需要安装驱动程序吗?

顺便说一句,如果我让 xubuntu 桌面启动,它似乎是全屏的,并且具有正确的分辨率。

这个应用程序将是一个信息亭应用程序,所以这就是我不想要桌面的原因。

我希望它就像设置一些startx参数一样简单。

编辑:我取得了一些进展。

我没有使用startx myapp.appimage,而是创建了一个.xinitrc文件,并在该文件中写道:

xrandr
myapp.appimage

然后使用 启动它startx > output.log

这将启动我的应用程序,在日志中,我看到 xrandr 的输出,我有一个名为“默认”的输出,最大分辨率为 1920*1080。

当我将该xrandr命令更改为xrandr --output default --rotate left没有任何不同时,日志中没有错误,但应用程序仍然没有旋转。

答案1

我找到了解决方案:

startx它会自行启动其中的内容.xinitrc,您可以覆盖它并指定要启动的文件,就像我对 所做的那样startx myapp.appimage,在这种情况下它会忽略.xinitrc

解决方案是更新.xinitrc

xrandr --output DP-1 --rotate left --fb 1080x1920
myapp.appimage

但这还不是全部。

我必须nomodeset从 GRUB 中删除它,这样我才能运行(没有错误):

Xorg :0 -configure
cp /root/xorg.conf.new /etc/X11/xorg.conf

这两个命令发现了我的显示器和所有输出端口,并可以xrandr与之配合使用DP-1

然后,调用startx(不指定我的应用程序)将运行.xinitrc并旋转屏幕,设置分辨率并启动我的应用程序。

如果我没有添加nomodeset到 GRUB,我很可能就会更早找到解决方案。

相关内容