Re: [kde-artists] Sorting the app icon mess

Nuno Pinheiro <[email protected]>
Newsgroups gmane.comp.kde.artists
Organization Oxygen
Message-ID <[email protected]>
On Thursday, 25 de February de 2010 13:22:38 Harald Sitter wrote:
> Salut!
> 
> I'd like to get the app icon mess sorted once and for all.
> 
> In case you do not know what I mean by "app icon mess" I'll first try to
> explain the situation, as precise as possible.
> Quite some time ago freedesktop.org published a specification for icon
> themes and how they get implemented in the individual desktop environments
> or UI libraries. [1]
> 
> Along the lines of this spec there is following to be found:
> > In order to have a place for third party applications to install their
> > icons there should always exist a theme called "hicolor" [1]. The data
> > for the hicolor theme is availible for download at:
> > http://www.freedesktop.org/standards/icon-theme-spec.html.
> > Implementations are required to look in the "hicolor" theme if an icon
> > was not found in the current theme.
> 
> As simple as this may sound, it implies one very important fact: apps
> should install their icons to the hicolor theme. But why is this?
> 
> Let's say we have an app called "foobar", foobar is built on KDE and very
> popular. foobar installs its app icon (foobar.png, as defined in foobar's
> desktop file) to /usr/share/icons/hicolor, the global freedesktop.org icon
> theme (as per specification the ultimate fallback to all implementations,
> be it on KDE, GNOME or XFCE).
> Oxygen (creators of KDE 4's default icon theme) feels that foobar needs
> another icon to fit in with their icon theme, so they provide another
> foobar.png, obviously installed to /usr/share/icons/oxygen.
> The user however does not like Oxygen and uses Tango.
> Since foobar is so popular, the Tango creators also decide to create a
> custom version of the icon that better fits in with their icon theme, this
> time installed to /usr/share/icons/tango.
> 
> Here comes the inheritance as defined by the spec into the game.
> 
> First KDE will look for the icon in Tango (since that is the user
> configured icon theme), then it will look in all themes that Tango defines
> as inherint ones, then it will look in Oxygen, and if it still cannot find
> the foobar icon, it will look in hicolor.
> 
> On a GNOME desktop it looks exactly the same, just that it wouldn't check
> in Oxygen.
> 
> The reason KDE is also looking in Oxygen and GNOME is not, is due to the
> 
> following part of the spec:
> > (implementations may add more default themes before "hicolor", but
> > "hicolor" must be last)
> 
> So, KDE's implementation adds oxygen as additional fallback, while GNOME
> does not.
> 
> This means two things:
> a) anything stored in oxygen will be found in KDE, despite the icon set
> configured by the user
> b) if an app does not install a fallback icon to hicolor and the GNOME icon
> theme does not provide one, the app will have no icon in GNOME, XFCE...!!!
> 
> Here you can see the mess.
> 
> Currently bovo, from kdegames is such a case. bovo does not install an app
> icon to hicolor but assumes the user is using KDE and thus gets the icon
> from Oxygen. Quite frankly said, this is no problem for any icon that is
> shown within the app, because those icons get loaded via KDE and thus
> above mentioned additional lookup in Oxygen applies. BUT in the menu
> implementations it will have no icon, because those are not looking in
> Oxygen but only the configured default + its fallbacks + hicolor. Which
> means bovo does not have an icon in the GNOME menu.
> 
> So that is why every app should install its icon to hicolor (or at least
> some hicolorified version of the icon, that can be used by other
> desktops). For a lot of KDE applications that is currently not the case
> because they rely on oxygen for that.
> 
> This is quite a problem in terms of cross desktop user experience, but
> cannot be solved easily. Since oxygen app icons are usually the default
> icons of KDE apps, they should technically install those to hicolor. BUT
> they do not maintain the icons themselves, but oxygen does, and oxygen
> prefers to keep them all in one place (for maintainability and everything,
> which is very sensible).
> 
> This leads to 3 cases:
> 1) $appmaintainer copied the icon from oyxgen to their source and installs
> it to hicolor (for example the case for yakuake)
> 2) $appmaintainer moved the icon from oxygen to their source and installs
> it to hicolor
> 3) $appmaintainer does not know or care, and their app does not have an
> icon in the menus of GNOME and XFCE
> 
> problems:
> 1) duplication (this means that the icon is installed twice), unmaintained
> (the oxygen team does only maintain the icons in the oxygen source, and
> thus the maintainer must ensure that the icons stay in sync)
> 2) no duplication but even more unmaintained as with 1), since there is not
> even the chance of syncing since the icon is out of the oxygen team's scope
> 3) no cross desktop user experience
> 
> Obviously we need some sensible solution to all this, which is not exactly
> trivial. We could either keep on doing 1) or 2) and possibly have outdated
> and ugly etc. icons on desktops other than KDE, or we find a way that
> ensures central maintenance from the oxygen team without too much hassle
> for them.
> 
> Since only the latter is an option here is what I would imagine to be a
> working approach to solving the problem:
> Split out specific application icons into a separate part of oxygen
> (oxygen- icons-apps or something) and install those icons not to the
> oxygen theme, but the hicolor theme.
> This would not even increase dependencies, since this part could still be
> deployed within the regular oxygen-icons source, and since kdebase-runtime
> depends on oxygen-icons anyway, and every KDE gui app depends on kdebase-
> runtime this consequently leads to the fact that every KDE gui app depends
> on oxygen-icons anyway, which means that shipping the icons as part of
> oxygen- icons is just as good as shipping them along the source of those
> applications, as long as they get installed to hicolor.
> 
> This could for example look like this in SVN:
> trunk/kdesupport/oxygen-icons/...
> trunk/kdesupport/oxygen-icons/app-icons/...
> trunk/kdesupport/oxygen-icons/app-icons/32x32/yakuake.png
> 
> Everything that is not in app-icons gets installed to
> $PREFIX/share/icons/oxygen, and the stuff in app-icons to
> $PREFIX/share/icons/hicolor.
> 
> Using this approach we have central maintenance and at the same time
> provide hicolor icons for all applications.
> 
> Opinions about this?
> 
> [1] http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-
> latest.html
> 
> regards,
> Harald
I really don't have an opinion on the subject other than .... i want to keep 
everything I maintain in one centralized place as far as icon goes, think of 
if as a big basket of icons you can use as you see fit. 
-- 
Oxygen coordinator  
______________________________________________________________________________
[email protected] |  https://mail.kde.org/mailman/listinfo/kde-artists
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.