Как установить значок приложения в файле.desktop приложения Ubuntu Touch?
Я изучаю Ubuntu SDK и создаю новый проект HTML5 Touch UI с Qt Creator.
Папка проекта имеет .desktop
файл. Затем я добавил launcher.png
в папку моего проекта.
Вот мой .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
Теперь я нажимаю Ctrl+R, чтобы запустить приложение с qmlscene
, Приложение работает, но launcher.png
не отображается как значок приложения в Unity Launcher.
Нужно ли запускать команду для обновления изменений? Или мне нужно переместить launcher.png
в /usr/share/myapp/launcher.png
через код приложения?
2 ответа
Есть две вещи не так, как вы делаете вещи.
Кулак всего, .desktop
файлы предназначены для установленных приложений, а не для запуска через Ctrl+R. Чтобы установить приложение, вам необходимо упаковать его и установить пакет. Вы можете найти более подробную информацию об упаковке вашего приложения и опубликовать его в Click App Store здесь.
Во-вторых, пути, которые у вас есть в .desktop
должны быть локальные файлы, а не абсолютные пути. Вот пример .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
Несколько вещей, чтобы отметить:
Exec
строка должна быть в форматеqmlscene $@ <file.qml>
, только с именем вашего основного файла QML, без информации каталога.Icon
линия должна быть в формеIcon=<icon.png>
, только с именем файла (включая расширение), без информации каталога.
Теперь информация, которую я предоставил выше, предназначена для запуска вашего приложения на устройстве Ubuntu Touch, упаковав его в пакет Click. Пакеты Click предназначены для Ubuntu Touch и в настоящее время не интегрируются с рабочим столом Unity. Итак, если вы хотите иметь возможность запускать ваше приложение из Dash/Launcher, а также видеть его значок, вам нужно будет сделать две вещи:
Скопируйте свой
.desktop
подать в~/.local/share/applications
и используйте абсолютный путь к вашей иконке, а не просто имя файла, как при упаковке приложения.Скопируйте свою иконку в
~/.icons
Настольная версия: у меня в Ubuntu 20.04 Desktop значок Squeezeplay не отображался ни в окне поиска, ни на боковой панели док-станции gnome3.
Приведенное выше решение сработало из @iBelieve для меня, показав значок в диалоговом окне поиска, но не на боковой панели gnome.
Добавление StartupWMClass=jive (обнаружено нажатием на открытое приложение с помощью
[Desktop Entry]
Name=Squeezeplay
StartupNotify=true
MimeType=text/plain;
Comment=https://sourceforge.net/projects/lmsclients/files/squeezeplay/linux/ The Linux version of Squeezelite-X (similar) working with LMS
Exec=/opt/squeezeplay/bin/squeezeplay.sh
Icon=squeezeplay-icon2-256x256.png
Terminal=false
Type=Application
StartupNotify=true
StartupWMClass=jive
Categories=Utility;Radio;
Как объяснили, иконка хранилась в