Multiple DeskTops, HiColor theme, standardized icon names, & menu icons

James Richard Tyrer tyrerj at acm.org
Sat Jun 24 21:18:01 EEST 2006


Bastian, Waldo wrote:
> I am picky about the difference between 
> $KDE_PREFIX/share/apps/<app_name>/icons/<theme>/<size>/<type> And 
> $XDG_DATA_DIRS/apps/<app_name>/icons/<theme>/<size>/<type>
> 
> Because the latter should only be used if there is a specification 
> that describes its use. And yes, I agree that this is something that
>  _could_ be added to a specification although I am not convinced that
>  it really matters where an application installs its private icons as
>  long as it knows where to look for them.

It is there where SMcC's example points out that this is an important
issue.  In KDE, private icons can be themed since the application
doesn't need to know where to look for private icons as long as they are
installed in:

	$KDEDIR/share/apps/<app_name>/icons/<theme>/<size>/<type>

{KDEDIR being either path in the environment variable of that name or
any one of the paths listed in KDEDIRS}.

because the KDE icon loader will automatically find them there.
However, from what he said, GNOME does not work that way -- that GNOME
apps must be told where to look for private icons.

> And I don't think it makes sense to require that a $XDG_DATA_DIRS 
> location is used for private icons.

And the reason that this not only makes sense but is needed is so, as he
points out, that private icons can be themed.

> Especially since the install prefix of an application (e.g. 
> /opt/picasa) may not always be part of $XDG_DATA_DIRS in which case 
> one would have to go through some trouble to copy/link such files 
> around. (Like we need to do for .desktop files, mimetype icons and 
> application icons)

This is clearly an issue that would need to be addressed.  I never liked 
stuff installing in "/opt" because it is different.

Stuff that installs as: /usr/local/<app_name> (e.g. Firefox) starts with 
a shell that sets LD_LIBRARY_PATH so such apps could also set 
XDG_DATA_DIRS as well.  OpenOffice installs in "/opt" and it also uses a 
shell to start so this isn't a problem -- just add it to the script.

However if an app installs in "/opt/<app_name> and doesn't use a script 
to start, it is going to need to set some environment variables.  In 
Linux, setting such environment variables is usually done by adding a 
script to: "/etc/profile.d".

IAC, XDG_DATA_DIRS will usually be just another environment variable 
that needs to be set for the app to run.

OTOH, rather than setting the environment variable, it might be possible 
  for the app to report its XDG_DATA_DIR to the icon loader.  SMcC said 
that he was telling GTK+ about his DATADIR subdirectory, wouldn't it be 
better to have a standard way to do this so that the icons this pointed 
to would be themeable?

> I agree that it could be a good idea for GNOME/GTK to look for 
> application private icons in
> ${install_prefix}/apps/<app_name>/icons/<theme>/<size>/<type> in a 
> way that is similar to KDE.

I think that that would be:

${install_prefix}/share/apps/<app_name>/icons/<theme>/<size>/<type>

at least that is how it is in KDE.

This would clearly solve his issue with wanting to theme his apps 
private icons.  The only issue is how to see that all the 
"install_prefix/share"s are listed in XDG_DATA_DIRS or are otherwise 
made known to the icon loader.

-- 
JRT



More information about the xdg mailing list