Synchronizuj ikony między .desktop a dockiem

Jun 02 2020

Utworzyłem niestandardowy wpis .desktop w moim katalogu domowym. ~/.local/share/applications/startMyApp.desktopUtworzyłem go tak, aby używał xterm zamiast gnome-terminal. Chcę, aby w doku wyglądał inaczej niż moje terminale gnomów, których używam interaktywnie.

Do startMyApp.desktopwygląda następująco:

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

Utworzyłem plik ikony w ~/.icons/myIcon.png

Ikona jest wyświetlana poprawnie w domyślnej przeglądarce plików. Po otwarciu z przeglądarki plików wykonuje skrypt w xterm zgodnie z oczekiwaniami, jednak ikona w doku pojawia się jako inna ogólna ikona xterm. Skąd pochodzi ta ikona? Czy jest osadzony w pliku binarnym?

Jak mogę to zmienić? Chcę, aby ikona w doku wyglądała tak samo jak ikona określona w .desktoppliku. Aplikacje dołączone do Ubuntu mają tę samą ikonę w doku po uruchomieniu (oprócz czerwonych kropek wskazujących, ile okien jest otwartych).

Odpowiedzi

pomsky Jun 01 2020 at 22:18

Musisz dodać odpowiedni StartupWMClasswpis do swojego .desktoppliku. Aby to zrobić, wykonaj poniższe czynności.

  1. Uruchom odpowiednią aplikację.
  2. Uruchom osobne okno terminala i uruchom xprop WM_CLASS.
  3. Umieść kursor na otwartym oknie aplikacji. Kursor powinien teraz zmienić się w celownik. Kliknij. W WM_CLASSoknie Terminala powinieneś otrzymać ciąg znaków dla aplikacji.
  4. W .desktoppliku dodaj następujący wiersz

    StartupWMClass=OBTAINED-VALUE
    

    Zamiast OBTAINED-VALUEcudzysłowu wpisz wartość otrzymaną z kroku 3.


Aktualizacja z PO:

wydaje się również, że potrzebowałem podać nazwę instancji xterm. Teraz wygląda linia execxterm -name myApp -e myScript.sh