Common icon themes
Alexander Larsson
alexl at redhat.com
Tue Nov 19 08:47:24 GMT 2002
On Tue, 19 Nov 2002, Antonio Larrosa Jiménez wrote:
> El Jueves, 14 de Noviembre de 2002 15:38, Alexander Larsson escribió:
> > > About the proposals, I still think your proposal is not acceptable
> > > because on one hand, it breaks the icon theme concept (already
> > > explained) and also it puts double work on the artists and they (he)
> > > already told me they don't want to mantain two icon themes.
> >
> > It breaks the icon theme concept because you have to install crystalsvg
> > icons in hicolor? I don't think that is horrible price to pay, and in
> > fact I don't really agree that the concept is broken.
> >
>
> (read the following paragraph only if you have good humour :) )
>
> Think of it like this : You have men and women, and then you have toilets
> for men and toilets for women. If you put men into the toilet of women so
> that they can be found easier, then you break the concept of different
> toilets for men and women ;-)
The analogy doesn't work, because the hicolor theme is hidden, so nobody
will enter that toilet and by putting icons in hicolor they are also
effectively in crystalsvg, so people entering the womens toilet will find
women.
> > My hard requirements are:
> >
> > 1) For any icon name referenced in an application desktop file, Gnome
> > and KDE has to be able to get *some* icon, if one exists. It doesn't
> > matter exactly from what theme it is.
> >
>
> This is fulfilled (I hope it's said that way).
>
> > 2) In the namespace of icons that gets exposed to both KDE and Gnome
> > there are only application icons (and possibly later other kinds if we
> > manage to standardize more usages of icon themes).
> >
>
> Ok, we (as icon loader developers) should take care of only loading apps
> icons when following those symlinks (*).
I find this kind of change pretty ugly. I basically have to add a new
function for app icon lookup, which is realy non-orthogonal and makes our
APIs harder to understand. It also makes it harder for us to later share
more parts of the icon namespace. (Since application code need to be
changed.)
Magically handling symlinks also makes it harder for users to use symlinks
to manage their own systems. (Granted, with your proposal they are only
affected if the symlinks are named "default.*", which is better than
previous proposals.)
> First, to make it not a "only kde/gnome solution", my proposal uses
> default.<desktopname> symlinks to each desktop default icon theme. I've
> made KDE's icon loader follow all the default.* symlinks whenever an
> application tries to load an icon that doesn't exist to be used in the
> Desktop, Panel, or in general, in a .desktop file (that is, an apps icon).
> So when this happens, the icon loader adds the icon themes pointed by
> those symlinks to the list of icon themes.
>
> For now, we're following those icon themes for all the icon types, as it's
> too late to add so many changes to kdelibs. But I plan to make it only
> follow apps icons in the themes pointed by the default.* symlinks before
> KDE 3.2 (and gnome/rox/others should do that too).
>
> Btw, the default.* symlinks were handled as icon themes, so they should be
> removed from the list of icon themes shown to the user in the control
> center (as those icon themes are already shown when using the real
> directory name, instead of the symlink).
This is what I will do:
* Document the changes in the file format (add Hidden, remove multiple
inheritance).
* Say that when the inheritance chain ends (due to no Inherits line, or a
named theme that doesn't exist) implementations must insert "hicolor",
and are also free to add other themes.
* Change the references in the spec from the "default" theme to "hicolor",
and change the default theme tarball into a hicolor theme tarball
(icon-themes-base.tar.gz).
* Add a section to the standard about how application authors are
supposed to install icons (something in "hicolor" and optionally in
other named themes).
* Don't mention anything about symlinks in the spec.
This means any 3rd party app following this will work in both KDE and
Gnome, without any special-casing. Gnome apps will also follow this, so
they will just work from KDE. KDE apps not in CVS will apparently also
follow this, according to previous discussion, so they will work from
Gnome.
Then I will add some KDE-specific application icon loader APIs to the
Gnome icon loader, which follow the default.kde symlink. This API will
only be used by the panel and Nautilus, and only when the normal icon
lookup didn't work. This way, Gnome can read KDE CVS application icons.
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Alexander Larsson Red Hat, Inc
alexl at redhat.com alla at lysator.liu.se
He's a jaded hunchbacked photographer on the hunt for the last specimen of a
great and near-mythical creature. She's a psychotic hypochondriac cab driver
who inherited a spooky stately manor from her late maiden aunt. They fight
crime!
More information about the kde-core-devel
mailing list