Sincronizza le icone tra .desktop e dock

Jun 02 2020

Ho creato una voce .desktop personalizzata nella mia home directory l' ~/.local/share/applications/startMyApp.desktopho creata in modo che usasse un xterm invece di gnome-terminal. Voglio che abbia un aspetto diverso nel dock dai miei terminali gnome che uso in modo interattivo.

Gli startMyApp.desktopassomiglia:

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

Ho creato un file icona in ~/.icons/myIcon.png

L'icona viene visualizzata correttamente nel browser di file predefinito. Quando viene aperto da un browser di file, esegue lo script in un xterm come previsto, tuttavia, l'icona nel dock appare come un'altra icona generica di xterm. Da dove viene quell'icona? È incorporato nel binario?

Come posso cambiarlo? Voglio che l'icona nel dock appaia uguale a quella specificata nel .desktopfile. Le applicazioni in bundle con Ubuntu hanno la stessa icona nel dock quando vengono avviate (a parte i punti rossi che indicano quante finestre sono aperte).

Risposte

pomsky Jun 01 2020 at 22:18

È necessario aggiungere una StartupWMClassvoce corretta al .desktopfile. A tale scopo, seguire i passaggi seguenti.

  1. Avvia l'applicazione in questione.
  2. Avvia una finestra di Terminale separata ed esegui xprop WM_CLASS.
  3. Posizionare il cursore sulla finestra dell'applicazione aperta in questione. Il cursore dovrebbe trasformarsi in un mirino a questo punto. Clic. Dovresti ottenere una WM_CLASSstringa per l'applicazione nella finestra Terminale.
  4. Nel .desktopfile aggiungi la seguente riga

    StartupWMClass=OBTAINED-VALUE
    

    Al posto di OBTAINED-VALUEinserire un valore ottenuto dal passaggio 3 senza virgolette.


Aggiornamento dall'OP:

inoltre sembra che avessi bisogno di fornire un nome per l'istanza xterm. La riga exec ora appare comexterm -name myApp -e myScript.sh