如何在 Ubuntu Touch 应用程序的 .desktop 文件中设置应用程序图标?

如何在 Ubuntu Touch 应用程序的 .desktop 文件中设置应用程序图标?

我正在学习 Ubuntu SDK,并且使用 Qt Creator 创建了一个新的 HTML5 Touch UI 项目。

项目文件夹中有一个.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

答案1

你做的事情有两个问题。

首先,.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>,仅包含文件名(包括扩展名),没有目录信息。

现在,我上面提供的信息是关于如何通过将您的应用打包到 Click 包中来在 Ubuntu Touch 设备上运行您的应用。Click 包适用于 Ubuntu Touch,目前不与 Unity 桌面集成。因此,如果您希望能够从 Dash/Launcher 运行您的应用并查看其图标,您需要做两件事:

  1. 将您的.desktop文件复制到~/.local/share/applications并使用图标的绝对路径,而不仅仅是文件名,就像打包应用程序时一样。

  2. 将您的图标复制到~/.icons

答案2

桌面版本:对我来说Ubuntu 20.04 桌面Squeezeplay 的图标没有显示,无论是在搜索窗口还是在 gnome3 侧面停靠面板中。

解决方案多于工作于@我相信对于我来说,在搜索对话框中显示一个图标,但不在 gnome 侧面板中显示。

添加StartupWMClass=jivexprop WM_CLASS(在 cli 中单击打开的应用程序)从答案中找到桌面文件这里任务完成,现在我可以在任何地方看到(搜索对话框,按“Windows”键和 gnome dock 侧面板)提供的图标文件(png 文件格式,最大尺寸 512x512,我选择 256x256)!桌面文件生成如下
$ vim ~/.local/applications/squeezeplay.desktop::

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

就像解释的那样,图标存储在~/.icons给定名称的目录中Icon=!感谢@iBelieve 和@Puspam!

相关内容