Jawaban:
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 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.
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.
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.
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.
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 .desktop
file 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
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