screensaver and power manager dbus interfaces

David Zeuthen david at fubar.dk
Fri Jun 2 17:26:08 EEST 2006


On Fri, 2006-06-02 at 11:02 +0200, Alexander Larsson wrote:
> Some systems also have a mode where they both save to disk and memory
> at the same time, then they suspend, but if power goes low they power
> down (and un-hibernate on startup). 

You may be referring to Windows Vista, that's the only place I've heard
of this feature. For the record, I think this is purely done in software
but I'm not aware of any free operating system (e.g. based on Linux,
FreeBSD or Solaris) that does this yet. I've heard of hackers playing
around with it getting mixed results though.

It's a nice feature though and if done right I think the user probably
won't even notice that it hibernates before suspending (suspend to disk
can indeed be very fast but on Linux it's not unless you use suspend2).

> Wouldn't it make sense to support a mode like that too?

Of course it would make sense to support this feature in an OS but I
don't think it's something that should be exposed in this interface as
the Suspend(), Hibernate() methods are in the org.fd.PowerManager
interface purely convenience for conduits used by the desktop
environment. As an example, we use this in Fedora for the "Sleep" and
"Shutdown" items in the System menu on the panel.

The only reason we have both Suspend() and Hibernate() is because the
user experience of respectively Suspending and Hibernating is different
and I'm not sure, if done right, that SuspendAndHibernate() would be
vastly different from Suspend(). 

But then again... we probably know a lot better once this feature is
available and if it makes sense we could add SuspendAndHibernate() to
the o.fd.PowerManager interface. We could also add it regardless once
the feature becomes available, I'm not opposed to adding it but my
personal view is that it doesn't make sense to add something to an
interface if it doesn't get used by anything.

    David

[1] : I'm not even sure that the lower layers, e.g. the Suspend() method
on HAL should take any parameters either if we want to hibernate before
suspend. Maybe it should. Need more data.





More information about the xdg mailing list