Die mir bekannten Pfade für diese .desktop-Starter sind /usr/share/applications und ~/.local/share/applications, wobei ich nicht ausschließen will, dass es noch mehr geben mag.
Schauen wir uns das mal am unter Xfce verbreiteten Beispiel von mouepad an (die lokalisierten Namen und Kommentare lasse ich der Übersichtlichkeit halber weg):
Code: Alles auswählen
$ egrep -v 'Name\[|Comment\[' /usr/share/applications/mousepad.desktop
[Desktop Entry]
Name=Mousepad
Comment=Simple Text Editor
GenericName=Text Editor
Exec=mousepad %F
Icon=accessories-text-editor
Terminal=false
StartupNotify=true
Type=Application
Categories=Utility;TextEditor;GTK;
MimeType=text/plain;
Code: Alles auswählen
Exec=mousepad %F
Icon=accessories-text-editor
Code: Alles auswählen
$ which mousepad
/usr/bin/mousepad
Ich verwende tango-icon-theme. Dort finden sich passende Icons:
Code: Alles auswählen
$ find /usr/share/icons/Tango/ -name '*accessories-text-editor*'
/usr/share/icons/Tango/24x24/apps/accessories-text-editor.png
/usr/share/icons/Tango/16x16/apps/accessories-text-editor.png
/usr/share/icons/Tango/32x32/apps/accessories-text-editor.png
/usr/share/icons/Tango/22x22/apps/accessories-text-editor.png
/usr/share/icons/Tango/scalable/apps/accessories-text-editor.svg
Wenn du nun Menüeinträge hast, die kein Programm starten und kein Icon laden, dann bedeutet das, dass der .desktop-Starter noch da ist, aber das Programm und das Icon nicht mehr. Eigentlich sollte mein Script (und Willys Abwandlung davon) solche .desktop-Dateien finden.
Wenn das nicht der Fall ist, dann müssten wir der Sache auf den Grund gehen. Versuch doch mal für einen der defekten Starter herauszufinden, wo dessen .desktop-Datewi liegt!