Pertanyaan Bagaimana cara menghapus entri menu mulai yatim piatu?


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


11
2018-05-07 01:11


asal




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 yang disesuaikan di folder rumah Anda, karena ini tidak secara otomatis dibersihkan oleh manajer paket. Jika ini kasusnya dan Anda ingin sampah  Install 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, jelajahi ~/.local/share/applications/ di Nautilus dan membuangnya melalui antarmuka grafis.


28
2018-05-21 16:24



Itu berhasil! Apakah ada saya bisa mengubahnya menjadi jalan pintas yang bisa saya jalankan ketika hal seperti itu terjadi lagi? - Alan


Jika dengan mulai menu yang Anda maksud menu 'Aplikasi', Anda dapat mengeditnya dengan membuka: Sistem -> Preferensi -> Menu Utama.

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


3
2018-05-07 02:52



Hai Eugenio. Itu benar, tetapi saya harus memeriksa masing-masing, mengonfirmasi apakah benar-benar anak 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 tidak bersahabat. +1 - tir38


Ketika sebuah aplikasi di-uninstall, ia harus menghapus item menu yang diinstal. Dan itu bekerja dengan cara ini di mesin saya.

Jika berfungsi dengan cara berbeda, ini adalah bug dari paket tertentu atau masalah pada sistem Anda. Saya tidak percaya bahwa Anda memiliki lebih dari 40 orang masuk yatim piatu. Itu akan menjadi gejala masalah.


3
2018-05-21 15:39



Ini sangat aneh, saya tidak pernah mengalami masalah ini sampai upgrade saya ke Natty Narwhal. Saya dapat menurunkan ke 10.04LTS, dan menunggu beberapa saat hingga 11.04 sedikit lebih bebas bug. - Alan


Nah, yang ini sulit tetapi saya ingin, setidaknya, untuk memberi tahu Anda apa masalahnya.

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

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

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

Jadi, jika Anda mau, Anda cukup 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 memerlukan skrip bash yang bagus di lintasan yang saya katakan.

Saya harap ini membantu dalam beberapa cara.


2
2018-05-21 15:25



Hai David, terima kasih atas bantuannya! Tip tentang masuk ke / usr / share / aplikasi tentu menghemat waktu dibandingkan menghapus tautan yang rusak satu per satu di editor menu. - Alan