Created: 2006-06-11 by LunaTick
This spec aims to increase the use of Gnome Power Manager's Inhibit and UnInhibit DBUS methods.
Gnome Power Manager has a preference allowing the user to have their machine suspend or hibernate after the machine has been idle for a certain time. This allows the machine to conserve power when it is not in use.
The difficulty is that a lack of mouse or keyboard activity does not necessarily equate to "session not in use" and the machine may suspend when it is undertaking a long task (e.g. copying large files) or performing an activity requiring no input from the user (e.g. playing music).
- Jane is an Ubuntu user. She is worried about the battery life of her laptop and often gets distracted. She would really like her laptop to sleep when not in use, but if she turns GPM's feature on then it sleeps when she is copying large files etc.
- Susan is in charge of the Ubuntu defaults. She would like to set GPM to suspend to RAM (sleep; if supported by the laptop) if the laptop is running on the battery and is unused for 15mins. When she does this, lots of bugs are filed about "random" suspending.
- John likes to use his machine for voice chatting using Ekiga while he paces the room. He also likes to have his machine suspend to RAM (sleep) when he is not using it. If he does both, Ekiga will sleep 10 minutes into his chat.
This specification covers only those applications where it is not necessary for the screen to remain on. There is a different call to prevent the screensaver from coming on. That call also prevents GPM from suspending and should be used when the user will be using the screen without the mouse or keyboard (e.g. a video call or playing a movie). Perhaps a separate page/spec for these situations is appropriate. The GPM call is for situations when the screensaver coming on (or the screen turning off) will not affect the operation of the application.
GPM already provides the methods to do this via DBus.
The implementation has already begun at https://wiki.ubuntu.com/GnomePowerManagerInactiveSleep
- Determine the situations when calling the methods is appropriate
Collect these at a wiki page
File requests against these packages with links to the necessary developer resources (also on the above page)
- When a substantial number of these packages have been adjusted then the feature can be turned on with a short time and additional situations can be determined.
- The feature could be turned on by default (when on battery) for all machines that can do suspends