Como digo a um programa de inicialização que comece minimizado?

19

Aqui está uma pergunta que está me incomodando. Você sabe como pode configurar um programa para executar na inicialização, certo? Bem, como posso dizer para começar minimizado, como você faria no Windows?

O TeamViewer começa a abrir, mas eu preciso minimizá-lo, e o Tray - simplesmente não parece uma maneira elegante de fazê-lo.

semi-novato
fonte

Respostas:

21

Você pode usar uma ferramenta chamada devilspie Instalar devilspie .

Essa ferramenta pode executar ações assim que os programas são iniciados, como enviar para áreas de trabalho, fixar e também minimizar. Um tutorial está aqui .

  • Para instalá-lo a partir da linha de comando, execute:

sudo apt-get install devilspie.

  • Para configurá-lo para minimizar o Teamviewer sempre que for executado:

    mkdir ~/.devilspie

Crie um arquivo chamado ~/.devilspie/teamviewer.dse cole as seguintes linhas:

(if  
(is (application_name) "Teamviewer")  
(begin (minimize) )  
)  

Se você deseja uma interface gráfica para uma configuração mais fácil, observe o gdevilspie Instale gdevilspie

(se o GDevilspie não iniciar, tente corrigir um ).

MJB
fonte
1
Isso funciona, mas quando eu restauro a janela minimizada, ela desenha incorretamente - o plano de fundo da janela do TeamViewer se torna uma cópia do que está por baixo e algum texto não é visível, por exemplo, i.imgur.com/0p6yR.png (eu ocultei texto nas três caixas de texto). Outros aplicativos de vinho não fazem isso (Notepad ++, Picasa).
misterben
5

Eu tropecei neste post com o mesmo problema do TeamViewer não iniciado minimizado quando configurado para inicialização automática durante a inicialização do sistema Ubuntu.
O método descrito por @MJB em 27 de janeiro às 16:02 funcionou perfeitamente para mim (estou executando o Ubuntu 10.10 32bit, todas as atualizações instaladas até essa data, com teamviewer_linux_x32_v6.0.9224.deb).
Não tenho as falhas descritas por @misterben em 14 de fevereiro às 18:50.
Instalei o GDevilspie via Ubuntu Software Center, executei-o, criei uma nova regra e configurei o GDevilspie para mostrar o seguinte código na guia "Raw":

( if 
( begin 
( is ( application_name ) "Teamviewer" )
( is ( window_name ) "TeamViewer" )
) 
( begin 
( minimize )
( println "match" )
)
)

O daemon devilspie é configurado para iniciar automaticamente durante a inicialização do sistema e o teamviewer é configurado para iniciar automaticamente via Sistema -> Preferências -> Aplicativos de inicialização (clique em Adicionar, comando: teamviewer).

Seria ótimo se os desenvolvedores do TeamViewer integrassem um switch inicial minimizado para linux ...

Obrigado MJB! :)

qwertz
fonte
4

Minimizar um programa depende do programa, se ele é compatível ou não. Também depende se o programa tem uma opção na GUI ou via linha de comando. Por exemplo, o vlc tem uma opção em preferências que oferece a chance de iniciá-lo minimizado. Mas também tem uma opção na linha de comando para iniciá-lo minimizado (como parâmetros). A opção de minimizar também muda dependendo do programa. Alguns programas podem ser program -minoutros program -systray, etc. Verifique se o Teamviewer, por exemplo, tem uma opção para isso nas opções da GUI. Se o programa tiver um parâmetro de minimização da linha de comando, basta adicioná-lo ao gerenciador de inicialização.

Luis Alvarado
fonte
O Teamviewer usa o Wine para oferecer suporte à execução no Linux. Como as versões do Windows não aceitam parâmetros de linha de comando, a versão do Linux também não. Além disso, se alguém minimizá-lo na bandeja, ele usará o ícone Wine, a menos que fornecido com outro por qualquer ferramenta usada.
Greg Chabala
1

Também estou minimizando o Teamviewer na bandeja na inicialização, mas estou usando o KDocker .

sudo apt-get install kdocker

Meu script de inicialização é uma linha:

kdocker -n Teamviewer -i /opt/teamviewer/teamviewer/7/desktop/teamviewer.png -d 40 /usr/bin/teamviewer7 &
  • -n é o nome da janela
  • -i é o arquivo de ícone
  • -d é um limite de 40 segundos, após o qual o kdocker desistirá se não conseguir encontrar uma janela correspondente
Greg Chabala
fonte
0

Desde o Teamviewer 8.0.20931, a função da bandeja do sistema é minimizada automaticamente. Mas, no Gnome classic, ele criará o Wine System Tray e eu não sei como minimizá-lo. Eu tentei o script (salvo como ~ / .devilspie / wine.ds):

( if 
( begin 
( is ( application_name ) "Wine" )
( is ( window_name ) "Wine System Tray" )
) 
( begin 
( minimize )
( println "match" )
)
)

... mas não funcionou

Com o novo Teamviewer 8.0.20931 para Linux, até o login na tela de login do Linux funciona - quando nenhum usuário ainda não está logado. Mas, depois de algum tempo em que você se conecta e desconecta duas vezes, não é possível se conectar ao Teamviewer. Você precisa ter acesso remoto pela linha de comando para reiniciar o computador - então ele funciona novamente.

zeroconf
fonte
0

Devilspie não funcionou no meu sistema por algum motivo. Eventualmente, eu encontrei um substituto (não tão elegante) .Eu instalado wmctrl:

sudo apt-get install wmctrl

Usando wmctrl -lencontrado os nomes das janelas, eu queria fechar na inicialização. Depois disso, coloque esses comandos no script (crie um novo arquivo vazio e nomeie-o .<...>.sh. Coloque um ponto no início do nome para ocultá-lo):

wmctrl -c <Window_1>
wmctrl -c <Window_2>
wmctrl -c <Window_3>

Por fim, adicionou esse arquivo aos aplicativos de inicialização alguns segundos após os destinos.


Observe que esse comando fecha as janelas. Para iniciar o programa minimizado, em diferentes locais da área de trabalho, encontre as opções apropriadas no manual do programa.

Sergey
fonte
A menos que você espere "esperta" pela janela, o sucesso dependerá do tempo entre a aparência da janela e o comando para minimizar. Como foi dito, é melhor fazê-lo esperar esperançosamente pela janela, caso contrário não funcionará quando o sistema estiver ocupado (e, portanto, mais lento). Além disso, existe o risco de conflitos de nome, pois você não usa o ID da janela, mas (parte) o nome como um identificador. veja askubuntu.com/a/663288/72216
Jacob Vlijm
Eu concordo com você. Eu até postei minha versão do script lá. Eu ainda uso este aqui para o teamviewer.
Sergey
0

2017 solução de trabalho!

Eu venho da edição Manjaro (XFCE), mas como essa é uma solução cross-linux com devilspie, essa é a solução completa para iniciar o visualizador de equipe minimizado:

  1. Terminal aberto

  2. Instale o devilspiepacote:

    apt-get install devilspie
  3. Crie uma pasta pessoal:

    mkdir ~/.devilspie
  4. Crie o seguinte script (use o editor que desejar, em vez de nano):

    nano ~/.devilspie/teamviewer.ds
  5. Cole o seguinte script e salve o arquivo (para nano- CTRL + x , depois Y e ENTER ):

    ( if
    ( begin
    ( is (application_name) "Teamviewer")
    ( is (window_name) "TeamViewer")
    )
    ( begin (close) )
    )
    1. Da devilspieperspectiva, todas as etapas foram concluídas, mas a janela lateral "Computadores e contatos" ainda será exibida em cada inicialização. Para ocultá-lo, abra o:

TeamViewer -> Extras -> Opções -> Avançado -> "Mostrar opções avançadas" -> "Mostrar computadores e contatos na inicialização" (está na seção "Configurações avançadas para computadores e contatos)" e desmarque-o.

As etapas são para o TeamViewer 12 . Em outras versões, eles podem ser diferentes.

NOTA:

Usar (minimizar) em vez de (fechar) no script devilspie me trouxe o erro "TeamViewer não está pronto. Verifique sua conexão" e sem a reinicialização do serviço de visualizador de equipe, não funcionou.

Erikas
fonte
0

na nova versão, o programa já possui um ícone na bandeja, mas duas janelas principais do programa aparecem na inicialização. Então, eu estou usando esse script

#! /bin/sh

/opt/teamviewer/tv_bin/TeamViewer &
sleep 10
TV_WIN_ID=$(xdotool search --name TeamViewer)
TV_WIN_ID2=$(xdotool search --name 'Компьютеры и контакты')

if [ -n "$TV_WIN_ID" ] ; then
 sleep 1
 xdotool windowactivate $TV_WIN_ID
 xdotool key Alt+F4  
else
 exit 1
fi
if [ -n "$TV_WIN_ID2" ] ; then
 sleep 1
 xdotool windowactivate $TV_WIN_ID2
 xdotool key Alt+F4  
 else
exit 1
fi
Andrey
fonte