¿Por qué mi lanzador personalizado se abre debajo de un icono separado?

12

He creado un archivo de inicio personalizado:

[Desktop Entry]
Type=Application
Name=P4V
Comment=Perforce Visual Client
Icon=/usr/lib/p4v/P4VResources/icons/P4-V_128x128.png
Exec=/usr/bin/p4v
Terminal=false
Categories=Development;

Y arrastré este archivo a mi lanzador. Sin embargo, cuando hago clic en el ícono, abre la aplicación debajo de un segundo ícono diferente (hago clic en el superior, abre la aplicación debajo del inferior):

iconos de lanzador

El ícono inferior no está presente hasta después de iniciar la aplicación utilizando el ícono P4v superior que agregué manualmente.

ctote
fuente
1
¿Es esta una aplicación de Java?
dobey
/ usr / bin / pv4 es un script que aparentemente abre su aplicación de alguna manera que está asociada a un ícono. Probablemente javascript - perforce.com/product/components/perforce-visual-client
doug
1
@doug no, es una aplicación con una ventana y un .desktoparchivo "normal" (que incluye un ícono) en /usr/share/applications(lo instalé para averiguarlo).
Jacob Vlijm

Respuestas:

10

Si una aplicación produce un segundo ícono, que no sea ​​genérico

Si una aplicación genera un segundo ícono en el iniciador de Unity que no sea ​​un ícono gris genérico, ya debe haber un (otro) iniciador existente, llamando p4va su comando principal:

El .desktoparchivo de una aplicación, por definición, tiene un comando "principal" en la primera línea, comenzando con Exec=. Este es el comando que se ejecuta cuando se hace clic en el icono en el iniciador ( Unity). Aparte de eso, un .desktoparchivo puede tener una o más secciones de acceso directo, disponibles cuando hace clic derecho en el icono de representación en el Unityiniciador.

Múltiples archivos .desktop que llaman a la misma aplicación en su comando principal

Los síntomas que experimenta pueden ocurrir cuando más de un .desktoparchivo en cualquiera de los dos /usr/share/applicationso ~/.local/share/applicationstienen el mismo comando ("main-") en su primera Exec= línea, pero los archivos tienen nombres diferentes.

P4v por defecto debería instalar (y probablemente haya instalado) un .desktoparchivo, nombrado p4vasp.desktopen /usr/share/applications.

Cómo solucionarlo
Su problema debería solucionarse si elimina su propio .desktoparchivo (probablemente local) , luego lo ejecuta p4vdesde Dash y lo fija al lanzador.

¿Qué sucede si desea personalizar el iniciador existente?

Si desea cambiar el .desktopcomportamiento del archivo o, por ejemplo, su icono:

  • copia el archivo de /usr/share/applicationsa~/.local/share/applications
  • no cambies el nombre del archivo
  • abra el archivo gedit(arrástrelo sobre una geditventana abierta ) y realice los cambios que desee
  • cerrar sesión y volver a iniciarla, la versión local del .desktoparchivo anulará la versión global.

Para revertir, simplemente elimine el local, cierre la sesión y vuelva a iniciarla.

Relacionado con esta publicación

Jacob Vlijm
fuente
Esta respuesta es igual de buena en Ubuntu 18.04 con GNOME 3
Todd
0

Solución que funcionó para mí en ubuntu 18.04 cuando luchaba por obtener una AppImage agregada a mis favoritos. Esta solución se resume en https://beamtic.com/duplicated-icons-in-launcher

  1. Obtenga la clase de ventana de su programa con doble icono ejecutando

    xprop WM_CLASS
    
  2. Seleccione la ventana principal de ese programa haciendo clic en él. Recibí dos cadenas y acabo de tomar la primera (minúscula).

  3. Agregue la siguiente línea al .desktoparchivo (tenía mi .desktoparchivo ~/.local/share/applications) y reemplácelo [Name_of_Window_Class]con la salida del comando xprop:

    StartupWMClass=[Name_of_Window_Class]
    
  4. Inicie / reinicie la aplicación, ¡listo!

Axelfoley
fuente