我正在使用 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的桌面环境的机器上启动 gui 应用程序。
您可以使用虚拟帧缓冲区 X 服务器,
Xvfb
.例如:
这会在完全虚拟的 X 显示器上运行应用程序,在任何物理显示器上根本看不到任何可见的存在。
Xvfb
通常是一个单独的包,因此您可能需要使用发行版的包管理器来安装它,然后再使用它。为此,我个人使用了我自己的一个工具,叫做unwin。
就像telcoM answer一样,但是自动等待和关闭 xvfb 的时间。
如果 xvfb 没有准备好,它将等待它。一旦帧缓冲区上没有程序运行,xvfb 就会自动关闭。