应用程序图标不适用于 Snap 包装

Application icon doesn't work with Snap packaging

我的桌面文件是:

[Desktop Entry]
Name=Heimer
GenericName=Mind map application
Comment=Mind map application
Exec=heimer
Icon=heimer
Type=Application
Categories=Education;
StartupNotify=true

我的 snapcraft.yaml 是:

name: heimer
version: '1.1.0'
summary: Heimer is a simple cross-platform mind map tool.
description: |
  Heimer is a simple cross-platform mind map creation tool.
  Emphasis on easy diagram creation, simplicity, and speed.
grade: stable
confinement: strict
icon: ../../../data/icons/heimer.png

apps:
  heimer:
    command: desktop-launch heimer
    desktop: usr/share/applications/heimer.desktop
    plugs: [home, x11, wayland]

parts:
  gnu-heimer:
    source: ../../../
    plugin: cmake
    configflags:
      - -DCMAKE_BUILD_TYPE=Release
      - -DCMAKE_INSTALL_PREFIX=/usr
    build-packages:
      - qtbase5-dev
      - qttools5-dev
      - qttools5-dev-tools
    stage-packages:
      - libqt5xml5
    after: [desktop-qt5]

CMake 将应用程序图标安装到:

# Install icons
install(FILES data/icons/heimer.png DESTINATION share/pixmaps)
install(FILES data/icons/heimer.png DESTINATION share/icons/hicolor/64x64/apps)

桌面文件安装到:

# Install .desktop files
install(FILES ${CMAKE_BINARY_DIR}/heimer.desktop DESTINATION share/applications)

我不明白这是什么问题。安装快照后,我的应用程序始终在启动器中显示默认系统图标 (Ubuntu 18.04)。创建包或 运行 时没有警告或任何东西。

注意:同样的设置适用于 Debian 打包。我的 Debian 软件包使用完全相同的安装位置,并且图标在那种情况下工作正常。

目前,Snapcraft 不对桌面条目的图标进行任何处理(因此系统无法找到图标,因为桌面条目中指定的图标不在 icon search directories 中)并且打包程序有手动将 Icon$SNAP/path/to/the/icon.{png,svg} 修补到 apps._app_name_.desktop 键指定的 .desktop 文件。

这是

我已在 Proposal: The apps.<app-name>.icon Key - snapcraft - snapcraft.io

提交了改善这种情况的提案

按照这些步骤,图标出现在桌面上(Snap 应用程序)

  1. 转到var/lib/snapd/desktop/application
  2. 复制 .desktop (vlc_vlc.desktop)
  3. 粘贴到桌面
  4. 右键单击并选择 允许午餐