web-dev-qa-db-fra.com

Comment puis-je supprimer des entrées de menu de démarrage orphelines?

Pour une raison quelconque, j'ai un tas d'entrées restantes dans le menu de démarrage d'applications (par exemple, Gnome Do, Synapse, Leafpad.) Et je me demandais s'il était possible de supprimer toutes les entrées orphelines des applications qui ne sont plus installées?

14
Alan

Vous pouvez utiliser la commande suivante pour répertorier les icônes d'applications liées à des programmes inexistants:

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

Je suppose que vous constaterez que la plupart des vôtres sont des icônes personnalisées dans votre dossier de base, car elles ne sont pas automatiquement nettoyées par le gestionnaire de paquets. Si tel est le cas et que vous souhaitez corbeilleInstall trash-cli tous en même temps, 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 sûr, accédez à ~/.local/share/applications/ dans Nautilus et jetez-les dans l’interface graphique.

31
ændrük

Lorsqu'une application est désinstallée, elle doit supprimer les éléments de menu qu'elle a installés. Et ça marche comme ça sur ma machine.

Si cela fonctionne différemment, c'est un bogue d'un paquet particulier ou un problème de votre système. Je ne peux pas croire que vous avez plus de 40 orphelins d’entrée. Ce serait le symptôme d'un problème.

3
enzotib

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

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

3
Eugenio Perea

Eh bien, celui-ci 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 les fichiers se terminant par .desktop (le programme vlc est donc lancé par vlc.desktop)

À l'intérieur de chacune d'elles, il y a une section "Catégorie" dans laquelle vous pouvez définir dans quelle partie du menu Applications le programme que vous souhaitez. Le problème, c’est que: la seule façon de penser que vous pouvez faire ce que vous demandez est d’utiliser un script bash qui demande si le paquet associé à .desktop est installé ou non. si ce n'est pas le cas, supprimez ce fichier .desktop. Lorsque vous supprimez le fichier, il sort du menu et lorsque votre application appartient à une catégorie, celle-ci n'est pas affichée.

Celle-ci est un peu en dehors de ma portée car chaque commande (dpkg, apt-get, etc.) renvoie toujours une bonne sortie quand ils disent que le paquet n'est pas installé, nous devons donc lire la sortie de cette application à la recherche de une chaîne (fi "non installée"), cochez-la et si la chaîne existe, cela signifie que l'application n'est pas installée et que le fichier .desktop peut être supprimé.

Donc, 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 suppose que nous avons besoin d’un bon script bash sur la piste que j’ai dite.

J'espère que cela aide d'une certaine manière.

2
David Rando