Ikon hilang saat aplikasi diluncurkan

12

Saya telah membuat peluncur aplikasi dalam /usr/share/applicationspeluncuran rdesktop. File menentukan nama ikon dan saya telah menambahkan ikon ke:

/usr/share/icons/HighContrast/48x48/apps
/usr/share/icons/HighContrast/22x22/apps
/usr/share/icons/HighContrast/256x256/apps
/usr/share/icons/HighContrast/32x32/apps
/usr/share/icons/HighContrast/scalable/apps-extra
/usr/share/icons/HighContrast/24x24/apps
/usr/share/icons/HighContrast/16x16/apps
/usr/share/icons/hicolor/scalable/apps
/usr/share/icons/hicolor/128x128/apps
/usr/share/icons/hicolor/16x16/apps

Saya kemudian mengarahkan peluncur ke bilah tugas dan peluncur dengan logo yang benar terlihat di bilah tugas. Namun, ketika saya memulai tugas, ikon baru dibuat di bilah tugas, kotak dengan tanda tanya di tengah.

Ikon apa yang saya butuhkan dan di mana, sehingga bilah tugas menampilkan ikon yang benar untuk aplikasi saat diluncurkan?

Isi file .desktop:

[Entri Desktop]
Versi = 1.0
Terminal = salah
Ikon = mswindows
Type = Aplikasi
Kategori = Jaringan;
Exec = rdesktop win7shared1 -g 1680x1000

Nama = win7shared1
GenericName = rdesktop
Komentar = Buka desktop windows

Kata kunci = Windows
StartupNotify = false
Clayton
sumber

Jawaban:

15

Apa yang paling mungkin akan memecahkan masalah Anda adalah melakukan hal berikut:

  1. Buka aplikasi
  2. Ketika sedang berjalan, buka terminal dan ketik:

    xprop WM_CLASS
    
  3. Kemudian klik pada jendela aplikasi yang terbuka.

  4. Outputnya akan terlihat seperti (contoh gedit):

    WM_CLASS(STRING) = "gedit", "Gedit"
    
  5. Gunakan bagian pertama (dalam hal ini adalah gedit), untuk membuat garis dalam .desktopfile Anda :

    StartupWMClass=<string>
    

    (ganti <string>dengan aktual (bagian pertama dari) output xprop WM_CLASS, misalnya StartupWMClass=gedit)

Sekarang coba lagi (Anda mungkin harus keluar / masuk), kemungkinan besar aplikasi akan muncul di peluncur di bawah ikon sendiri.

Penjelasan

  • Ketika aplikasi dijalankan dengan benar dari launcher ( .desktopfile), tetapi ikon lain hanya muncul dengan ikon generik (tanda tanya), kemungkinan besar jendela aplikasi dan launcher tidak terhubung karena suatu alasan, dan launcher tidak kenali jendela aplikasi sebagai "miliknya". Ini sering terjadi ketika skrip atau aplikasi non-standar (-command) digunakan. Dalam kasus-kasus itu, StartupWMClass=garis sering kali merupakan solusi.
Yakub Vlijm
sumber
Terima kasih Jacob. Ini menyelesaikan masalah. Sebagai catatan, string WM_CLASS adalah "rdesktop", "rdesktop".
clayton
@clayton sempurna, senang itu berhasil.
Jacob Vlijm
1
Langkah 2 Anda dapat dikurangi, karena xprop memungkinkan Anda meneruskan atom yang ingin Anda kembalikan, menjalankan xprop WM_CLASSsudah cukup
johndrinkwater
@ johndrinkwater Tentu saja, terima kasih atas petunjuknya. Sudah lebih dari setahun yang lalu, lebih dari 14 bulan seperti orang lain menulisnya :). Akan mengedit ...
Jacob Vlijm
@ jacob-vlijm :) baru saja menemukannya ketika meneliti perilaku xprop yang canggung
johndrinkwater
2

bagi saya xprop|grep WM_CLASSmemberi WM_CLASS(STRING) = "sun-awt-X11-XFramePeer", "jetbrains-pycharm-ce"(saya mengalami masalah dengan pycharm untuk python)

Itu sun-awt-X11-XFramePeeryang saya butuhkan sebagai string dalam file .desktop saya (tanpa tanda kutip) - Terima kasih!

pengguna245936
sumber
Saya menambahkan StartupWMClass=sun-awt-X11-XFramePeerke milik saya dan tidak ada yang terjadi! Apakah .desktopfile tersebut berada di folder home?
anon58192932
0

Setelah meletakkan ikon di tempat yang tepat, Anda cukup me-restart xserver (logout dan login kembali).
Coba juga perbarui ikon cache (cukup tempel kode di bawah ini ke terminal):

for d in ~/.icons/*; do gtk-update-icon-cache -f $d; done
for d in /usr/share/icons/*; do sudo gtk-update-icon-cache -f $d; done
Frostheart
sumber