我安装了 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,我很可能就会更早找到解决方案。