Sincronizar ícones entre .desktop e dock
Eu criei uma entrada personalizada .desktop em meu diretório inicial ~/.local/share/applications/startMyApp.desktoppara que usasse um xterm em vez do gnome-terminal. Eu quero que ele tenha uma aparência diferente no dock dos meus terminais gnome que eu uso interativamente.
Os startMyApp.desktopparece:
[Desktop Entry]
Type=Application
Name=MyScript
Terminal=false
Exec=xterm -e myScript.sh
Icon=myIcon.png
 
    Eu criei um arquivo de ícone em ~/.icons/myIcon.png
O ícone aparece corretamente no navegador de arquivos padrão. Quando aberto em um navegador de arquivos, ele executa o script em um xterm conforme o esperado; no entanto, o ícone no dock aparece como algum outro ícone xterm genérico. De onde vem esse ícone? Está embutido no binário?
Como eu posso mudar isso? Quero que o ícone no dock seja igual ao especificado no .desktoparquivo. Os aplicativos incluídos no Ubuntu têm o mesmo ícone no dock quando iniciados (além dos pontos vermelhos que indicam quantas janelas estão abertas).
Respostas
Você precisa adicionar uma StartupWMClassentrada adequada ao seu .desktoparquivo. Para fazer isso, siga as etapas abaixo.
- Inicie o aplicativo em questão.
 - Abra uma janela separada do Terminal e execute 
xprop WM_CLASS. - Coloque o cursor sobre a janela do aplicativo aberto em questão. O cursor deve se transformar em uma cruz agora. Clique. Você deve obter uma 
WM_CLASSstring para o aplicativo na janela Terminal. No
.desktoparquivo, adicione a seguinte linhaStartupWMClass=OBTAINED-VALUEEm vez de
OBTAINED-VALUEcolocar um valor obtido na etapa 3, sem aspas.
Atualização do OP:
também parece que eu precisei fornecer um nome para a instância xterm. A linha exec agora parece
xterm -name myApp -e myScript.sh