web-dev-qa-db-fra.com

Comment définir l'icône de l'application dans le fichier .desktop d'une application Ubuntu Touch?

J'apprends le SDK Ubuntu et j'ai créé un nouveau projet HTML5 Touch UI avec Qt Creator.

Le dossier de projet contient un fichier .desktop. J'ai ensuite ajouté un launcher.png au dossier de mon projet.

Voici mon fichier .desktop:

[Desktop Entry]
Name=myapp
StartupNotify=true
Icon=/usr/share/myapp/launcher.png
MimeType=text/plain;
NoDisplay=true
Comment=something...
Exec=/usr/bin/qmlscene $@ /usr/share/myapp/diaspora-webclient.qml
Terminal=false
Type=Application
X-Ubuntu-Touch=true

Maintenant je presse Ctrl+R exécuter l'application avec qmlscene. L'application s'exécute, mais launcher.png ne s'affiche pas sous forme d'icône de l'application dans le lanceur Unity.

Dois-je exécuter une commande pour mettre à jour les modifications? Ou dois-je déplacer le launcher.png vers /usr/share/myapp/launcher.png via in-app-code?

5
Voidcode

Il y a deux problèmes avec la façon dont vous faites les choses.

Tout d'abord, les fichiers .desktop sont destinés aux applications installées et non à l'exécution via Ctrl+R. Pour installer votre application, vous devez la conditionner et l'installer. Vous pouvez trouver plus de détails sur l'emballage de votre application et sa publication dans le Click App Store ici .

Deuxièmement, les chemins que vous avez dans le .desktop devraient être des fichiers locaux, pas des chemins absolus. Voici un exemple de fichier .desktop:

[Desktop Entry]
Name=Tasks
Comment=Your tasks, every device, everywhere.
Exec=qmlscene $@ ubuntu-tasks.qml
Icon=ubuntu-tasks.png
Terminal=false
Type=Application
X-Ubuntu-Touch=true

Quelques points à noter:

  • La ligne Exec doit être au format qmlscene $@ <file.qml>, avec juste le nom de votre fichier QML principal, sans information de répertoire.

  • La ligne Icon doit être sous la forme Icon=<icon.png>, avec uniquement le nom du fichier (y compris l’extension), sans information de répertoire.

Maintenant, les informations que j'ai fournies ci-dessus concernent l'exécution de votre application sur un appareil Ubuntu Touch en la conditionnant dans un package Click. Les packages de clics sont destinés à Ubuntu Touch et ne sont actuellement pas intégrés au bureau Unity. Donc, si vous voulez pouvoir exécuter votre application à partir de Dash/Launcher et voir son icône, vous devez faire deux choses:

  1. Copiez votre fichier .desktop dans ~/.local/share/applications et utilisez un chemin absolu vers votre icône au lieu de simplement le nom du fichier, comme vous le feriez pour empaqueter l'application.

  2. Copiez votre icône dans ~/.icons

14
iBelieve