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

Voi*_*ode 9 application-development ubuntu-sdk ubuntu-touch

我正在学习 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
Run Code Online (Sandbox Code Playgroud)

现在我按Ctrl+R运行应用程序qmlscene。应用程序运行,但未launcher.png在 Unity Launcher 中显示为应用程序图标。

我是否需要运行命令来更新更改?还是我需要通过应用内代码移动launcher.png/usr/share/myapp/launcher.png

iBe*_*eve 24

你做事的方式有两个问题。

首先,.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
Run Code Online (Sandbox Code Playgroud)

有几点需要注意:

  • 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

  • 为了使其在 Ubuntu 20.04 上运行,我必须将 .png 文件复制到 `~/.local/share/icons/hicolor/256x256/apps` 文件夹中,而不是此处指出的文件夹中。 (3认同)