Estou usando o Linux Mint MATE. Eu gostaria de lançar um aplicativo gui sem ser reconhecido pelos meus olhos. Eu tentei o seguinte código que inicia o aplicativo e o move para outro espaço de trabalho wmctrl
logo após o lançamento, mas isso não funcionou.
some_app_with_gui &
wmctrl -r title -t 1 #move window to another workspace (Say I'm in workspace 0 now)
Conforme indicado aqui , o motivo é que wmctrl
é executado antes some_app_with_gui
da janela do app. Então a solução seria
some_app_with_gui &
sleep 0.8
wmctrl -r title -t 1 #move window to another workspace (Say I'm in workspace 0 now)
e isso realmente funciona.
Com esta solução, no entanto, a janela é reconhecida pelos meus olhos por um momento (0,1 segundos ou mais). Isso é realmente irritante e eu gostaria de evitá-lo.
Existem soluções? Não precisa necessariamente usar wmctrl
. Qualquer outro comando será ok. E por favor note que eu não acesso a janela, ou seja, o aplicativo é iniciado por um script e fechado pelos scripts, então esconder completamente a janela está ok.
Como esta pergunta é diferente de outras com títulos semelhantes é
que apenas uma máquina está envolvida (não relacionada a SSH)
e que gostaria de iniciar o aplicativo gui em uma máquina com um ambiente de desktop sem gui.
Você pode usar um servidor X virtual framebuffer ,
Xvfb
.Por exemplo:
Isso executa o aplicativo em uma tela X totalmente virtual, que não tem presença visível em nenhuma tela física.
Xvfb
normalmente é um pacote separado, então você pode precisar usar o gerenciador de pacotes da sua distribuição para instalá-lo antes de usá-lo.Para isso eu pessoalmente uso uma ferramenta própria, chamada unwin .
É como telcoM answer , mas automatizando quando esperar e fechar o xvfb.
Se xvfb não estiver pronto , ele irá esperar por ele. E uma vez que não há programas rodando no frame-buffer, o xvfb é fechado automaticamente.