How to set app icon in the .desktop file of an Ubuntu Touch application?
There are two things wrong with how you're doing things.
Fist of all, .desktop
files are intended for installed apps, not for running via Ctrl+R. To install your app, you need to package it and install the package. You can find more details about packaging your app and publishing it in the Click App Store here.
Second of all, the paths you have in the .desktop
should be local files, not absolute paths. Here is an example of a .desktop
file:
[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
A couple of things to note:
The
Exec
line should be in the format ofqmlscene $@ <file.qml>
, with just the name of your main QML file, no directory information.The
Icon
line should be in the form ofIcon=<icon.png>
, with just the file name (including the extension), no directory information.
Now the information I've provided above is for running your app on an Ubuntu Touch device by packaging it in a Click package. Click packages are intended for Ubuntu Touch and currently don't integrate with the Unity desktop. So, if you want to be able to run your app from the Dash/Launcher and also see its icon, you will need to do two things:
Copy your
.desktop
file to~/.local/share/applications
and use an absolute path to your icon instead of just the file name, as you would when packaging the app.Copy your icon to
~/.icons
Related videos on Youtube
tuxmytty
Updated on September 18, 2022Comments
-
tuxmytty over 1 year
I am learning the Ubuntu SDK, and I have make an new HTML5 Touch UI project with Qt Creator.
The project folder has an
.desktop
file. I then added anlauncher.png
to my project's folder.Here is my
.desktop
file:[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
Now I press Ctrl+R to run the app with
qmlscene
. The app runs, butlauncher.png
is not displayed as the app's icon in the Unity Launcher.Do I need to run an command to update the changes? Or do I need to move the
launcher.png
to/usr/share/myapp/launcher.png
via in-app-code?-
edwin almost 11 yearsYou need to set the real path to the image. For testing purposes you can set it to be the path inside your development structure. Notice that moving the file to
/usr/share
would require you to type your password each time. Another alternative is to simply put a copy of the icon in~/.icons
. -
Mitch almost 11 yearsMake sure that you have permissions to read the file.
-
tuxmytty almost 11 yearsOk... so there is not any standard path where icons should be placed?
-
tuxmytty almost 11 yearsYes but only for testing purposes,.. right..
-
-
Igor over 4 yearsGreat! It also seems, that the *.png-file is supposed to have the same width as its height is and not exceed 512px on any side (at least for me a regular png-image was not resized properly as a icon; downsizing and extending it to be quadratic (512x512px) helped).
-
Admin about 2 yearsTo make it works on Ubuntu 20.04, I've to copy the .png file into the
~/.local/share/icons/hicolor/256x256/apps
folder instead of the pointed out here.