Bagaimana cara menghapus entri duplikat dalam dialog 'Buka Dengan' Nautilus?

14

Alangkah baiknya ditampilkan tombol ajaib yang akan membantu saya menghilangkan penglihatan buruk ini:

teks alternatif

Ini Nautilus 2.30 di Debian (dan telah ada di versi sebelumnya sejauh yang saya ingat).

tepang
sumber

Jawaban:

9

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 bansheeyang 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 umum
  • banshee-1-audiocd.desktop: Audio CD
  • banshee-1-media-player.desktopAudio player (Juga digunakan oleh rhythmbox, vlcdan 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/applicationsdan menambahkan Hidden=trueke file .desktop, dengan demikian "menimpa" nilai-nilai warisan seluruh sistem.

Menghapus dua entri dari alacartehasil 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 bansheeitem).

Jika Anda benar-benar tidak memiliki duplikat di dua folder itu, coba hapus duplikat dari alacarteatau bermain dengan Hidden=trueopsi di file .desktop yang sesuai.

mengibaskan
sumber
7

Jika Anda melihat ~/.local/share/applicationsdan /usr/share/applicationsAnda dapat menghapus duplikat dari dua tempat itu. Itu berhasil untuk saya.

Steve Burdine
sumber
Perhatikan bahwa saya hanya memiliki jhbuild.desktopdan mimeapps.listdi ~ / .local / share / aplikasi . Dan, tidak ada dupes di / usr / share / aplikasi , dan saya masih mengalami masalah.
tshepang
2

Saya tahu utas ini sudah tua, tetapi ini disebabkan oleh anggur bagi banyak orang.

rm ~/.local/share/applications/wine-extension*

membereskan kekacauan ini untukku.

Joelol75
sumber
1

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.

Jason Leonard
sumber
0

Jenis bidikan dalam gelap, tetapi apakah Anda sudah mencoba mengklik salah satu entri, dan mengklik tombol Hapus seperti yang terlihat di tangkapan layar Anda? Jika ini menghapus semua entri, Anda bisa menambahkannya kembali.

jonescb
sumber
0

Anda juga dapat melihat di editor menu "Aplikasi" Gnome dan menghapus duplikat dari sini.

Gentledevil
sumber
Pernahkah Anda melihat duplikat di sana?
tshepang
Iya. Beberapa aplikasi membuat duplikat yang muncul dalam dialog "buka dengan" seperti geany untuk Anda dan saya dapat menghapusnya dari sini dengan mengedit menu Aplikasi gnome (di mana ada tetapi tersembunyi, sehingga Anda tidak melihatnya hanya dengan menelusuri menu, hanya di editor).
Gentledevil