Come posso rimuovere le voci del menu di avvio orfano?


14

Per qualche motivo ho un sacco di voci del 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?

Risposte:


33

È 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 Installa trash-cli 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.


Questo ha funzionato! Esiste un modo per trasformarlo in una scorciatoia che posso eseguire quando succede una cosa del genere?
Alan,

3

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.


Ciao Eugenio. È corretto, ma devo esaminarli tutti, confermare se è davvero orfano o meno, quindi eliminarlo. Sto cercando un modo per fare tutto questo per me, dato che ho circa 40 voci da rimuovere.
Alan,

Probabilmente la risposta più amichevole. +1
tir38,

3

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.


È molto strano, non ho mai avuto questo problema fino al mio aggiornamento a Natty Narwhal. Potrei effettuare il downgrade a 10.04LTS e attendere un po 'fino a quando 11.04 è un po' più privo di bug.
Alan,

Esistono programmi che si installano attivamente ma che non dispongono di un programma di installazione vero e proprio. Rimangono orfani se il binario viene spostato.
Punta

2

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.


Ciao David, grazie per il tuo aiuto! Quel suggerimento su andare in / usr / share / applicazioni è sicuramente un risparmio di tempo rispetto all'eliminazione dei collegamenti interrotti uno a uno nell'editor di menu.
Alan,

0

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 .desktopfile 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


0

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.