Risposte:
È possibile utilizzare il comando seguente per elencare le icone delle applicazioni che si collegano a programmi inesistenti:
for i in {/usr,~/.local}/share/applications/*.desktop; do which $(grep -Poh '(?<=Exec=).*?( |$)' $i) > /dev/null || echo $i; done
Ho il sospetto che scoprirai che la maggior parte delle tue sono icone personalizzate nella tua cartella home, poiché non vengono automaticamente ripulite dal gestore dei pacchetti. In questo caso e desideri eliminarli tutti in una volta, puoi utilizzare una modifica del comando precedente:
for i in ~/.local/share/applications/*.desktop; do which $(grep -Poh '(?<=Exec=).*?( |$)' $i) > /dev/null || trash $i; done
Oppure, naturalmente, cerca ~/.local/share/applications/
in Nautilus e eliminali tramite l'interfaccia grafica.
Se per menu di avvio intendi il menu 'Applicazioni', puoi modificarlo andando su: Sistema -> Preferenze -> Menu principale.
È possibile aggiungere, riorganizzare, modificare ed eliminare le voci a piacimento.
Quando un'applicazione viene disinstallata, è necessario rimuovere le voci di menu installate. E funziona così sulla mia macchina.
Se funziona in modo diverso, è un bug di un determinato pacchetto o un problema sul tuo sistema. Non riesco a credere che tu abbia più di 40 voci orfane. Sarebbe il sintomo di un problema.
Bene, questo è difficile ma voglio almeno dirti qual è il problema.
Gnome memorizza le applicazioni installate in / usr / share / applicazioni con i file finiti in .desktop (quindi il programma vlc è lanciato da vlc.desktop)
All'interno di ognuno, c'è una sezione "Categoria" in cui puoi impostare in quale parte del menu Applicazioni quel programma vuoi che sia. Il fatto è: l'unico modo in cui penso che si possa fare quello che stai chiedendo è usare uno script bash che chieda se il pacchetto relativo a quel .desktop è installato o meno. in caso contrario, eliminare quel file .desktop. Quando elimini il file, sarà fuori dal menu e quando l'app è in una categoria, quella non viene mostrata.
Quello è un po 'fuori dal mio ambito perché ogni comando (dpkg, apt-get, ecc.) Restituisce sempre una buona uscita quando dicono che il pacchetto non è installato, quindi dobbiamo leggere l'uscita da quell'app cercando una stringa (fi "non installato"), controllala e se la stringa esiste, significa che l'applicazione non è installata e .desktop può essere eliminato.
Quindi, se vuoi, puoi semplicemente inserire la cartella (/ usr / share / applicazioni) e fare clic sui file che corrispondono ai programmi. Scompariranno dal menu Applicazioni. Per farlo automaticamente, credo che abbiamo bisogno di un buon script bash sulla traccia che ho detto.
Spero che questo aiuti in qualche modo.
Alternativa:
Seguendo la risposta @ ændrük, ecco una soluzione simile che supporta gli spazi nel percorso e nelle sottocartelle , che può essere utilizzata su una cartella specifica o sull'intero disco per cercare .desktop
file rotti (collegamento)
find {/usr,~/.local,/usr/local,}/share/applications/ -name '*.desktop' | while read -r line; do which $(grep -Poh '(?<=Exec=).*?( |$)' $line) > /dev/null || echo $line; done
Per l'intero disco
find / -name '*.desktop' | while read -r line; do which $(grep -Poh '(?<=Exec=).*?( |$)' $line) > /dev/null || echo $line; done
Nota: qualsiasi metodo può mostrare il controllo dei falsi positivi due volte trovato i file prima di eliminarli
Questa potrebbe essere una vecchia domanda postata, ma ho pensato che avrei dovuto suonare comunque dato che avevo lo stesso problema, tuttavia nessuno di questi suggerimenti ha funzionato, ma ho trovato su Internet una persona molto intelligente che conosceva un programma chiamato Alacarte (facile modifica del menu GNOME) programma installato usando il software manager e sono entusiasta che sia ancora disponibile perché ha usato l'installazione per impostazione predefinita ma non è ora e non è un programma ben noto ma sono così felice che sia ancora disponibile tramite software manager ed è così facile da usare basta fare clic su per evidenziare la voce di programma disinstallata di cui si desidera eliminare e fare clic su Elimina a destra e il gioco è fatto. forse questo aiuterà se questi altri suggerimenti non funzionano per te