Pourquoi mon lanceur personnalisé s'ouvre-t-il sous une icône distincte?

12

J'ai créé un fichier de lancement personnalisé:

[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;

Et j'ai fait glisser ce fichier sur mon lanceur. Cependant, lorsque je clique sur l'icône, elle ouvre l'application sous une 2ème icône différente (je clique sur celle du haut, elle ouvre l'application sous celle du bas):

icônes de lanceur

L'icône inférieure n'est présente qu'après avoir lancé l'application à l'aide de l'icône P4v supérieure que j'ai ajoutée manuellement.

ctote
la source
1
S'agit-il d'une application java?
dobey
/ usr / bin / pv4 est un script qui ouvre apparemment votre application d'une manière qui est elle-même associée à une icône. Probablement javascript - perforce.com/product/components/perforce-visual-client
doug
1
@doug non, c'est une application avec une fenêtre et un .desktopfichier "normal" (dont une icône de set) dans /usr/share/applications(je l'ai installé pour le savoir).
Jacob Vlijm

Réponses:

10

Si une application produit une deuxième icône, qui n'est pas générique

Si une application génère une deuxième icône dans le lanceur Unity autre qu'une icône générique grise, il doit déjà y avoir un (autre) lanceur existant, appelant p4vsa commande principale:

Le .desktopfichier d' une application a par définition une commande "principale" dans la première ligne, commençant par Exec=. Il s'agit de la commande exécutée lorsque l'utilisateur clique sur l'icône dans le Unitylanceur ( ). En dehors de cela, un .desktopfichier peut avoir une ou plusieurs sections de raccourci, disponibles lorsque vous cliquez avec le bouton droit sur l'icône représentant dans le Unitylanceur.

Plusieurs fichiers .desktop appelant la même application dans leur commande principale

Les symptômes que vous rencontrez peuvent se produire lorsque plusieurs .desktopfichiers dans l'un /usr/share/applicationsou ~/.local/share/applicationsont la même commande ("main-") dans leur première Exec= ligne, mais les fichiers sont nommés différemment.

P4v par défaut devrait installer (et a probablement installé) un .desktopfichier, nommé p4vasp.desktopdans /usr/share/applications.

Comment résoudre
Votre problème devrait être résolu si vous supprimez votre propre .desktopfichier (probablement local) , puis exécutez à p4vpartir de Dash et épinglez-le au lanceur.

Et si vous souhaitez personnaliser le lanceur existant?

Si vous souhaitez modifier le .desktopcomportement du fichier ou par exemple son icône:

  • copier le fichier de /usr/share/applicationsà~/.local/share/applications
  • ne changez pas le nom du fichier
  • ouvrez le fichier gedit(faites-le glisser sur une geditfenêtre ouverte ) et apportez les modifications que vous souhaitez
  • déconnectez-vous et reconnectez-vous, la version locale du .desktopfichier remplacera la version globale.

Pour revenir, supprimez simplement celui local, déconnectez-vous et reconnectez-vous.

Lié à ce post

Jacob Vlijm
la source
Cette réponse est tout aussi bonne dans Ubuntu 18.04 avec GNOME 3
Todd
0

Solution qui a fonctionné pour moi sur Ubuntu 18.04 lorsque j'ai eu du mal à ajouter une AppImage à mes favoris. Cette solution est résumée sur https://beamtic.com/duplicated-icons-in-launcher

  1. Obtenez la classe de fenêtre de votre programme avec une double icône en exécutant

    xprop WM_CLASS
    
  2. Sélectionnez la fenêtre principale de ce programme en cliquant dessus. J'ai reçu deux cordes et je viens de prendre la première (minuscule).

  3. Ajoutez la ligne suivante au .desktopfichier (j'avais mon .desktopfichier ~/.local/share/applications) et remplacez-la [Name_of_Window_Class]par la sortie de la commande xprop:

    StartupWMClass=[Name_of_Window_Class]
    
  4. Démarrez / redémarrez l'application, c'est fait!

Axelfoley
la source