Re: gnome-screensaver, new api calls requested :-)
- From: Richard Hughes <hughsient gmail com>
- To: William Jon McCann <mccann jhu edu>
- Cc: screensaver-list gnome org
- Subject: Re: gnome-screensaver, new api calls requested :-)
- Date: Tue, 15 Nov 2005 19:28:58 +0000
On Tue, 2005-11-15 at 14:11 -0500, William Jon McCann wrote:
> Hi Richard,
>
> I'm going to take this onto the screensaver list.
>
> Richard Hughes wrote:
> > I come with a request for more new stuff :-)
> >
> > Some laptops turn off the lcd backlight automatically when you close the
> > lid, and I think about 90% of laptops fall into this category.
> >
> > The other 10% need some DPMS magic. I've been told the usual way of
> > doing this would be to use "xset dpms force off" when the lid is shut,
> > and "xset dpms force on" when the lid is opened.
> >
> > Knowing you have full control of DPMS in g-s, I was wondering if you
> > could implement one or two more API calls (sorry!) something like:
> > setDPMSPower (bool state) so instead of calling xset (which is a bit
> > hackish) I could just use a simple DBUS method to do the state change.
>
> Ah, but *should* we have full control of DPMS in g-s? I'm not sure.
Just for the user-closes-laptop-lid use case I would say yes.
> Let's look at what we do right now in gnome-screensaver.
>
> All of the power management stuff is contained in the GSPower class.
> This is basically a singleton that is used only within the GSMonitor
> class. The API for the GSPower class is very simple:
<snip>
> Or at least that is how it is supposed to work. :)
Cheers for the explanation.
>
> Does any of that really need to be in gnome-screensaver? Let's see.
>
> 1. The UI for power management policy is part of gnome-power-manager.
> So, it probably makes sense to move these GConf keys to it as well.
The enable dpms one? I must admit, as part of the g-p-m "first boot"
I've got it to unconditionally enable the dpms value in g-s gconf so
that power saving for monitors works by default.
> 2. When the screensaver activates a signal is sent over the session bus.
> This signal could be handled by any program that listens for it. This
> is inherently a racy thing. However, the action in response to the
> signal is to set timers that in most sane cases would not act immediately.
>
> 3. Forcing the screen to be on isn't necessarily a control issue. If
> control of the DPMS moved to another application that application could
> provide an interface for changing the state.
>
> 4. Monitoring the state doesn't require control. If another application
> controlled the state then either the state could still be polled as it
> is now or the other application could emit a signal when the state
> changes. Again, this could be racy. However, we only use this for
> turning themes off when the screen isn't completely on. We don't
> support turning the themes back on when the screen comes back on [1].
Yes, this is a good thing.
> It seems to me that we aren't doing anything in gnome-screensaver that
> we couldn't do anywhere else. The reason that the screensaver controls
> power management is mostly historical - there wasn't a better place for
> it at the time.
Gotcha. I think people are used to it being part of the screensaver, but
thinking about it, I do see your point.
I think g-s is more ready for inclusion into core gnome, and I think
putting the dpms stuff into g-p-m would make an implicit dep for g-s on
g-p-m. My view at the moment is that it should stay in g-s.
> Now that you have created gnome-power-manager it seems like it might be
> the right home for this.
Heh. I would be fine with dpms control to move to g-p-m, and to provide
an API for g-s to use (if it needed to?) -- I guess it would make g-s
more of a "gnome screensaver" daemon rather than an "xscreensaver
replacement".
> What do you think?
Sounds like a plan :-)
Richard.
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]