On Fri, Apr 22, 2011 at 9:30 PM, Tormod Volden <debian.tor...@gmail.com> wrote:
> Mark Eichin wrote:
>> There are two issues here:
>>  (1) according to apt-file search, gdmflexiserver is *only* provided
>>      by gdm, not xdm (which I do happen to be running) nor kdm.  (kdm
>>      might provide something *like* it, but xscreensaver is hard
>>      coded to have
>>         *newLoginCommand: gdmflexiserver -l -a -c FLEXI_XSERVER
>>      in the binary, so it wouldn't help if it did...)
>>  (2) per debian policy, 7.2 "binary dependencies", xscreensaver needs
>>      at *least* a "Suggests: gdm" to describe the above dependency...
>>
>> While it would be *better* to see the button go away if it can't
>> possibly work, I think you at least need to correct the packaging to
>> reflect the above.
>
> Re 1) for kdm, the kdm-gdmcompat package provides a gdmflexiserver wrapper.
> Re 2) I have added Suggests: gdm | kdm-gdmcompat
>
> To address the original issue of removing the button when the session
> has not been started by gdm or kdm or there is no gdmflexiserver, I
> can suggest making a little wrapper that checks for this and sets the
> newLoginCommand property accordingly before launching the
> xscreensaver-daemon. For this I would like to know exactly how the
> xscreensaver-daemon is started in a XFCE session. Can somebody help me
> with this?
>
> Also, in sessions started by gdm the GDMSESSION environment variable
> is defined. Is there something similar for sessions started by kdm? Or
> xdm?
>
> Tormod
>

I realize that I have been thinking totally backwards in trying to
solve this. Instead of xscreensaver trying to second guess how it has
been started and in which environment and figure out which commands it
should run, those session managers etc that launch xscreensaver should
rather tell xscreensaver if they provide a newLoginCommand in their
environment and what command that should be.

I haven't got any answer to my request above about how XFCE starts
xscreensaver, but I have checked how it is on LXDE. There the
lxde-common or lubuntu-default-settings packages provide autostart
files which have hardcoded the invocation of "xscreensaver
-no-splash". They could instead call their own little wrappers that
set the newLoginCommand resource.

XFCE and LXDE, which do not have any New Login possibility, could
simply set the resource to null. A shell script can do this with:
echo "XScreenSaver.newLoginCommand: " | xrdb -merge

(I don't think xscreensaver has any other, more elegant way to be
handed X resources. Some X applications have for instance a -xrm
option to be handed resources directly.)

However, the correct thing to do for xscreensaver in the future would
be to default to an empty newLoginCommand resource so that XFCE and
LXDE do not need to reset it. Those environments that offer New Login
(KDE, Gnome) should themselves set it to gdmflexiserver or whatever.
Well, Gnome has its own screensaver daemon so they will not care, so
it will be up to the users installing xscreensaver there to set the
newLoginCommand resource when they start xscreensaver.

But before we do this change in xscreensaver, we must ensure KDE etc
have been fixed first.



--
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to