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