[AppStream] Rethink how we handle the icon cache in AppStream

Matthias Klumpp matthias at tenstral.net
Thu Oct 6 19:53:58 UTC 2016


Hi!

This post is to start a discussion about how to make the AppStream
icon cache as described in [1] more useful for people.

The cache is mainly used by Linux distributions at time, to have icons
available off-line and quickly.
At time we ship 64x64px icons in there, which must be present, as well
as optionally 128x128px icons for HiDPI displays.

Multiple issues have been raised over time, and it would be useful to
address them:

1) Graphics people told me that downscaling 64x64px icons to e.g.
48x48px yields worse results than downscaling 128x128px to 64x64px -
so, should we ship bigger icons by default and drop 64x64?

2) Many software centers want huge icons (KDE Discover, Elementary
AppCenter), and if only the 64x64px icons are available, the
experience isn't great. Again, should we waste more bandwith and
diskspace and ship bigger icons by default?

3) Many people want SVG icons in AppStream too, which would solve the
file-size problem, but SVGs render very slowly (Richard says up to 50x
slower than PNGs). We need to render possibly hundreds of icons in
AppStream GUI frontends, so if it really is that slow we should not do
it.
I would like to be convinced that SVGs are a good idea and render
quickly enough before cosnidering to allow them.

4) Issue https://github.com/ximion/appstream/issues/21 exists to
properly provide different DPI for icons, instead of just declaring
128x128px to be "HiDPI". I am very positive towards doing so, but this
would mean shipping even more icons, and on Debian the icon tarball is
for 128x128px icons is already above 12MB and has to be downloaded in
full on every update when an icon has changed, making this a real
issue.

5) Some people also wanted low-contrast icons for a11y reasons. This
has the same problems as outlined in 4) plus the additional complexity
of essentially being a different "theme" for the AppStream cache
icons. I don't eally like the added complixity especially since there
are only few apps shipping low-res icons, and I think utilizing the
stock-icon property in AppStream to override the icons with icons from
a theme at the client side would likely make a good compromise.

Those issues are quite though, and I would like to hear feedback on
these icon matter :-)

Cheers,
    Matthias

[1]: https://www.freedesktop.org/software/appstream/docs/sect-AppStream-IconCache.html

-- 
Debian Developer | Freedesktop-Developer
I welcome VSRE emails. See http://vsre.info/


More information about the AppStream mailing list