Was ist los
Probleme wie diese beziehen sich auf das Application Matching Framework von Unity. Um die technischen Details zu vereinfachen, sind Programmfenster und Anwendungen zwei getrennte Dinge für Ubuntu. Ubuntu muss 'raten', welche Anwendung ein bestimmtes Fenster besitzt. Und manchmal schlägt diese Vermutung fehl, und im Launcher wird ein Fragezeichen angezeigt.
Der Fehler kann folgende Ursachen haben:
- Ein Fehler in BAMF (das oben erwähnte Framework für den Anwendungsabgleich).
- Eine fehlerhafte Anwendungsbeschreibung (auch bekannt als ".desktop" -Datei).
- Das Fehlen jeglicher Anwendungsbeschreibung. Ausführbare Dateien, die Windows starten, verfügen nicht über diese Metadaten.
Die in der Frage gezeigte Anwendung (KeePass2) weist ein Typ 1-Problem auf, das dem entsprechenden Bug-Tracker gemeldet wurde .
Beispiele für Probleme
Die folgenden Beispiele sind technisch und richten sich an Programmierer, die möchten, dass ihre eigene Anwendung ordnungsgemäß im Ubuntu-Launcher angezeigt wird.
Problem 3 - Keine Anwendungsbeschreibung
Damit eine Anwendung in Unity integriert werden kann, dh im Dash durchsuchbar und im Launcher platziert ist, muss ein Desktop-Eintrag vorhanden sein. Solche Einträge in der platziert /usr/share/applications/
, /usr/local/share/applications/
und $HOME/.local/share/applications/
(die beiden letzteren zur Software von Drittanbietern, systemweite und benutzer nur jeweils sind). Sie enden mit einer .desktop
Erweiterung und folgen diesem Grundformat:
[Desktop Entry]
Type=Application
Name=My Application's Name
Icon=/file/path/of/my/icon
Exec=/file/path/of/my/executable
Dieser Eintrag startet ein Programm durch Aufrufen der Exec
ausführbaren Datei. Wenn dieses Programm ein Fenster oder ein Dialogfeld anzeigt, stellt Unity fest, dass die ausführbare Datei zu dieser Anwendungsbeschreibung gehört, und verwendet die angegebenen Name
und Icon
im Launcher.
Dies ist ein Beispiel für Barebones. Die formale Spezifikation deckt viele erweiterte Funktionen ab.
Problem 2 - Fehlerhafte Anwendungsbeschreibung
Nehmen wir an, dass dies my_app.desktop
in einem gültigen Anwendungsverzeichnis vorhanden ist, aber:
/file/path/of/my/icon
existiert nicht im Dateisystem.
/file/path/of/my/icon
ist kein Bild.
- Der Eintrag verwendet eine falsche Syntax oder ungültige Tags.
In den oben genannten Fällen kann Ubuntu das Anwendungsfenster im Launcher nicht ordnungsgemäß auflisten.
Problem 1 - Ein Fehler in BAMF
Ab Ubuntu 11.10 weist BAMF eine Reihe von Fehlern auf, die den korrekten Anwendungsabgleich verhindern. Häufige (vorübergehende) Fallstricke sind:
- Der
Exec
Pfad ist eher eine symbolische Verknüpfung als eine reguläre Datei
- Die ausführbare Datei ist ein Skript, das die ausführbare Hauptdatei startet.
In diesen Fällen haben Programmierer keine andere Wahl, als eine Problemumgehung zu verwenden, z. B. das Entfernen der symbolischen Verknüpfungsabstraktion oder das direkte Verknüpfen mit der ausführbaren Datei. Beides ist in der Desktop-Eintragsspezifikation selbst nicht erforderlich.