Come posso rimuovere le voci del menu di avvio orfano?

11

Per qualche ragione ho un mucchio di voci di menu di avvio rimanenti dalle applicazioni (ad esempio, Gnome Do, Synapse, Leafpad.) e mi chiedevo se c'è un modo per rimuovere tutte le voci orfane per le applicazioni che non sono più installate?

    
posta Alan 07.05.2011 - 03:11
fonte

4 risposte

28

È possibile utilizzare il seguente comando per elencare le icone delle applicazioni che rimandano a programmi inesistenti:

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

Sospetto che scoprirai che la maggior parte delle tue sono icone personalizzate nella tua cartella Inizio, poiché queste non vengono automaticamente ripulite dal gestore pacchetti. Se questo è il tuo caso e ti piacerebbe cestino tutti in una volta, puoi usare 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, naviga fino a ~/.local/share/applications/ in Nautilus e trascinalo attraverso l'interfaccia grafica.

    
risposta data ændrük 21.05.2011 - 18:24
fonte
3

Se per menu di avvio intendi il menu 'Applicazioni', puoi modificarlo andando a: Sistema - & gt; Preferenze - & gt; Menu principale.

Puoi aggiungere, riorganizzare, modificare ed eliminare voci a volontà.

    
risposta data Eugenio Perea 07.05.2011 - 04:52
fonte
3

Quando un'applicazione viene disinstallata, dovrebbe rimuovere le voci di menu installate. E funziona così sulla mia macchina.

Se funziona diversamente, è un bug di un particolare pacchetto o un problema sul tuo sistema. Non posso credere che tu abbia più di 40 anni orfani. Sarebbe il sintomo di un problema.

    
risposta data enzotib 21.05.2011 - 17:39
fonte
2

Bene, questo è difficile ma voglio, almeno, dirti qual è il problema.

Gnome memorizza le applicazioni installate in / usr / share / applications con i file terminati in .desktop (quindi il programma vlc è launchad di vlc.desktop)

All'interno di ognuno di essi, c'è una sezione "Categoria" in cui puoi impostare in quale parte del menu Applicazioni vuoi che sia. La cosa è: l'unico modo in cui penso che si possa fare quello che stai chiedendo è usare uno script bash che chiede se il pacchetto relativo a quel .desktop è installato o meno. se non lo è, cancella il file .desktop. Quando elimini il file, sarà fuori dal menu e quando l'app si trova in una categoria, quella non verrà mostrata.

Questo è un po 'fuori dal mio scope 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 quel app alla ricerca di una stringa (fi "non installata"), controllala, e se la stringa esiste, significa che l'applicazione non è installata e il .desktop può essere cancellato.

Quindi, se lo desideri, puoi semplicemente inserire la cartella (/ usr / share / applications) 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.

    
risposta data David Rando 21.05.2011 - 17:25
fonte

Leggi altre domande sui tag