Sincronizar iconos entre .desktop y dock

Jun 02 2020

Creé una entrada .desktop personalizada en mi directorio de inicio. ~/.local/share/applications/startMyApp.desktopLa creé para que usara un xterm en lugar de gnome-terminal. Quiero que tenga un aspecto diferente en el dock de mis terminales gnome que uso de forma interactiva.

El startMyApp.desktopparece:

[Desktop Entry]
Type=Application
Name=MyScript
Terminal=false
Exec=xterm -e myScript.sh
Icon=myIcon.png

He creado un archivo de icono en ~/.icons/myIcon.png

El icono aparece correctamente en el explorador de archivos predeterminado. Cuando se abre desde un explorador de archivos, ejecuta el script en un xterm como se esperaba; sin embargo, el icono en el dock aparece como algún otro icono xterm genérico. ¿De dónde viene ese icono? ¿Está incrustado en el binario?

¿Cómo puedo cambiar esto? Quiero que el icono del dock aparezca igual que el especificado en el .desktoparchivo. Las aplicaciones incluidas con Ubuntu tienen el mismo icono en el dock cuando se inician (además de los puntos rojos que indican cuántas ventanas están abiertas).

Respuestas

pomsky Jun 01 2020 at 22:18

Debe agregar una StartupWMClassentrada adecuada a su .desktoparchivo. Para hacer esto, siga los pasos a continuación.

  1. Inicie la aplicación en cuestión.
  2. Inicie una ventana de Terminal separada y ejecútela xprop WM_CLASS.
  3. Coloque el cursor sobre la ventana de la aplicación abierta en cuestión. El cursor debería convertirse en una cruz ahora. Hacer clic. Debería obtener una WM_CLASScadena para la aplicación en la ventana de Terminal.
  4. En el .desktoparchivo agregue la siguiente línea

    StartupWMClass=OBTAINED-VALUE
    

    En lugar de OBTAINED-VALUEponer un valor que obtuvo del paso 3 sin comillas.


Actualización desde el OP:

también parece que necesitaba proporcionar un nombre para la instancia xterm. La línea ejecutiva ahora parecexterm -name myApp -e myScript.sh