Bagaimana saya bisa menghapus entri menu mulai yatim?

14

Untuk beberapa alasan saya memiliki banyak entri menu start-over sisa dari aplikasi (misalnya, Gnome Do, Synapse, Leafpad.) Dan bertanya-tanya apakah ada cara untuk menghapus semua entri yatim untuk aplikasi yang tidak lagi diinstal?

Alan
sumber

Jawaban:

33

Anda dapat menggunakan perintah berikut untuk mencantumkan ikon aplikasi yang tertaut ke program yang tidak ada:

for i in {/usr,~/.local}/share/applications/*.desktop; do which $(grep -Poh '(?<=Exec=).*?( |$)' $i) > /dev/null || echo $i; done

Saya menduga Anda akan menemukan bahwa sebagian besar dari Anda adalah ikon khusus di folder rumah Anda, karena ini tidak secara otomatis dibersihkan oleh manajer paket. Jika ini masalahnya dan Anda ingin membuang Instal trash-cli semuanya sekaligus, Anda dapat menggunakan modifikasi dari perintah sebelumnya:

for i in ~/.local/share/applications/*.desktop; do which $(grep -Poh '(?<=Exec=).*?( |$)' $i) > /dev/null || trash $i; done

Atau, tentu saja, telusuri ~/.local/share/applications/di Nautilus dan buang mereka melalui antarmuka grafis.

ændrük
sumber
Itu berhasil! Adakah di sana saya bisa mengubahnya menjadi jalan pintas yang bisa saya jalankan ketika hal seperti itu terjadi lagi?
Alan
3

Jika dengan memulai menu yang Anda maksud adalah menu 'Aplikasi', Anda dapat mengeditnya dengan masuk ke: Sistem -> Preferensi -> Menu Utama.

Anda dapat menambah, mengatur ulang, mengedit, dan menghapus entri sesuka hati.

Eugenio Perea
sumber
Hai Eugenio. Itu benar, tetapi saya harus memeriksa masing-masing, mengkonfirmasi apakah itu benar-benar yatim piatu atau tidak, dan kemudian menghapusnya. Saya mencari cara yang akan melakukan semua ini untuk saya, karena saya memiliki sekitar 40 entri yang ingin saya hapus.
Alan
Mungkin jawaban yang paling ramah-noob. +1
tir38
3

Ketika aplikasi dihapus instalannya, itu harus menghapus item menu yang diinstal. Dan itu bekerja dengan cara ini di mesin saya.

Jika berfungsi secara berbeda, ini adalah bug dari paket tertentu atau masalah pada sistem Anda. Saya tidak percaya bahwa Anda memiliki lebih dari 40 anak yatim yang masuk. Itu akan menjadi gejala dari suatu masalah.

enzotib
sumber
Ini sangat aneh, saya tidak pernah mengalami masalah ini hingga peningkatan ke Natty Narwhal. Saya dapat menurunkan versi ke 10,04LTS, dan menunggu sebentar hingga 11,04 sedikit lebih bebas bug.
Alan
Ada beberapa program yang secara aktif menginstal sendiri tetapi tidak memiliki installer yang sebenarnya. Mereka menjadi yatim piatu jika biner dipindahkan.
Runcing
2

Yah, yang ini sulit tapi saya ingin, setidaknya, untuk memberi tahu Anda apa masalahnya.

Gnome menyimpan aplikasi yang terinstal di / usr / share / aplikasi dengan file yang berakhiran .desktop (jadi program vlc diluncurkan oleh vlc.desktop)

Di dalam masing-masing, ada bagian "Kategori" di mana Anda dapat mengatur di bagian mana dari menu Aplikasi yang Anda inginkan. Masalahnya adalah: satu-satunya cara saya pikir itu bisa dilakukan apa yang Anda minta adalah menggunakan skrip bash yang menanyakan apakah paket terkait dengan .desktop diinstal atau tidak. jika tidak, hapus file .desktop itu. Ketika Anda menghapus file, itu akan keluar dari menu, dan ketika aplikasi Anda dalam kategori, yang tidak ditampilkan.

Yang itu sedikit keluar dari jangkauan saya karena setiap perintah (dpkg, apt-get, dll.) Selalu mengembalikan jalan keluar yang baik ketika mereka mengatakan paket tidak diinstal, jadi kita harus membaca jalan keluar dari aplikasi yang mencari sebuah String (fi "tidak diinstal"), periksa, dan jika String ada, itu berarti aplikasi tidak diinstal dan .desktop dapat dihapus.

Jadi, jika Anda mau, Anda bisa memasukkan folder (/ usr / share / aplikasi) dan klik pada file yang sesuai dengan program. Mereka akan menghilang dari menu Aplikasi. Untuk melakukannya secara otomatis, saya kira kita perlu skrip bash yang bagus di trek yang saya katakan.

Saya harap ini membantu dalam beberapa cara.

David Rando
sumber
Hai David, terima kasih atas bantuan Anda! Tip tentang masuk ke / usr / share / aplikasi ini tentu saja menghemat waktu dibandingkan dengan menghapus tautan yang rusak satu-per-satu di editor menu.
Alan
0

Alternatif:

Mengikuti @ ændrük jawaban, berikut adalah solusi serupa yang mendukung spasi di path dan subfolder , ini dapat digunakan pada folder tertentu atau seluruh disk untuk mencari .desktopfile yang rusak (pintasan)

find {/usr,~/.local,/usr/local,}/share/applications/ -name '*.desktop' | while read -r line; do which $(grep -Poh '(?<=Exec=).*?( |$)' $line) > /dev/null || echo $line;  done

Untuk seluruh disk

find / -name '*.desktop' | while read -r line; do which $(grep -Poh '(?<=Exec=).*?( |$)' $line) > /dev/null || echo $line;  done

Catatan: bahwa metode apa pun dapat menunjukkan cek positif palsu dua kali file yang ditemukan sebelum menghapusnya

intika
sumber
0

Ini mungkin pertanyaan lama yang sudah diposting tetapi saya pikir saya harus tetap berbincang-bincang karena saya mempunyai masalah yang sama namun tidak satupun dari saran ini yang berhasil, tetapi saya menemukan di internet orang yang sangat pintar yang tahu tentang program yang disebut Alacarte (pengeditan menu GNOME yang mudah) program itu diinstal menggunakan manajer perangkat lunak dan saya senang itu masih tersedia karena menggunakan diinstal secara default tetapi tidak sekarang dan bukan program yang terkenal tapi saya sangat senang itu masih tersedia melalui manajer perangkat lunak dan itu sangat mudah digunakan, cukup klik untuk menyorot entri program yang dihapus yang ingin Anda singkirkan dan klik hapus di sebelah kanan dan selesai. mungkin ini akan membantu jika saran lain ini tidak berhasil untuk Anda

Ken
sumber