22 votes

Comment supprimer les entrées orphelines du menu Démarrer ?

Pour une raison quelconque, j'ai un tas d'entrées restantes dans le menu Démarrer provenant d'applications (par exemple, Gnome Do, Synapse, Leafpad.) et je me demandais s'il y avait un moyen de supprimer toutes les entrées orphelines pour les applications qui ne sont plus installées ?

41voto

Kyle Gibbons Points 133

Vous pouvez utiliser la commande suivante pour répertorier les icônes d'application qui renvoient à des programmes inexistants :

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

Je pense que vous constaterez que la plupart des vôtres sont des icônes personnalisées dans votre dossier personnel, car elles ne sont pas automatiquement nettoyées par le gestionnaire de paquets. Si c'est le cas et que vous souhaitez poubelle Install trash-cli les faire en une seule fois, vous pouvez utiliser une modification de la commande précédente :

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

Ou bien, bien sûr, naviguer sur ~/.local/share/applications/ dans Nautilus et les mettre à la corbeille via l'interface graphique.

3voto

nlucaroni Points 21502

Si vous entendez par menu de démarrage le menu "Applications", vous pouvez le modifier en allant dans : Système -> Préférences -> Menu principal.

Vous pouvez ajouter, réorganiser, modifier et supprimer des entrées à volonté.

3voto

enzotib Points 86709

Lorsqu'une application est désinstallée, elle doit supprimer les éléments de menu qu'elle a installés. C'est ce qui se passe sur ma machine.

Si cela fonctionne différemment, il s'agit d'un bogue d'un paquet particulier ou d'un problème sur votre système. Je ne peux pas croire que vous ayez plus de 40 entrées orphelines. Ce serait le symptôme d'un problème.

2voto

David Rando Points 428

Cette fois, c'est difficile, mais je veux au moins vous dire quel est le problème.

Gnome stocke les applications installées dans /usr/share/applications avec des fichiers terminés par .desktop (ainsi le programme vlc est lancé par vlc.desktop).

À l'intérieur de chaque programme, il y a une section "Catégorie" dans laquelle vous pouvez définir dans quelle partie du menu Applications le programme doit être placé. La seule façon de faire ce que vous demandez est d'utiliser un script bash script qui demande si le paquetage lié à ce .desktop est installé ou non. Lorsque vous supprimez le fichier, il ne sera plus dans le menu, et lorsque votre application est dans une catégorie, celle-ci n'est pas affichée.

Cette question est un peu hors de ma portée car toutes les commandes (dpkg, apt-get, etc.) renvoient toujours une bonne sortie lorsqu'elles disent que le paquet n'est pas installé, donc nous devons lire la sortie de cette application à la recherche d'une chaîne (par exemple "not installed"), la vérifier, et si la chaîne existe, cela signifie que l'application n'est pas installée et que le .desktop peut être supprimé.

Ainsi, si vous le souhaitez, vous pouvez simplement entrer dans le dossier (/usr/share/applications) et cliquer sur les fichiers correspondant aux programmes. Ils disparaîtront du menu Applications. Pour le faire automatiquement, je pense qu'il faut un bon bash script sur la piste que j'ai mentionnée.

J'espère que cela vous aidera d'une manière ou d'une autre.

2voto

intika Points 764

Alternative :

Suite à la réponse de @ændrük, voici une solution similaire qui prise en charge des espaces dans le chemin et les sous-dossiers Cette fonction peut être utilisée sur un dossier spécifique ou sur l'ensemble du disque pour rechercher les cassures. .desktop fichiers (raccourci)

find {/usr,~/.local,/usr/local,}/share/applications/ -name '*.desktop' | while read -r line; do which $(grep -Poh '(?<=Exec=).*?( |$)' $line) > /dev/null || echo $line;  done

Pour l'ensemble du disque

find / -name '*.desktop' | while read -r line; do which $(grep -Poh '(?<=Exec=).*?( |$)' $line) > /dev/null || echo $line;  done

Remarque : que toute méthode peut présenter des faux positifs en vérifiant deux fois les fichiers trouvés avant de les supprimer

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X