Respuestas:
Puede usar el siguiente comando para enumerar los íconos de aplicaciones que se vinculan a programas inexistentes:
for i in {/usr,~/.local}/share/applications/*.desktop; do which $(grep -Poh '(?<=Exec=).*?( |$)' $i) > /dev/null || echo $i; done
Sospecho que descubrirá que la mayoría de los suyos son iconos personalizados en su carpeta de inicio, ya que el administrador de paquetes no los limpia automáticamente. Si este es el caso y desea eliminarlos todos a la vez, puede usar una modificación del comando anterior:
for i in ~/.local/share/applications/*.desktop; do which $(grep -Poh '(?<=Exec=).*?( |$)' $i) > /dev/null || trash $i; done
O, por supuesto, navegue ~/.local/share/applications/
en Nautilus y elimínelos mediante la interfaz gráfica.
Si por menú de inicio te refieres al menú 'Aplicaciones', puedes editarlo yendo a: Sistema -> Preferencias -> Menú principal.
Puede agregar, reorganizar, editar y eliminar entradas a voluntad.
Cuando se desinstala una aplicación, debe eliminar los elementos del menú que instaló. Y funciona de esta manera en mi máquina.
Si funciona de manera diferente, es un error de un paquete en particular o un problema en su sistema. No puedo creer que tengas más de 40 huérfanos de entrada. Sería el síntoma de un problema.
Bueno, este es difícil pero quiero, al menos, decirte cuál es el problema.
Gnome almacena las aplicaciones instaladas en / usr / share / aplicaciones con archivos terminados en .desktop (por lo que vlc.desktop lanza el programa vlc)
Dentro de cada uno, hay una sección de "Categoría" en la que puede establecer en qué parte del menú de Aplicaciones ese programa desea que sea. La cuestión es: la única forma en que creo que se puede hacer lo que está pidiendo es usar un script bash que pregunte si el paquete relacionado con ese .desktop está instalado o no. si no es así, elimine ese archivo .desktop. Cuando elimine el archivo, estará fuera del menú, y cuando su aplicación esté en una categoría, esa no se mostrará.
Ese está un poco fuera de mi alcance porque cada comando (dpkg, apt-get, etc.) siempre devuelve una buena salida cuando dicen que el paquete no está instalado, por lo que tenemos que leer la salida de esa aplicación buscando un String (fi "no instalado"), verifíquelo, y si el String existe, significa que la aplicación no está instalada y se puede eliminar el .desktop.
Entonces, si lo desea, puede ingresar a la carpeta (/ usr / share / aplicaciones) y hacer clic en los archivos que corresponden a los programas. Desaparecerán del menú Aplicaciones. Para hacerlo automáticamente, creo que necesitamos un buen script bash en la pista que dije.
Espero que esto ayude de alguna manera.
Alternativa:
Siguiendo la respuesta de @ ændrük, aquí hay una solución similar que admite espacios en la ruta y subcarpetas , esto se puede usar en una carpeta específica o en todo el disco para buscar .desktop
archivos rotos (acceso directo)
find {/usr,~/.local,/usr/local,}/share/applications/ -name '*.desktop' | while read -r line; do which $(grep -Poh '(?<=Exec=).*?( |$)' $line) > /dev/null || echo $line; done
Para todo el disco
find / -name '*.desktop' | while read -r line; do which $(grep -Poh '(?<=Exec=).*?( |$)' $line) > /dev/null || echo $line; done
Nota: cualquier método puede mostrar una verificación de falso positivo dos veces los archivos encontrados antes de eliminarlos
Esta puede ser una vieja pregunta publicada, pero pensé que debería intervenir de todos modos ya que tenía el mismo problema, sin embargo, ninguna de estas sugerencias funcionó, pero encontré en Internet a una persona muy inteligente que conocía un programa llamado Alacarte (edición fácil del menú GNOME) programa que instaló usando el administrador de software y estoy encantado de que todavía esté disponible porque usó la instalación por defecto, pero no lo es ahora y no es un programa bien conocido, pero estoy muy contento de que todavía esté disponible a través del administrador de software y es tan fácil de usar, simplemente haga clic en para resaltar la entrada del programa desinstalado del que desea deshacerse y haga clic en eliminar a la derecha y listo. tal vez esto ayude si estas otras sugerencias no funcionan para usted