![如何在没有桌面环境的情况下运行我的 GUI 应用程序并使其全屏化?](https://linux22.com/image/1089152/%E5%A6%82%E4%BD%95%E5%9C%A8%E6%B2%A1%E6%9C%89%E6%A1%8C%E9%9D%A2%E7%8E%AF%E5%A2%83%E7%9A%84%E6%83%85%E5%86%B5%E4%B8%8B%E8%BF%90%E8%A1%8C%E6%88%91%E7%9A%84%20GUI%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E5%B9%B6%E4%BD%BF%E5%85%B6%E5%85%A8%E5%B1%8F%E5%8C%96%EF%BC%9F.png)
我在 Intel Celeron CPU 上运行 ubuntu 16.04。
Linux kevin-minipc 4.8.0-39-generic #42~16.04.1-Ubuntu SMP Mon Feb 20 15:06:07 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
我编写了一个 Qt 应用程序。当我在桌面环境中运行它时,它是全屏的。
现在,我希望系统自动登录,并且当系统在没有桌面环境的情况下启动时,我的应用程序作为 X 客户端全屏运行。
因此我做了以下改变:
lightdm.conf
添加一个名为的文件/etc/lightdm
:[Seat:*] user-session=myxclient autologin-user=kevin autologin-user-timeout=delay
kevin
是我的系统账户。myxclient.desktop
添加文件/usr/share/xsessions
:[Desktop Entry] Name=myapp Comment=myapp Exec=/home/kevin/myapp Icon= Type=Application
/home/kevin/myapp
是我的 Qt 应用程序的路径。
当我重新启动并且系统启动时,myapp 将在没有桌面的情况下运行,但是它不是全屏我尝试在 .desktop 文件中运行其他应用程序,例如 Firefox,但它也不是全屏的。
那么,我该如何让它全屏呢?其他一些方法也是可以接受的。(最好当我使用不同尺寸的显示器时不必更改任何配置。)
还有一个问题:没有桌面环境,我可以使用像 ibus 这样的输入程序吗?
答案1
这取决于您运行的应用程序。您的应用程序可能会接受参数,例如 --fullscreen 或 --window-size。但是,全屏取决于窗口管理器,因此如果您只有显示管理器(LightDM)而没有窗口管理器,最好简单地将应用程序窗口大小设置为整个屏幕大小。
此外,我没有将应用程序作为 LightDM 配置文件中定义的会话运行,而是在 ~/.xsession 文件中定义了它。默认情况下,没有窗口管理器的 LightDM 会执行 xterm。当您有 ~/.xsession 文件时,它会代替 xterm 执行。
例如,我有一个装有 Chromium 浏览器的自助服务终端,我使用它开始
chromium --app=https://example.com --window-position=0,0 --window-size=1920,1080
如果您的应用程序不支持窗口位置和大小,您可以使用 xdotool(Debian 上的 xdotool 包)调整大小,这需要一些脚本。启动应用程序后,您必须首先使用以下命令获取可见窗口编号:
xdotool search --onlyvisible --maxdepth 1 ""
然后下一步移动并调整窗口大小
xdotool windowmove {window_number} {posx} {posy} windowsize {window_num} {sizex} {sizey}