O ícone de arquivo da área de trabalho seqüestra todas as janelas de terminal recém-abertas

3

Eu tenho um arquivo da área de trabalho que executa o seguinte script:

[Desktop Entry]
Type=Application
Terminal=true
Name=MYAPP
Icon=/usr/local/myAppDir/AppIcon.png
Exec=/usr/local/myAppDir/myApp

Funciona, não é esse o problema. Ele abre um novo terminal, já que o myApp requer que um terminal seja executado em segundo plano. Mas toda vez que abro um novo terminal, ele é invadido pelo ícone myApp. O que quero dizer com isso é que, na barra lateral, parece que eu tenho 3 janelas myApp abertas depois de clicar no ícone do terminal 3 vezes. O ícone do terminal, quando clicado, continua abrindo novos terminais em vez de abrir o mais recente. Isso é mutável?

    
por hhhhhhhhh 01.10.2014 / 10:10

1 resposta

2

As janelas de aplicativos de um único aplicativo só podem, em princípio, ser agrupadas em um ícone de aplicativo, de modo que todas as janelas do gnome-terminal sejam agrupadas em um ícone. Normalmente isso melhora a coerência do lançador.

Um efeito colateral é que se você tiver seu aplicativo executado no terminal a partir de .desktop file e a janela do terminal aparecer sob o ícone do seu aplicativo, todas as janelas do terminal abertas enquanto o aplicativo estiver sendo executado serão agrupadas nesse mesmo ícone do seu aplicativo, até você fechar o aplicativo.

A menos que ...

Você adiciona uma linha StartupWMClass= sem sentido ao .desktop file :

do seu aplicativo
StartupWMClass=Monkey

Em seguida, seu aplicativo aparecerá sob o ícone do terminal. Novas janelas de terminal também serão usadas.

Nota

O efeito mencionado acima ocorre apenas quando o comando executado na linha Exec= do seu aplicativo é o comando main do seu arquivo .desktop . Isso não acontece de possíveis atalhos que você adiciona a um lançador existente.

Como parece um script somente de terminal, outra solução provavelmente mais limpa seria adicionar o scipt como um atalho para o seu gnome-terminal launcher (ou qualquer outro ícone que pareça apropriado). Nesse caso, você teria que substituir a linha (em uma cópia local do arquivo gnome-terminal.desktop):

Actions=New

por:

Actions=New;Myapp;

e adicione na parte inferior do arquivo:

[Desktop Action MyApp]
Name=MyApp
Exec=gnome-terminal -x bash -c "/usr/local/myAppDir/myApp"
OnlyShowIn=Unity;
    
por Jacob Vlijm 01.10.2014 / 11:17