How do I create a new application icon?
-
It is recommended to install the icon into:
/usr/share/pixmaps/
or:
$XDG_DATA_DIRS/icons
Then declare it in the
.desktop
file as (without extension):Icon=filename
-
Only if you have a flat package that installed to
/opt
folder, then you have to use the absolute path:Icon=/opt/fullpath/filename.ext
BTW, If it didn't work, possibly you have a permission issue. Icons should be readable by all.
Reference: freedesktop.org - Icon Theme Specification
Related videos on Youtube
Nick
Updated on September 18, 2022Comments
-
Nick over 1 year
I'm creating a .deb package for an application (not for public distribution) and want to have an icon for the application for the taskbar, menu, dock, etc. My application's
.desktop
file has a line to specify icons, like:Icon=preferences-desktop-keyboard
But how and where do you actually create a new icon?
Let's say I wanted to take an existing icon like the ImageMagick icon shown in
/usr/share/applications/ImageMagick
. Thedisplay.im6.desktop
file (which is what actually opens when you try to edit/usr/share/applications/ImageMagick
) has the lineIcon=display.im6
.Ok, great. Since there's no full path, how do I find the graphics file for
display.im6
? What format is it in? Or are these dynamic files where there's a set of them for different sizes?Then, I assume I can edit it/them in either GIMP or Inkscape?
Now, what format do I export it as, and to where? And do I need to create some type of meta file so that I can add a line to my application's launcher that reads
Icon=myicon
and the system will know where to get the icon from?Update
locate display.im6
shows about 15 entries. There seems to be two themes, and a bunch of different sizes including one called scalable. I can't create an icon for each theme the user might have, so I guess I need to create a default icon somewhere? Or do I need a set of them in all the sizes? Or can I just create a scalable file and it will figure it out?Update 2
I used
locate
to find an existing icon in .svg format and edited in inkscape. I tried adding it to the.desktop
file with the full path:Icon=/opt/myapp/lib/myapp-51.0.2/icons/myapp.svg
And the
.desktop
file has this icon now, but when you install the.desktop
launcher into/usr/share/applications/
the luancher on the main menu has a red "missing icon" icon.so I'm still not sure how you create a specify an icon stack with the different file formats and sizes and where those files get placed, and how you attach the set to the
.desktop
file.-
Chai T. Rex about 7 yearsRun
sudo updatedb
, then runlocate display.im6
. It'll probably be somewhere in/usr/share/icons
. As far as creating your own, I don't know the specifics, but it looks like at the very least both SVG and PNG files are used.
-
-
Nick about 7 yearsThis doesn't account for the various sizes though, and specifying an svg file in the
Icon
property results in a missing icon on the applications menu.