我可以从终端启动一个程序并让它在后台直观地启动吗?

我可以从终端启动一个程序并让它在后台直观地启动吗?

如果我从终端打开一个程序(例如 Firefox),那么该程序将获得 GUI 的焦点。我能否以某种方式打开它,以便它在可视背景中运行,而不会弹出,从而阻止我正在使用的任何当前程序?

我的问题是我使用了 karma test runner,每次我编辑代码时都会运行它。每次运行后,karma 都会启动一个浏览器,它会弹出到屏幕上的所有其他内容前面,这可能相当烦人。

我正在使用 Ubuntu 13.04。

答案1

为此,您需要xdotool。要安装它,请在终端中运行以下命令:

sudo apt-get install xdotool

现在,我将解释如何使用脚本在 Firefox 中执行此操作:

  • 在终端运行:

    mkdir -p bin
    

    如果您还没有目录,此命令将bin在您的文件夹中创建一个目录。home

  • 运行后:

    gedit ~/bin/firefox.sh
    

    change_sources.sh这将在 gedit 中创建新文件。

  • 将以下脚本复制并粘贴到新创建的文件中:
#!/bin/bash

delay=2
windowId=$(xdotool getwindowfocus)

firefox &
sleep $delay

xdotool windowactivate $windowId
  • 保存文件并关闭。
  • 返回终端并运行:

    chmod +x ~/bin/firefox.sh
    

    授予脚本的执行权限。

  • 使用以下命令运行脚本:

    firefox.sh
    

以同样的方式,您可以在后台从终端打开任何其他应用程序。

相关内容