Wie kann ich verwaiste Startmenüeinträge entfernen?

11

Aus irgendeinem Grund habe ich eine Reihe von übrig gebliebenen Startmenüeinträgen von Anwendungen (z. B. Gnome Do, Synapse, Leafpad) und fragte mich, ob es eine Möglichkeit gibt, alle verwaisten Einträge für Anwendungen zu entfernen, die nicht mehr installiert sind.

    
Alan 07.05.2011, 03:11
quelle

4 Antworten

28

Sie können den folgenden Befehl verwenden, um Anwendungssymbole aufzulisten, die mit nicht vorhandenen Programmen verknüpft sind:

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

Ich vermute, Sie werden feststellen, dass die meisten von Ihnen benutzerdefinierte Symbole in Ihrem Home-Ordner sind, da diese nicht automatisch vom Paket-Manager aufgeräumt werden. Wenn dies der Fall ist und Sie möchten Papierkorb sie alle auf einmal, können Sie eine Änderung des vorherigen Befehls verwenden:

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

Oder navigieren Sie natürlich zu ~/.local/share/applications/ in Nautilus und löschen Sie sie über die grafische Benutzeroberfläche.

    
ændrük 21.05.2011, 18:24
quelle
3

Wenn Sie unter Startmenü das Menü "Anwendungen" verstehen, können Sie es folgendermaßen bearbeiten: System - & gt; Einstellungen - & gt; Hauptmenü.

Sie können Einträge nach Belieben hinzufügen, neu anordnen, bearbeiten und löschen.

    
Eugenio Perea 07.05.2011 04:52
quelle
3

Wenn eine Anwendung deinstalliert wird, sollte sie die installierten Menüelemente entfernen. Und so funktioniert es auf meiner Maschine.

Wenn es anders funktioniert, ist es ein Fehler eines bestimmten Pakets oder ein Problem auf Ihrem System. Ich kann nicht glauben, dass du mehr als 40 Waisenkinder hast. Es wäre das Symptom eines Problems.

    
enzotib 21.05.2011 17:39
quelle
2

Nun, dieser hier ist hart, aber ich möchte Ihnen zumindest sagen, wo das Problem liegt.

Gnome speichert die installierten Anwendungen in / usr / share / applications mit Dateien, die in .desktop enden (so dass das vlc-Programm von vlc.desktop gestartet wird)

In jedem Bereich befindet sich ein Abschnitt "Kategorie", in dem Sie festlegen können, in welchem ​​Teil des Anwendungsmenüs das gewünschte Programm angezeigt werden soll. Die Sache ist: Die einzige Möglichkeit, wie Sie das machen können, ist die Verwendung eines Bash-Skripts, das Sie fragt, ob das zu diesem .desktop gehörende Paket installiert ist oder nicht. Wenn nicht, löschen Sie diese .desktop-Datei. Wenn Sie die Datei löschen, wird sie nicht mehr im Menü angezeigt. Wenn Sie eine App in einer Kategorie haben, wird diese nicht angezeigt.

Das ist ein bisschen außerhalb meines Geltungsbereichs, weil jeder Befehl (dpkg, apt-get, etc ..) immer einen guten Ausgang zurückgibt, wenn sie sagen, dass das Paket nicht installiert ist, also müssen wir den Ausgang davon lesen app sucht nach einem String (z. B. "nicht installiert"), überprüfe es, und wenn der String existiert, bedeutet dies, dass die Anwendung nicht installiert ist und das .desktop gelöscht werden kann.

Wenn Sie möchten, können Sie einfach den Ordner (/ usr / share / applications) eingeben und auf Dateien klicken, die den Programmen entsprechen. Sie werden aus dem Anwendungsmenü verschwinden. Um es automatisch zu machen, brauchen wir ein gutes Bash-Skript auf der Strecke, die ich gesagt habe.

Ich hoffe, das hilft in gewisser Weise.

    
David Rando 21.05.2011 17:25
quelle

Tags und Links