Saat meluncurkan program java (seperti IntelliJ IDEA dan Crashplan) di Natty's Unity launcher, ikon duplikat ditampilkan (lihat gambar). Untuk IntelliJ saya membuat file .desktop, untuk Crashplan file .desktop disertakan dengan aplikasi. Apakah ada sesuatu yang dapat diubah di file .desktop (atau di tempat lain) yang dapat mencegah hal ini terjadi? Saya tidak dapat menemukan laporan bug untuk persatuan itu sendiri tetapi program-program seperti Gnome-Do / Docky memiliki laporan bug dan harus membuat perubahan internal pada aplikasi mereka untuk mencegah hal ini.
Dalam gambar ini ikon 1 adalah yang dibuat dari file .desktop dan ikon kedua adalah setelah meluncurkannya. Ikon kedua hilang saat menutup aplikasi.
File .desktop IntelliJ khusus
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=/opt/idea/bin/idea128.png
Name[en_US]=IntelliJ IDEA
Exec=/opt/idea/bin/idea.sh
Name=IntelliJ IDEA
Icon=/opt/idea/bin/idea128.png
StartupNotify=true
Crashplan menyediakan file .desktop
[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=CrashPlan
Categories=;
Comment=CrashPlan Desktop UI
Comment[en_CA]=CrashPlan Desktop UI
Exec=/usr/local/crashplan/bin/CrashPlanDesktop
Icon=/usr/local/crashplan/skin/icon_app_64x64.png
Hidden=false
Terminal=false
Type=Application
GenericName[en_CA]=
Jawaban:
Tambahkan string StartupWMClass ke file .desktop Anda. Gunakan
xprop
perintah untuk mendapatkan kelas ini. Sebagai contoh :Lebih banyak deatils di utas ini (ini tentang AWN, tetapi juga berlaku untuk Unity)
sumber
StartupWMClass=CrashPlan
tetapi IntelliJ perlu sedikit lebih meyakinkan. Saya harus menggunakan info dari ini ( blog.jteam.nl/2011/01/09/… ) untuk membuatnya berfungsi dengan baik.-javaagent:agent.jar=IntelliJ_IDEA
ke file.jetbrains-idea-ce
untuk Edisi Komunitas. PS, terima kasih banyak Tim, 451F.jetbrains-idea
adalah salah satu yang unik, yang Anda inginkan, menggunakannya sebagai pengganti darisun-awt-X11-XFramePeer
Untuk Intellij Idea 11 di bawah Ubuntu 11.10 perlu ditambahkan di file .desktop ide berikut:
sumber
Saya dapat memperbaiki ini untuk SQLDeveloper, yang merupakan program java:
Menggunakan xprop (dan kemudian mengklik pada jendela SQLDeveloper), saya menemukan baris output berikut:
Berdasarkan komentar yang ditemukan di atas dan di https://bugs.launchpad.net/unity/+bug/757991 , saya menambahkan baris berikut ke file sqldeveloper.desktop lokal saya:
sumber
Saya telah mendokumentasikan perbaikan untuk Eclipse 4.x dan 3.x di sini .
Solusi ini untuk glx-dock alias Cairo-dock tetapi berfungsi untuk semua bilah tugas yang diandalkan
WM_CLASS
.Dalam kasus gerhana, peluncuran adalah proses dua langkah juga.
Pada dasarnya, yang perlu Anda lakukan adalah mengidentifikasi Eclipse branding plugin.xml yang berlaku untuk versi Eclipse Anda dan memodifikasi
application name
properti. Ketika jendela utama meja kerja dibuat, Jface akan memanggil SWTDisplay.setName
dan ini akan membuat Anda WM_CLASS. Jika ini adalah WM_CLASS yang dideklarasikan untuk launcher Anda, maka instance yang berjalan akan menemukan launcher dock mereka.Jangan lupa lakukan
eclipse -clean
pada saat pertama.Menabrak juga jauh lebih baik.
sumber
IntelliJ IDEA dimulai dengan skrip ($ IDEA_HOME / bin / idea.sh). Ketika peluncurnya diklik, skrip dieksekusi, yang memulai eksekusi java dan segera keluar. Unity pemberitahuan bahwa aplikasi yang Anda mulai (skrip) sudah keluar - itu sebabnya tidak ada indikator pada ikon IDEA pertama. Namun, ada aplikasi lain (dari yang dapat dijalankan dimulai oleh peluncur) yang sedang berjalan saat ini - dan itulah sebabnya ikon IDEA kedua ditampilkan.
Saya berharap perbaikan untuk perilaku ini akan segera diimplementasikan - tetapi ini tidak langsung. Itu harus melibatkan daftar asosiasi yang dipelihara dengan tangan antara jendela dan peluncur yang harus dikaitkan.
sumber
Untuk CrashPlan, Anda dapat mencoba memindahkan file aplikasi CrashPlan.desktop ke / usr / share / aplikasi. Hanya aplikasi yang tinggal di sana yang bisa dikunci ke peluncur.
Kemudian coba gunakan tanda hubung untuk menjalankan CrashPlan.
Anda mungkin dapat melakukan sesuatu yang mirip dengan IntelliJ IDEA, tetapi karena menjalankan skrip, saya tidak yakin apakah itu akan berfungsi dengan benar.
sumber
Tidak ada jawaban lain yang bekerja untuk saya, tetapi pada akhirnya saya benar-benar menemukan solusi yang lebih sederhana.
Buka Intellij-Idea, dan pada bilah atas temukan menu dropdown alat . Kemudian, pilih tombol Create Desktop Entry . Ini akan membuat entri .desktop yang berfungsi dengan baik di
.local/share/applications
folder Anda , yang seharusnya dikenali oleh lingkungan desktop apa pun yang Anda gunakan. Itu tidak membuat ikon duplikat, dan Anda bahkan dapat mengubah ikon jika Anda mau.Sayangnya, menggunakan
nosplash
argumen mengembalikan masalah ikon duplikat, jadi saya tidak yakin bagaimana cara memperbaikinya.sumber
Setelah menginstal IntelliJ IDEA 2017.2.5 di bawah Ubuntu 17.04 (dengan ikon Numix) saya harus mengubah baris
StartupWMClass=jetbrains-idea
keStartupWMClass=jetbrains-idea-ce
dalam file .desktop program sehingga ikon duplikat akan hilang.Saya kira "ce" adalah singkatan dari Community Edition yang saya miliki, jadi saya tidak tahu mengapa nilai properti ini dalam file .desktop pada awalnya tidak memiliki akhiran "ce".
sumber