Perché il mio launcher personalizzato si apre sotto un'icona separata?


12

Ho creato un file di avvio personalizzato:

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

E trascinato questo file sul mio launcher. Tuttavia, quando faccio clic sull'icona, apre l'applicazione sotto una seconda icona diversa (faccio clic su quella superiore, apre l'applicazione sotto quella inferiore):

icone di avvio

L'icona in basso non è presente fino a dopo l'avvio dell'applicazione utilizzando l'icona P4v in alto che ho aggiunto manualmente.


1
È un'app Java?
Dobey,

/ usr / bin / pv4 è uno script che apparentemente apre la tua app in qualche modo che è essa stessa associata a un'icona. Probabilmente javascript - perforce.com/product/components/perforce-visual-client
doug

1
@doug no, è un'applicazione con una finestra e un .desktopfile "normale" (inclusa un'icona set) in /usr/share/applications(l'ho installato per scoprirlo).
Jacob Vlijm,

Risposte:


10

Se un'applicazione produce una seconda icona, non essendo una generica

Se un'applicazione genera una seconda icona nel programma di avvio di Unity diversa da un'icona grigia e generica, deve esserci già un (altro) programma di avvio esistente, che chiama p4vnel suo comando principale:

Il .desktopfile di un'applicazione per definizione ha un comando "principale" nella prima riga, a partire da Exec=. Questo è il comando che viene eseguito quando si fa clic sull'icona nel programma di Unityavvio ( ). A parte questo, un .desktopfile può avere una o più sezioni di scelta rapida, disponibili quando si fa clic con il tasto destro sull'icona di rappresentazione nel programma di Unityavvio.

Più file .desktop che chiamano la stessa applicazione nel loro comando principale

I sintomi che si verificano possono verificarsi quando più di un .desktopfile in uno /usr/share/applicationso ~/.local/share/applicationshanno lo stesso comando ("main-") nella prima Exec= riga, ma i file hanno un nome diverso.

P4v di default dovrebbe installare (e probabilmente ha installato) un .desktopfile, chiamato p4vasp.desktopin /usr/share/applications.

Come risolvere
Il problema dovrebbe essere risolto se si rimuove il proprio file (probabilmente locale) .desktop, quindi si esegue p4vda Dash e lo si aggiunge al programma di avvio.

Cosa succede se si desidera personalizzare il programma di avvio esistente?

Se si desidera modificare il .desktopcomportamento del file o, ad esempio, la sua icona:

  • copia il file da /usr/share/applicationsa~/.local/share/applications
  • non modificare il nome del file
  • apri il file gedit(trascinalo su una geditfinestra aperta ) e apporta le modifiche che desideri
  • disconnettersi e riconnettersi, la versione locale del .desktopfile avrà la precedenza su quella globale.

Per ripristinare, basta rimuovere quello locale, disconnettersi e riconnettersi.

Correlato a questo post


Questa risposta è altrettanto buona in Ubuntu 18.04 con GNOME 3
Todd

0

Soluzione che ha funzionato per me su Ubuntu 18.04 quando ho difficoltà a ottenere un'AppImage aggiunta ai miei preferiti. Questa soluzione è riassunta da https://beamtic.com/duplicated-icons-in-launcher

  1. Ottieni la classe della finestra del tuo programma con una doppia icona eseguendo

    xprop WM_CLASS
    
  2. Seleziona la finestra principale di quel programma facendo clic su di essa. Ho ricevuto due stringhe e ho appena preso la prima (lettere minuscole).

  3. Aggiungi la seguente riga al .desktopfile (avevo il mio .desktopfile in ~/.local/share/applications) e sostituisci [Name_of_Window_Class]con l'output del comando xprop:

    StartupWMClass=[Name_of_Window_Class]
    
  4. Avvia / riavvia l'applicazione, fatto!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.