Jawaban:
Daftar ini dibuat dengan menganalisis file .desktop yang terletak di:
/usr/share/applications
~/.local/share/applications
Mungkin ada lebih dari satu usecase per aplikasi, ambil contoh media player banshee
yang memiliki tiga file .desktop secara default:
$ ls -1 /usr/share/applications/banshee*
/usr/share/applications/banshee-1-audiocd.desktop
/usr/share/applications/banshee-1.desktop
/usr/share/applications/banshee-1-media-player.desktop
Satu-satunya perbedaan antara file-file tersebut adalah parameter awal dan daftar MimeType.
banshee-1.desktop
: File media umumbanshee-1-audiocd.desktop
: Audio CDbanshee-1-media-player.desktop
Audio player (Juga digunakan oleh rhythmbox
, vlc
dan lain-lain)Jadi kami memiliki tiga 'Banshee Media Player' di daftar 'Buka dengan' (dan mungkin juga di 'Menu Utama').
Cara lain untuk mengisi ruang ini adalah dengan membuat file .desktop pribadi ~/.local/share/applications
. Baik secara manual atau dengan menggunakan alat. alacarte
(atau klik kanan pada 'Menu Utama' -> 'Edit Menu') adalah salah satunya.
Setiap kali Anda membuat atau memindahkan aplikasi di dalam alacarte
, file .desktop baru ditempatkan di dalamnya ~/.local/share/applications
. Menonaktifkan aplikasi akan "menghapus" itu dari 'Menu Utama', tetapi tidak dari daftar 'Buka dengan'.
Tetapi tombol 'Hapus' berhasil, dengan membuat salinan yang identik dari/usr/share/applications
ke ~/.local/share/applications
dan menambahkan Hidden=true
ke file .desktop, dengan demikian "menimpa" nilai-nilai warisan seluruh sistem.
Menghapus dua entri dari alacarte
hasil di:
$ ls -1 ~/.local/share/applications/banshee*
/home/user/.local/share/applications/banshee-1-audiocd.desktop
/home/user/.local/share/applications/banshee-1-media-player.desktop
Menghapus entri apa pun dari ~/.local/share/applications
akan terbalik ke keadaan yang sudah ada sebelumnya (tiga banshee
item).
Jika Anda benar-benar tidak memiliki duplikat di dua folder itu, coba hapus duplikat dari alacarte
atau bermain dengan Hidden=true
opsi di file .desktop yang sesuai.
Jika Anda melihat ~/.local/share/applications
dan /usr/share/applications
Anda dapat menghapus duplikat dari dua tempat itu. Itu berhasil untuk saya.
Mengakui utas ini sudah tua, saya bingung dengan masalah ini sendiri. Saya pribadi merasa menghapus file atau memainkan "pembersihan" tidak perlu, seperti hanya mengutak-atik hal-hal untuk pengguna saat ini. Jika ada lebih dari 1 file .desktop, tidak bisakah masing-masing memiliki deskripsi unik? Sejauh Linux datang, apakah pengembang aplikasi tertentu benar-benar mengabaikan hal-hal sederhana seperti ini?
Saya menemukan jika Anda membuka file .desktop di editor teks, bidang Nama adalah apa yang ditampilkan di menu "Open With". Jadi bagi saya, saya mencari file .desktop yang saya tahu membuat masalah (misalnya, 3 file Banshee). Melihat masing-masing, perbedaannya hampir selalu ada hubungannya dengan mimetypes yang ditangani oleh shortcut. Ini karena beberapa program lebih suka untuk melewati parameter yang berbeda tergantung pada mimetype. Hanya dalam 1 contoh saya menemukan entri duplikat hasil dari pembaruan aplikasi tidak membersihkan file .desktop yang lama
Berbekal penemuan itu, saya mengubah bidang Nama entri duplikat yang dikenal untuk mencerminkan ini. Misalnya, mengedit file .desktop yang dimiliki Banshee secara khusus untuk menangani Audio CD , saya membuat namanya terbaca:
Banshee (Audio CD)
Rhythmbox juga merupakan contoh yang baik, karena memiliki file .desktop terpisah khusus untuk menangani pemutar CD + MP3 tetapi masing-masing menunjukkan hal yang sama. Dugaan saya adalah 1 file memuat aplikasi dan menempatkan fokus pada unit daripada perpustakaan Anda. Ini perlu diganti nama, karena Anda tidak ingin ini terjadi saat menangani file MP3 / OGG Anda.
Bagaimanapun, saya pikir ini membuat menu Open With terlihat bersih tanpa hanya menghapus file yang tampaknya berguna. Apakah perubahan ini tetap ada di antara pembaruan aplikasi atau belum belum dilihat ... tetapi itu adalah pengeditan sederhana dan cepat yang bahkan dapat dituliskan. Shell sangat membantu dalam hal ini. Misalnya, untuk melihat semua nama file (dengan path) dengan entri duplikat seperti itu:
grep -rl "^Name=Banshee$" /usr/share/applications
Di mana "Banshee" adalah apa yang muncul lebih dari sekali di menu Open With. Pada contoh yang disediakan di bagian atas, aplikasi itu disebut Geany.
Dengan ini, Anda dapat mengirim file yang dihasilkan langsung ke editor Anda. Jika Anda bukan ahli dalam ekspresi reg, masing-masing ^ dan $ tentukan awal baris dan akhir baris. Ini membuat sistem tidak menemukan baris seperti XGnome-FullName=Banshee Media Player
Ini juga mencegahnya menemukan entri yang mungkin sudah Anda perbaiki.
Anda juga dapat melihat di editor menu "Aplikasi" Gnome dan menghapus duplikat dari sini.
jhbuild.desktop
danmimeapps.list
di ~ / .local / share / aplikasi . Dan, tidak ada dupes di / usr / share / aplikasi , dan saya masih mengalami masalah.