Ícone ausente quando o aplicativo é iniciado

8

Eu criei um lançador de aplicativos em /usr/share/applications que lança o rdesktop. O arquivo especifica um nome de ícone e eu adicionei os ícones a:

/usr/share/icons/HighContrast/48x48/apps
/usr/share/icons/HighContrast/22x22/apps
/usr/share/icons/HighContrast/256x256/apps
/usr/share/icons/HighContrast/32x32/apps
/usr/share/icons/HighContrast/scalable/apps-extra
/usr/share/icons/HighContrast/24x24/apps
/usr/share/icons/HighContrast/16x16/apps
/usr/share/icons/hicolor/scalable/apps
/usr/share/icons/hicolor/128x128/apps
/usr/share/icons/hicolor/16x16/apps

Eu então drogo o lançador para a barra de tarefas e o lançador com o logotipo correto é visível na barra de tarefas. No entanto, quando inicio a tarefa, um novo ícone é criado na barra de tarefas, um quadrado com um ponto de interrogação no centro.

De quais ícones eu preciso e onde, para que a barra de tarefas exiba o ícone correto para o aplicativo quando ele é lançado?

O conteúdo do arquivo .desktop:

[Desktop Entry]
Version=1.0
Terminal=false
Icon=mswindows
Type=Application
Categories=Network;
Exec=rdesktop win7shared1 -g 1680x1000

Name=win7shared1
GenericName=rdesktop
Comment=Open windows desktop

Keywords=Windows
StartupNotify=false
    
por clayton 08.12.2014 / 18:20

3 respostas

10

O que provavelmente resolverá seu problema é fazer o seguinte:

  1. Abra o aplicativo
  2. Quando estiver em execução, abra um terminal e digite:

    xprop WM_CLASS
    
  3. Em seguida, clique na janela da aplicação aberta.

  4. A saída será parecida com (exemplo gedit ):

    WM_CLASS(STRING) = "gedit", "Gedit"
    
  5. Use a primeira parte (neste caso seria gedit ) para compor uma linha no seu arquivo .desktop :

    StartupWMClass=<string>
    (replace <string> with the actual (first part of the) output of 'xprop|grep WM_CLASS')
    

Agora tente novamente (talvez você tenha que sair / entrar), provavelmente o aplicativo aparecerá no inicializador sob seu próprio ícone.

Explicação

  • Quando um aplicativo é iniciado corretamente a partir de um ativador ( .desktop file), mas outro ícone aparece com apenas um ícone genérico (ponto de interrogação), é mais provável que a janela do aplicativo e o o ativador não se conecta por algum motivo e o ativador não reconhece a janela do aplicativo como "seu". Esse é frequentemente o caso quando um script ou um aplicativo não padrão (-command) é usado. Nesses casos, a linha StartupWMClass= geralmente é a solução.
por Jacob Vlijm 09.12.2014 / 15:34
1

para mim xprop|grep WM_CLASS deu WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "jetbrains-pycharm-ce" (eu estava tendo este problema com pycharm para python)

Foi o sun-awt-X11-XFramePeer que precisei como string no meu arquivo .desktop (sem aspas) - Obrigado!

    
por user245936 03.07.2015 / 04:45
0

Depois de colocar os ícones no lugar certo, você deve simplesmente reiniciar o xserver (logout e login).
Tente também atualizar o cache de ícones (simplesmente cole o código abaixo no terminal):

for d in ~/.icons/*; do gtk-update-icon-cache -f $d; done
for d in /usr/share/icons/*; do sudo gtk-update-icon-cache -f $d; done
    
por Frostheart 09.12.2014 / 16:03