如何创建新的应用程序图标?

如何创建新的应用程序图标?

我正在为一个应用程序创建一个 .deb 包(不用于公开分发),并且想要为该应用程序的任务栏、菜单、停靠栏等添加一个图标。我的应用程序.desktop文件有一行用于指定图标,例如:

Icon=preferences-desktop-keyboard

但是你实际上如何以及在何处创建新图标呢?

假设我想获取一个现有的图标,如中显示的 ImageMagick 图标/usr/share/applications/ImageMagick。该display.im6.desktop文件(当您尝试编辑时实际打开的文件/usr/share/applications/ImageMagick)包含以下行Icon=display.im6

好的,太棒了。既然没有完整路径,我该如何找到 的图形文件display.im6?它是什么格式?或者这些是动态文件,其中有一组不同大小的文件?

那么,我假设我可以在 GIMP 或 Inkscape 中编辑它/它们?

现在,我要将其导出为哪种格式,导出到哪里?我是否需要创建某种类型的元文件,以便我可以向应用程序启动器添加一行,Icon=myicon以便系统知道从哪里获取图标?

更新

locate display.im6显示大约 15 个条目。似乎有两个主题,以及许多不同的尺寸,其中包括一个称为可缩放的尺寸。我无法为用户可能拥有的每个主题创建一个图标,所以我想我需要在某个地方创建一个默认图标?或者我需要一组所有尺寸的图标?或者我是否可以只创建一个可缩放文件,然后它会自动识别?

更新 2

我曾经locate找到一个现有的 .svg 格式的图标,并在 inkscape 中编辑。我尝试将其添加到.desktop具有完整路径的文件中:

Icon=/opt/myapp/lib/myapp-51.0.2/icons/myapp.svg

现在该.desktop文件有这个图标,但是当你将.desktop启动器安装到/usr/share/applications/luancher 时,主菜单上会出现一个红色的“缺少图标”图标。

所以我仍然不确定如何创建具有不同文件格式和大小的指定图标堆栈以及这些文件的放置位置,以及如何将该集合附加到文件.desktop

答案1

  • 建议将图标安装到:

    /usr/share/pixmaps/

    或者:$XDG_DATA_DIRS/icons

    然后在文件中将其声明.desktop为(不带扩展名):

    Icon=filename
    
  • 仅当您有一个安装到文件夹的平面包时/opt,您才必须使用绝对路径:

    Icon=/opt/fullpath/filename.ext
    

顺便说一句,如果它不起作用,可能是您遇到了权限问题。图标应该所有人都能读懂。

参考: freedesktop.org——图标主题规范

答案2

最简单的方法是手动指定图像文件:

Icon=/usr/share/icons/MYPROGRAM/MYICON.png

相关内容