Posso iniciar um programa a partir do terminal e fazê-lo iniciar visualmente em segundo plano?

5

Se eu abrir um programa, como o Firefox, a partir do terminal, esse programa terá o foco da GUI. Posso de alguma forma abri-lo para que ele seja executado no plano de fundo visual e não aparecer, bloqueando qualquer programa atual com o qual estou trabalhando?

Meu problema é que eu uso o Karma Test Runner, que é executado toda vez que eu edito meu código. Sempre que isso é feito, o karma lança um navegador que aparece na frente de todo o resto da tela, o que pode ser bastante irritante.

Estou usando o Ubuntu 13.04.

    
por Ludwig Magnusson 29.07.2013 / 13:53

1 resposta

4

Para fazer isso, você precisará de xdotool . Para instalá-lo, execute o seguinte comando no terminal:

sudo apt-get install xdotool

Agora, explicarei como você pode fazer isso para o Firefox usando um script:

  • Em uma execução de terminal:

    mkdir -p bin
    

    Este comando criará um diretório bin na sua pasta home se você ainda não o tiver.

  • Após a execução:

    gedit ~/bin/firefox.sh
    

    Isso criará o novo arquivo change_sources.sh in gedit.

  • Copie e cole o seguinte script no novo arquivo criado:
#!/bin/bash

delay=2
windowId=$(xdotool getwindowfocus)

firefox &
sleep $delay

xdotool windowactivate $windowId
  • Salve o arquivo e feche-o.
  • Volte para o terminal e execute:

    chmod +x ~/bin/firefox.sh
    

    para conceder acesso de execução ao script.

  • Execute o script com:

    firefox.sh
    

Da mesma maneira, você pode abrir qualquer outro aplicativo no terminal em segundo plano.

    
por Radu Rădeanu 29.07.2013 / 17:32