Common icon themes

Antonio Larrosa Jiménez larrosa at kde.org
Tue Nov 19 23:18:30 GMT 2002


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.

Every desktop should do the same than KDE does and install its icons in the 
icon theme it uses, not in hicolor, so that it doesn't mess with the other 
desktops' icons.

First on the _why_ KDE does it that way and why everyone should:

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. So KDE should install one icon theme, GNOME should install 
another icon theme, ROX should install another one, and so on.
The hicolor icon theme is there for application developers who don't belong 
to a specific desktop (what I call a "3rd party developer", hope it's the 
correct name as I'm not a native speaker). So hicolor should be an icon 
theme which is desktop-neutral, look-neutral, vendor-neutral. Installing 
an icon to hicolor is a way to make the icon be found without caring of 
the GNOME/KDE/ROX release, default icon theme of each desktop, or icon 
theme set by the user in the respective control center. I hope it's clear 
why only people whose applications are really independent of a specific 
desktop release should install their icons there.

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.

Now on the _why_not_ using hicolor for everything:

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).

So this is not possible.

2) Another situation is when a desktop installs just the apps icons to 
hicolor (as Alexander proposed):
Leaving aside the problems I already said with this (duplicated icons or 
some icon themes splitted over different icon theme directories, which is 
non-logical IMNSHO), I saw a new problem with this (and an important one 
if we want to cooperate). Suppose an user shares the directory where he 
stores his background desktop files between KDE and GNOME (imho, we should 
work on making that possible so that if someone wants to use GNOME and 
then KDE and then GNOME again he gets the same desktop icons in the 
background of his screen). 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 mean, for the panel menus, it's 
clear that the icons will be stored in the apps directory, but what about 
devices/filesystems/mimetypes icons that could be used in the desktop 
(background) ? Those won't be found, so this solution fails one of 
Alexander requirements.
Of course, if we install all our icons (apps, filesystem, mime, etc.) to 
hicolor, we're back to situation number 1, which we already said wasn't 
desired.

3) The solution is that desktops don't install any icon to hicolor and 
install a complete icon theme to the icon theme directory that best fits 
the look of the desktop (e.g. crystalsvg for KDE), and make everyone 
outside of any desktop install to hicolor so that their icons are found 
even if every desktop changes its default icon theme.


> It would seem to me that we must have a standard default theme where
> all apps are guaranteed to install some icon, and then all other
> themes are optional and contain overrides for that standard default
> theme.

If we could reach a consensus on the default look of icons in gnome and 
kde, that would be great. But in real life I'd say that's impossible, so 
we have different default icon themes for each desktop, and a 
desktop/vendor/look-neutral "icon theme" called hicolor (Note that I've 
put "icon theme" between quotes because it's not a real icon theme, 
as it doesn't include icons as basic and fundamental as html or txt mime 
icons, folder filesystem icons, etc. and its icons don't have a common 
look, which is a requirement for something to be called icon theme).

Greetings,

--
Antonio Larrosa Jimenez
KDE core developer - larrosa at kde.org
http://devel-home.kde.org/~larrosa/
They that can give up essential liberty to obtain a little temporary safety 
deserve neither liberty nor safety -- B.Franklin






More information about the kde-core-devel mailing list