Subject: bug#18698: Our WindowMaker wrapper pollutes PATH in the entire X session

From: [email-masked] (Ludovic Courtès)
Date: Thu, 12 Feb 2015 21:15:06 +0100

宋文武 <[email-masked]> skribis:

> Ricardo Wurmus <[email-masked]> writes:
>
>> The fix may have resulted in unintended side-effects.  On a fresh
>> installation of the System Distribution v0.8.1 WindowMaker is installed
>> by default, but it is not completely functional.
>>
>> For example, the attempt to change the style via the menu results in
>> this error to be displayed:
>>
>>     Could not execute command:
>>         setstyle /gnu/store/...windowmaker.../share/WindowMaker/Styles/Black.style
>>
>> Likewise, selecting "Configure Window Maker" from the right-click menu
>> results in this error:
>>
>>     Could not execute command: exec WPrefs
>>
>> The "setstyle" executable is located in
>> /gnu/store/...windowmaker.../bin/, but is not in the PATH.
> Yes, the $out/bin of windowmaker is not in $PATH, and same for sawfish.
>
> Instead of wrapping every executable of session-type, we can:
>
> #1: Add the package to system profile ('packages').
>   It's not clear to me how to do it now, until we have something
>   like the NixOS's module system.

What I have in mind is to add a ‘packages’ field in ‘service’.  That
would allow service implementations to contribute packages to the global
profile.  Thoughts?

> #2: Make SLiM use '/run/current-system/profile/share/xsessions' as
>     session_dir.
>   So simply add a package providing xsession file to 'packages' should
>   make it available to SLiM.  And all DE and many window-managers provide
>   xsession files already (eg: openbox, sawfish, xfce), we can patch
>   the rest (eg: WindowMaker) to install one.

IIUC the bug initially reported here would remain: the user’s $PATH
would be polluted with the window manager’s stuff, no?

Thanks,
Ludo’.