Re: [PATCH v3] wmaker: Consistent configuration options.

Doug Torrance <[email protected]> Wed, 22 Mar 2017 07:58:03 -0400
Newsgroups gmane.compw.window-managers.windowmaker.devel
Message-ID <[email protected]>
On 03/22/2017 06:52 AM, Doug Torrance wrote:
> On 03/22/2017 06:44 AM, BALATON Zoltan wrote:
>> On Wed, 22 Mar 2017, Doug Torrance wrote:
>>> Some of the paths in IconPath and PixmapPath have been removed.  In
>>> particular, the various system pixmap paths (/usr/include/X11/pixmaps,
>>> /usr/share/pixmaps, and /usr/local/share/pixmaps) have been removed in
>>> favor of PIXMAPDIR, which is specified by the user at build.  Also,
>>> /usr/share/icons has been removed from IconPath.  The root of this
>>> directory will contain very few icons, as the icons themselves are
>>> located
>>> in subdirectories corresponding to XDG icon themes.
>>
>> I don't think this is a good idea because then it's not possible to
>> specify icon paths at runtime. Compile time option is less flexible and
>> only allows to set one value so I think these options should be kept.
>> (Otherwise some users will see missing icons after upgrade as well.)
>
> It's definitely possible to change the icon paths at runtime -- edit
> IconPath in ~/GNUstep/Defaults/WindowMaker or use the Search Path
> Configuration panel in WPrefs.

I suppose I also could have explained my reasoning a bit better.

In the old src/defaults.c, the non-Window Maker system pixmap paths are 
indicated by the PIXMAPDIR macro only, and also /usr/include/X11/pixmaps 
for IconPath.  From the patch:

>  #define DEF_PIXMAP_PATHS \
> - "(\"~/pixmaps\",\"~/GNUstep/Library/WindowMaker/Pixmaps\",\""PIXMAPDIR"\")"


>  #define DEF_ICON_PATHS \
> -    "(\"~/pixmaps\",\"~/GNUstep/Library/Icons\",\"/usr/include/X11/pixmaps/\",\""PIXMAPDIR"\")"

In the old W/D/WindowMaker, there appear to be several guesses as to 
what PIXMAPDIR might be, without actually using its value at all.  From 
the patch:

> -  IconPath = (
> -    "~/GNUstep/Library/Icons",
> -    "#pkgdatadir#/Icons",
> -    "#pkgdatadir#/Pixmaps",
> -    "/usr/include/X11/pixmaps",
> -    "~/GNUstep/Library/WindowMaker/Pixmaps",
> -    "~/GNUstep/Library/WindowMaker/CachedPixmaps",
> -    "/usr/share/icons",
> -    "/usr/local/share/pixmaps",
> -    "/usr/share/pixmaps"
> -  );
> -  PixmapPath = (
> -    "~/GNUstep/Library/WindowMaker/Pixmaps",
> -    "~/GNUstep/Library/WindowMaker/Backgrounds",
> -    "~/GNUstep/Library/WindowMaker/CachedPixmaps",
> -    "#pkgdatadir#/Pixmaps",
> -    "#pkgdatadir#/Backgrounds",
> -    "/usr/include/X11/pixmaps",
> -    "/usr/local/share/pixmaps",
> -    "/usr/share/pixmaps"
> -  );

So the user would have specified PIXMAPDIR at configure, this value gets 
compiled in, but then the paths get overwritten when W/D/WindowMaker is 
read and PIXMAPDIR is ignored.

Most users probably never noticed this, as the default is 
${datadir}/pixmaps, which is likely /usr/share/pixmaps or 
/usr/local/share/pixmaps, both of which were in W/D/WindowMaker.

As for /usr/include/X11/pixmaps, this seems to be a pretty archaic 
location.  In all of Debian, only one package still uses it (ctwm).

Doug


-- 
To unsubscribe, send mail to [email protected].