Common icon themes

Havoc Pennington hp at redhat.com
Wed Nov 20 00:43:27 GMT 2002


On Wed, Nov 20, 2002 at 12:18:30AM +0100, Antonio Larrosa Jiménez wrote:
> El Martes, 19 de Noviembre de 2002 20:16, Havoc Pennington escribió:
> > I haven't followed the whole discussion, but this outcome seems pretty
> > Dumb (tm). Doesn't it bother anyone that KDE CVS apps work differently
> > from all other apps? How could that be a good idea?
> 
> I'll just give a technical answer instead of answering about the feeling I 
> get after reading your words.
> 

I appreciate your efforts in this area. I don't mean to offend, I'm
just trying to communicate clearly that the problems are not solved
yet. I want to be sure to communicate clearly and often. Right now
things are broken in a stop-ship way for a distribution that includes
two desktops with apps from one visible in the other.  That means we
have to do Red Hat specific hacks and fixes.

Now, we can do those fixes. I'm not going to demand that KDE make life
easy for us or do our work. Our job is to do this kind of integration
work.

But I do beg that people *not complain* if I do the fixes or Alex
does, because I'm trying to make it clear in advance that on the
upstream level, the problems are not yet solved. Really our job
requires us to fix this sort of thing, and you put us in an impossible
position if it isn't working out of the box and then people are angry
if we change it.
 
Again, I really appreciate the help on this, but just don't want to
give the impression that the problem is solved. I could just be quiet
about this, which would be less controversial, but I think it's more
fair to you to let you know what problems we are going to encounter
and have to address.

> An icon theme is a set of icons with a common look. Each desktop has a set 
> of icons with the desktop look, that set of icons should constitute an 
> icon theme. 

An icon theme is a cross-desktop concept right now. People can (and
are) making themes that cover the icons for both desktops.

My opinion is that everything would work a lot better if all apps
worked the same way. Having KDE, GNOME, etc. apps work differently
just opens the door to all kinds of bugs and special cases.

The point is:

 - you have an algorithm and set of places you look to find an icon
   for an app.

 - given the same "current icon theme" setting and icon name, GNOME
   and KDE should *always* find exactly the same icon.

 - all apps should have *some icon* regardless of icon theme.

> So KDE should install one icon theme, GNOME should install 
> another icon theme, ROX should install another one, and so on.

I would do it this way:

 - all apps install *some icon* (which need not follow any special
   style, maybe it should try to be "neutral") to the default theme.
   This ensures that regardless of current theme, an app will have an
   icon. The skeleton of this default theme comes in Alex's
   non-desktop-specific tarball package.

 - desktops can ship any number of icon themes, which may happen to
   cover all the apps in that desktop, and may also happen to include
   apps in other desktops. For example, KDE may ship the "Keramik"
   icon theme. GNOME already includes a set of accessibility themes
   such as high contrast, low contrast (and it would be good if KDE
   could use those).

 - third parties such as themes.org-type sites can ship any number of
   icon themes, which may happen to cover the icons for any number of
   apps or desktops.
 
> You'll then note the problem that in this case, a desktop cannot find icons 
> used by other desktops because they're installed to the icon theme in use 
> by the installed desktop release (crystalsvg for KDE 3.1), which may 
> change in different releases. To fix this, KDE is using a symlink 
> approach, that specifies which icon theme it's using. This way, we have a 
> default.kde symlink which points to the default icon theme of KDE, gnome 
> should install a symlink called default.gnome pointing to the icon theme 
> that contains the default gnome look, rox should install a default.rox 
> symlink, and so on.
> Just following those links for the appropiate apps makes each desktop find 
> the default look of each other desktop.

Why not just say:
 - there is a single systemwide cross-desktop default fallback icon
   location
 - there are any number of extra icon themes
 - both desktops default to (and are shipped with) some extra icon theme
 
> 1) Think of the situation where a desktop (e.g. KDE or GNOME) installs all 
> its icons to hicolor:
> 
> You get (for example) a filesystems/folder.png icon and a 
> mimetypes/html.png icon that would conflict with the icons from other 
> desktops (KDE and GNOME both wanting to install their icons there).

This is why we need either name coordination/registry, or
namespacing. That's been discussed in the past.  It's a pretty
solvable problem; if you want GNOME to put "gnome-" in front of every
.png file, I'm pretty sure we can do that. We can also fix these kinds
of conflicts on the distribution level, and people installing from
tarballs will just get whichever icon they installed second, which is
fine.

> Now he adds an icon to access quickly one of 
> his directories, so he chooses to use the devices/pda_blue.png icon under 
> KDE. How will gnome find that icon if it's not an app icon? (supposing 
> gnome doesn't install a pda_blue icon).

I think we need to find a way to also share those device icons.  I
wan't aware we hadn't solved it yet. What is keeping us from solving
it?
 
If we can't solve that at first, then we may have to solve it
later. But I think we should assume it will get solved eventually.

> If we could reach a consensus on the default look of icons in gnome and 
> kde, that would be great. 

But do we need that, as long as the icon filenames are unique?  You
can have icons with different looks in the default theme.  Remember
that the default icon theme is only a fallback; in principle all icon
themes will cover all the important apps. But we need the fallback
there, even though it will be sort of a haphazard and
poorly-coordinated theme.


Some of my thoughts again:

 - it seems wrong if there's code in any desktop that special-cases
   another specific desktop; the spec and icon lookup algorithm should
   be independent of which desktops exist.

 - it's important to have icon themes, such as the low/high contrast
   accessibility themes, keramik, bluecurve, etc. that span both
   desktops. This benefits everyone. Icon themes aren't trivial to
   create.

 - it's very much technically cleaner if all apps work the same way, 
   instead of having some apps be special.

 - whatever we do it definitely needs to be documented in the icon
   theme spec, so anyone can implement it, and then we need to all
   follow the spec.
 
 - I would consider it a bug if for the same current icon theme and
   the same icon name, two implementations come up with a different
   icon.

Does anyone disagree with these points?

I appreciate all the time being spent on this issue. Let's do a nice,
clean, technically correct solution that works well for users, so
users can freely change their desktop(s) between Keramik, Bluecurve,
GNOME Classic, Low Contrast, High Contrast, and whatever else makes
them happy, while keeping some icon for each app in all cases.

Think of the big picture!

Havoc




More information about the kde-core-devel mailing list