有没有办法在没有gui的情况下启动gui应用程序?

有没有办法在没有gui的情况下启动gui应用程序?

我正在使用 Linux Mint MATE。我想启动一个不被我的眼睛识别的 GUI 应用程序。我尝试了以下代码,该代码启动应用程序并wmctrl在启动后立即将其移动到另一个工作区,但这不起作用。

some_app_with_gui &
wmctrl -r title -t 1 #move window to another workspace (Say I'm in workspace 0 now)

如..所示这里,原因是在窗口出现wmctrl之前执行。some_app_with_gui所以解决方案是

some_app_with_gui &
sleep 0.8
wmctrl -r title -t 1 #move window to another workspace (Say I'm in workspace 0 now)

这确实有效。

然而,使用此解决方案,我的眼睛会暂时识别该窗口(0.1 秒左右)。这确实很烦人,我想避免它。

有什么解决办法吗?它不一定必须使用wmctrl.任何其他命令都可以。请注意,我不访问该窗口,即应用程序由脚本启动并由脚本关闭,因此完全隐藏窗口是可以的。


这个问题与类似标题的问题有何不同

  • 仅涉及一台机器(与 SSH 无关)

  • 我想启动 GUI 应用程序在具有桌面环境的计算机上没有图形用户界面。

答案1

你可以使用虚拟帧缓冲区 X 服务器, Xvfb.

例如:

Xvfb :99 &
DISPLAY=:99 some_app_with_gui &

这会在完全虚拟的 X 显示器上运行应用程序,该显示器在任何物理显示器上根本不可见。

Xvfb通常是一个单独的包,因此您可能需要在使用之前使用发行版的包管理器来安装它。

答案2

为此,我个人使用自己的工具,称为昂温

就像是电信答复, 但自动化何时等待并关闭 xvfb。

如果 xvfb 不是准备好,它会等待它。一旦没有程序跑步在帧缓冲区上,xvfb 自动关闭。

相关内容