Items to work re: power management in unity8, 14.10 tasks.

Registered by Michał Sawicz on 2014-04-25

There's power-management-related work items to be done, like moving some responsibilities into unity8 from powerd, and implementing some new elements

Blueprint information

Not started
kevin gunn
Unity Team
Needs approval
Unity UI Team
Series goal:
Proposed for utopic
Milestone target:
milestone icon ubuntu-14.10

Related branches



Unity8 - Saviq

- listen to all input events
-- disable touch input when proximity sensor enabled and triggered
- read display settings from settings app
- take over display lock DBus interface from powerd
-- along with proximity
- handle auto-brightness
- talk to u-s-c to request screen / brightness changes

USC/powerd - Aguirre

- Listen to input channel events, restart screen-off and dimmer timer after every new event.
- Listen to power key button event - override all timers and all pending screen-state change events.
- Obtain inacitivity timeout numbers from mir based shell. USC to use default values if no session was ever active.
- All the proximity sensor handling, light sensor and actual backlight device communication stays in powerd (USC calls powerd to actually set user/dim brightness)
- Remove display power state changes and input inactivity handling from powerd

Power off dialog design:

kgunn query
- wouldn't timer values also potentially be in settings, e.g. maybe a pre-compile list available to the user on the phone screen always on, 1 min, 5 min, 15 min ? (maybe arbitrary user setting time on desktop?)
- so u-s-c would read settings for timer values ?
- maybe we should do a 30 min malta session on proximity with unity, settings, mir, phonedations ?
   * potential proximity policy
     > proximity sensor only turned on during live communication, so active telepathy session & earpiece audio active
       → it could be used for other things, too, e.g. N9 lets you mute an incoming call or
         alarm by putting your phone on its face
     > proximity policy should determine if telepathy session active & earpiece audio active
        (not u-s-c, trust that proximity policy is trustworhty from u-s-c point of view)
     > activating handsfree turns proximity off
     > in active telepathy session w/ earpiece proximity policy can request screen-off & screen-on based on proximity data
     > proximity policy should request screen-on in end of telepathy session


Work Items

Work items for ubuntu-14.05:
[alberta] Add support for screen blanking timeouts & react to screen blank signals (e.g. power button press) after migrating them from powerd into usc: DONE
[alberta] Add power key long-press detection in USC: DONE
[alberta] Issue clean system shutdown after long-press detection of 5s in USC: DONE
[alberta] powerd to call USC to turn on screen during incoming call/message/other: DONE
[alberta] powerd to call USC to turn on/off screen during a call due to proximity near/far events: DONE
[alberta] Have USC accept and emit a reason flag for display power state changes: DONE
[alberta] Update unity8 powerd plugin and Shell.qml to account for new display power state change signal : DONE
[alberta] Migrate display-request functionality into USC : DONE
[alberta] make powerd-cli proxy to USC for display on requests : DONE
[alberta] Add DBus interface in USC for setting brightness and auto-brightness enabling: DONE
[alberta] Update unity8 powerd plugin to use USC DBus interface for enabling auto-brightness: DONE
[alberta] Update media-hub to use USC interface to keep display on during video playback: DONE
[alberta] Update indicator-power to use USC DBus interface for setting brightness: DONE
[unity-ui-team] implement power off dialog (see above for design): TODO
[unity-ui-team] Add power key long-press detection in unity shell: TODO
[unity-ui-team] Show power off dialog after long-press detection of 2s in Unity shell: TODO

Work items for later:
Have indicator-power set brightness by proxying to unity8: TODO
Have unity8 use mir socket to proxy brightness values to USC: TODO
Add support for configuring inactivity timeout values: TODO

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.