Add icons for application-vnd.appimage/x-iso9660-appimage
ClosedPublic

Authored by kossebau on Wed, Nov 21, 8:59 PM.

Details

Summary

Done based on the shape of the official AppImage logo, basing on SVG code of
the original icon for correct proportions, otherwise rewritten manually &
what inkscape does on the code.

The icons use a square background, like wanted for archives, packages,
compressed files, and disk images by the KDE HIG*, which also matches that
the appimage thumbnailer rom kio-extras will create a square preview, and
that other representations of applications are also square.

Test Plan

Dolphin picks up the icons for appimage files.

Diff Detail

Repository
R266 Breeze Icons
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.
kossebau created this revision.Wed, Nov 21, 8:59 PM
Restricted Application added a project: Frameworks. · View Herald TranscriptWed, Nov 21, 8:59 PM
Restricted Application added a subscriber: kde-frameworks-devel. · View Herald Transcript
kossebau requested review of this revision.Wed, Nov 21, 8:59 PM

Open questions:

  • how to support the dark icon set?
  • what would be better colors?

Example of icon use with 64 & 16 pixel size, and bigger in preview:

The icon also fixes a small offset issue in the original logo :) cmp. the one on https://appimage.org/

ngraham requested changes to this revision.Wed, Nov 21, 10:18 PM
ngraham added a subscriber: ngraham.

Thanks for the icon! I'd recommend mimicking the style of the other package icons that have a symbol:

In other words, add a zipper towards the right-side,, put the AppImage symbol in the bottom-left corner, and make the small version just be a line-art version of the AppImage logo.

This revision now requires changes to proceed.Wed, Nov 21, 10:18 PM

Thanks for the icon! I'd recommend mimicking the style of the other package icons that have a symbol:

In other words, add a zipper towards the right-side,, put the AppImage symbol in the bottom-left corner, and make the small version just be a line-art version of the AppImage logo.

I considered that. But decided in the initial proposal against, with this reasoning:
AppImage files are different to distribution packages, they will not be unpackaged or untarred in any way to be deployed into the system, at least to what the user will experience. But will be used as is. Same like a ODT file is actually a ZIP file, but the nature of being something tarred and composed from lots of different "files" is not exposed to the user.
So the semantics of a zipper would not really match that much, unless one looks at it from a pure file creation POV.

I rather think the zipper might misguide people into thinking AppImages are the same category as debs, rpms & Co.

With that in mind, what do you think?

That reasoning makes sense. Currently AppImages get the generic application-x-executable which isn't great:

The document motif isn't really accurate here, but it's also used by other executables such as Java apps:

We have two options here:

  1. Follow the style and make the AppImage icon look like a document with a folded-over corner that has an the AppImage logo in the middle
  2. Engage VDG and Come up a new icon style for executables, and then make the AppImage icon in that new style

Either way, I think we're going to do #2 and define a new style for executable apps: https://bugs.kde.org/show_bug.cgi?id=401299. Feel free to do #1 for now if you'd rather not wait for the outcome of that. Or wait if you'd like, which is fine too!

AppImages are, after all, only ELF executables. They're not archives. Using a zipper implies this, though. I really like the initial version that mimics the "normal executable" icon better. The dark blue is quite nice, but I thought perhaps a color from the official AppImage logo might fit better.

A few alternative background colors, taken from the official AppImage logo:

  • 97b8ca (inner background, top, near center)
  • 5389a9 (inner background, bottom left)
  • 75a1ba (inner background, ~ vertical center)

The logo could by the way also be used for the type 1 MIME type, application/x-iso9660-appimage and application/x-appimage IIRC.
You might also add a 1 somewhere in there to indicate the type, but as both are still relevant and should mostly work equally, that's not really necessary.

kossebau updated this revision to Diff 46229.Mon, Nov 26, 12:34 AM
  • use document-style icon shape, to match other existing icons for executables
  • use Breeze palette color that is more close to AppImage logo one

The new logos look great!

We have two options here:

  1. Follow the style and make the AppImage icon look like a document with a folded-over corner that has an the AppImage logo in the middle
  2. Engage VDG and Come up a new icon style for executables, and then make the AppImage icon in that new style

    [...] Feel free to do #1 for now.

Sadly no time currently to engage in such discussion, so quickly did #1 to have something for now.

The dark blue is quite nice, but I thought perhaps a color from the official AppImage logo might fit better.

I guess one should stick to the Breeze color palette for the icons, for consistent look. Other logos are also matched to closes Breeze palette color from what I quickly looked at, But exactly sure.

The logo could by the way also be used for the type 1 MIME type, application/x-iso9660-appimage and application/x-appimage IIRC.
You might also add a 1 somewhere in there to indicate the type, but as both are still relevant and should mostly work equally, that's not really necessary.

No clue yet about the "application/x-iso9660-appimage" MIME type, what is the difference?
"application/x-appimage" is an outdated alias to "application/vnd.appimage", no? So that should be resolved by the alias logic of shared-mime-info at the core, no need for explicit own icon entry,

AFAIK vnd.appimage resolves to type 2, whereas x-[iso9660-]appimage resolves to type 1. At least that's the MIME data I've been working with all the time so far.

for an updated example usage.

@ngraham How do you create those summary pictures you used above for the comparison previews?

The new logos look great!

Happy to learn you like them :)

AFAIK vnd.appimage resolves to type 2, whereas x-[iso9660-]appimage resolves to type 1. At least that's the MIME data I've been working with all the time so far.

Ah, so alias with the other then, okay. For a start I guess that giving "application/x-iso9660-appimage" the same icon might work (using the icon shared linking system), not sure if there needs to be any indication in the icon itself about the type, also no idea how to mark type 1 and how type 2.

Quoting myself:

You might also add a 1 somewhere in there to indicate the type, but as both are still relevant and should mostly work equally, that's not really necessary.

I think more and more that there shouldn't be different icons. The user shouldn't have to worry about the actual type.

Thanks, that looks great! As for the background color, I'd say it's okay to use a different shade of blue if it would better match the AppImage branding.

Don't worry about participating in the style change discussion; if that ever bears any fruit, we'll change this icon as a part of it.

The images I posted came from the Cuttlefish app:

kossebau updated this revision to Diff 46231.Mon, Nov 26, 12:58 AM
  • add symlinks for application-x-iso9660-appimage to application-vnd.appimage
kossebau retitled this revision from Add icons for application-vnd.appimage to Add icons for application-vnd.appimage/x-iso9660-appimage.Mon, Nov 26, 12:59 AM

Thanks, that looks great! As for the background color, I'd say it's okay to use a different shade of blue if it would better match the AppImage branding.

For now I favor breeze palette usage, given the same IIRC is also done elsewhere with brand logo usage in Breeze icons.

Don't worry about participating in the style change discussion; if that ever bears any fruit, we'll change this icon as a part of it.

Happy to have SVG editing skilled people take over, Inkscape is really in my way here :)

The images I posted came from the Cuttlefish app:

Ha, I noticed the very same time it be just screenshots snippets from cuttlefish when I looked at it during task-related usage :) Thanks for sharing the how.
Might be a nice feature addition to have cuttlefish create such summary renderings as pixmaps itself to copy here & elsewhere, without the need to go via screenshot tool? Noted for fun hacks times...

Looks great to me then!

But how do I make this work? I compiled and installed the icon and verified that it's installed in the right place. But my AppImage isn't getting the new icon, not even after running update-desktop-database.

What am I doing wrong here?

Looks great to me then!

But how do I make this work? I compiled and installed the icon and verified that it's installed in the right place. But my AppImage isn't getting the new icon, not even after running update-desktop-database.

What am I doing wrong here?

There might be the chance that the icon cache is not updated autpmagically after the icon installation. Try removing .cache/icon-cache.kcache before running a new instance of dolphin. Not sure if some index counter needs to be changed as welll for new icons, could not find some related change on new icon commits.

ngraham accepted this revision.Tue, Nov 27, 3:44 AM

Yep, that was it. Looks beautiful. Ship it!

This revision is now accepted and ready to land.Tue, Nov 27, 3:44 AM
TheAssassin accepted this revision.Tue, Nov 27, 9:34 AM

Thanks for feedback/review :)

This revision was automatically updated to reflect the committed changes.

Thanks for the nice new icon!

Yep, it's really nice, thanks @kossebau!

probono added a subscriber: probono.Thu, Dec 6, 7:05 PM

Thank you @kossebau, really nice to see this.