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