Как установить значок приложения в файле.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, а также видеть его значок, вам нужно будет сделать две вещи:

  1. Скопируйте свой .desktop подать в ~/.local/share/applications и используйте абсолютный путь к вашей иконке, а не просто имя файла, как при упаковке приложения.

  2. Скопируйте свою иконку в ~/.icons

Настольная версия: у меня в Ubuntu 20.04 Desktop значок Squeezeplay не отображался ни в окне поиска, ни на боковой панели док-станции gnome3.

Приведенное выше решение сработало из @iBelieve для меня, показав значок в диалоговом окне поиска, но не на боковой панели gnome.

Добавление StartupWMClass=jive (обнаружено нажатием на открытое приложение с помощью в cli) на файл рабочего стола из ответа здесь завершил миссию, теперь я могу видеть везде (диалоговое окно поиска, нажатие клавиши «Windows» и боковая панель док-станции gnome) предоставленный файл значка (формат файла png, максимальный размер 512x512, я выберите 256x256)! Файл рабочего стола был сгенерирован следующим образом:
:

      [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;

Как объяснили, иконка хранилась в каталог с именем, указанным в ! Спасибо @iBelieve и @Puspam!

Другие вопросы по тегам