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?
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 corbeille 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.
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.
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é.
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.