Que ce passe-t-il
Des problèmes comme celui-ci sont liés au cadre de correspondance des applications d'Unity. Pour simplifier les détails techniques, les fenêtres de programme et les applications sont deux choses distinctes pour Ubuntu. Ubuntu doit «deviner» quelle application possède une fenêtre particulière. Et parfois, cette supposition échoue, et un point d'interrogation apparaît dans le lanceur.
L'échec peut être dû à:
- Un bogue dans BAMF (le cadre de correspondance d'application mentionné ci-dessus).
- Une description d'application défectueuse (également appelée fichier «.desktop»).
- L'absence de toute description d'application. Les exécutables qui lancent des fenêtres n'ont pas intrinsèquement ces métadonnées.
L'application indiquée dans la question (KeePass2) souffre d'un problème de type 1 qui a été signalé au programme de suivi des bogues approprié .
Exemples de problèmes
Les exemples ci-dessous sont techniques, destinés aux programmeurs qui souhaitent que leur propre application s'affiche correctement dans le lanceur Ubuntu.
Problème 3 - Aucune description d'application
Pour qu'une application s'intègre à Unity, c'est-à-dire qu'elle puisse être recherchée dans Dash et placée dans le lanceur, elle doit avoir une entrée de bureau. Ces entrées sont placées dans le /usr/share/applications/
,, /usr/local/share/applications/
et $HOME/.local/share/applications/
(les deux derniers étant pour les logiciels tiers, à l'échelle du système et utilisateur uniquement respectivement). Ils se terminent par une .desktop
extension et suivent ce format de base:
[Desktop Entry]
Type=Application
Name=My Application's Name
Icon=/file/path/of/my/icon
Exec=/file/path/of/my/executable
Cette entrée démarre un programme en appelant l' Exec
exécutable. Chaque fois que ce programme affiche une fenêtre ou une boîte de dialogue, Unity remarquera que son exécutable "appartient" à cette description d'application, et utilisera le donné Name
et Icon
dans le lanceur.
Ceci est un exemple simple. La spécification formelle couvre de nombreuses fonctionnalités avancées.
Problème 2 - Description d'application défectueuse
Supposons qu'il my_app.desktop
existe dans un répertoire d'application valide, mais:
/file/path/of/my/icon
n'existe pas dans le système de fichiers.
/file/path/of/my/icon
n'est pas une image.
- l'entrée utilise une syntaxe incorrecte ou des balises non valides.
Dans tous les cas ci-dessus, Ubuntu ne pourra pas lister correctement la fenêtre d'application dans le lanceur.
Problème 1 - Un bogue dans BAMF
Depuis Ubuntu 11.10, BAMF a un certain nombre de bogues qui empêchent une correspondance correcte des applications. Les pièges courants (temporaires) comprennent:
- Le
Exec
chemin étant un lien symbolique plutôt qu'un fichier normal
- L'exécutable est un script qui lance l'exécutable principal.
Dans ces cas, les programmeurs n'ont d'autre choix que d'utiliser une solution de contournement, telle que la suppression de l'abstraction du lien symbolique ou la liaison directe avec l'exécutable. Aucun de ces éléments n'est requis par la spécification d'entrée de bureau elle-même.