Ikon duplikat untuk item peluncur GNOME yang dibuat secara manual


46

Saya telah mengunduh Aptana Studio 3 dan membuat item peluncur berikut untuk menggunakan Alacarte:

mengajukan: alacarte-made.desktop

[Desktop Entry]
Comment=
Terminal=false
Name=Aptana Studio 3
Exec=AptanaStudio3
Type=Application
Icon=/opt/Aptana-Studio-3/icon.xpm

Kemudian, ketika saya menambahkan ikon ke favorit dan membuka Aptana Studio 3 saya mendapatkan dua ikon untuk itu, satu untuk meluncurkan instance baru, dan satu untuk instance yang sedang berjalan sesuai screenshot berikut:

masukkan deskripsi gambar di sini

Bagaimana cara memaksa aplikasi untuk menggunakan ikon yang sama yang ditambahkan ke favorit?


Bisakah Anda menentukan bagaimana Anda menginstal Aptana? Dari situs resmi yang bisa saya lihat adalah file zip mandiri. (sesuatu seperti aplikasi portabel di windows).
hytromo

Ya itu saja.
malhobayyeb

Jadi, bagaimana akhirnya /opt? Juga, apakah itu pada Anda $PATH? Bagaimana dengan menentukan hanya AptanaStudio3di file desktop Anda dapat dijalankan?
hytromo

1
Saya sudah melakukannya, terima kasih. Saya telah membuat Tautan Sym di / usr / bin ke /opt/.../aptana Itu hanya masalah penamaan. Saya harus memberi nama .desktop dan bin dan menautkannya :)
malhobayyeb

3
Harap jawab secara terperinci di bawah ini bagaimana Anda berhasil menyelesaikan masalah Anda :) (Saya tidak tahu, saya hanya mengajukan beberapa pertanyaan)
hytromo

Jawaban:


67

Untuk menghemat memilah-milah thread yang disebutkan oleh @earthmeLon, Anda perlu melakukan hal berikut:

  1. Luncurkan aplikasi
  2. Jalankan terminal dan jalankan xprop WM_CLASS. Klik jendela aplikasi.
  3. Anda akan mendapatkan beberapa output seperti WM_CLASS(STRING) = "Navigator", "Firefox". Pilih salah satu kelas, misalnya Firefoxdalam contoh ini
  4. Tambahkan kelas sebagai nilai StartupWMClassdalam .desktopfile. Sebagai contoh,StartupWMClass=Firefox
  5. Simpan .desktopfile, tutup aplikasi dan buka kembali. Seharusnya sekarang hanya ada 1 ikon di peluncur

3
Bagi mereka yang memiliki masalah yang sama pada GNOME Anda dapat menggunakan MenuLibre: Saat mengedit entri yang sesuai, Anda akan menemukan bidang untuk pengaturan StatupWMClass dalam daftar yang muncul ketika mengklik tombol "Advanced"
conceptdeluxe

Jika seseorang mencoba menangani masalah yang mendeleydapat dieksekusi, pastikan juga mengedit .../bin/install-mendeley-link-handler.sh, karena itu menimpa .desktopfile pada setiap proses
MInner

TLDR; * .desktop nama file = WM_CLASS (STRING) item terakhir tetapi lebih kecil. Detail: Saya harus mengatasi masalah ini saat membuat pintasan "Edisi pengembang Firefox". Memberi nama file "firefox.desktop" cukup membayangi ikon standar firefox. Menggunakan xprop WM_CLASS dan mengklik jendela menghasilkan WM_CLASS (STRING) = "Navigator", "Firefox Developer Edition". Pada akhirnya saya mengganti nama file .desktop saya sebagai berikut: mv ffde.desktop "firefox developer edition.desktop". (Masalah lain, saya tidak bisa mengklik kanan »addToFavorites pada ikon dari ekstensi dock gnome)
Stphane

1
Jika Anda tidak ingin / tidak bisa memodifikasi file .desktop asli ke folder / usr / share / aplikasi, Anda dapat menyalin file ke folder lokal Anda, ~ / .local / share / aplikasi, dan memodifikasi file di sini. Jadi Anda akan memiliki file asli seluruh sistem (mungkin disediakan oleh pengembang / distribusi) dan file yang disesuaikan yang menimpa file asli di panel aplikasi gnome-shell. Menyalin ke folder lokal Anda diinginkan karena file ke / usr / share / aplikasi dapat dibalik dalam pembaruan paket berikutnya.
Vinícius A. Jorge

Beberapa aplikasi tidak memiliki WM_CLASS, atau setidaknya xprop tidak menunjukkannya. Bisakah itu dilakukan dengan properti lain? Misalnya ungkapan reguler di WM_NAME?
jws

3

StartupWMClass

Anda dapat menggunakan StartupWMClass untuk mengelompokkan windows menurut kelas.

Lihat utas ini untuk informasi tambahan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.