Monitor power-saver state in apps
Description
The user or system may decide to enter ‘power-saver’ mode, for example because the battery level is low or because the user expects to be away from mains power for a long time. In this mode, apps should try and reduce their power consumption to prolong battery life.
Goals
- Identify frequent or large power uses in the app
- Limit or disable them when in power-saver mode
- Notify the user in the UI in an appropriate way (if needed)
Scope
- Core apps
- Circle apps
- Development tools
People on charge & contact
Instructions to achieve the goals
- Identify large uses of power in the app. For example: animations, regular wakeups, regular network activity, A/V decoding, etc. The
Gio.PowerProfileMonitor
documentation has more suggestions. - Listen to the
Gio.PowerProfileMonitor.notify::power-saver-enabled
signal. Disable or slow down power-hungry things when power-saver mode is enabled. - If reducing power consumption will significantly or noticeably impact on the user experience, consider showing a banner (or some other form of feedback) in the UI to notify the user.
Label for tracking the initiative
This should be used only for issues/MRs directly related to monitoring power-saver state in apps. It should not be used for labelling other power usage improvements.
Text for the initiative issue in projects
The user or system may decide to enter ‘power-saver’ mode, for example because the battery level is low or because the user expects to be away from mains power for a long time. In this mode, apps should try and reduce their power consumption to prolong battery life.
- Identify frequent or large power uses in the app
- Limit or disable them when in power-saver mode
- Notify the user in the UI in an appropriate way (if needed)
List of projects & tasks
Core Apps
-
Calculator -
Calendar -
Characters -
Cheese -
Clocks -
Connections -
Console -
Contacts -
Disk Usage Analyzer -
Disks -
Document Scanner -
Document Viewer -
Extensions -
Files -
Fonts -
Help -
Image Viewer -
Logs -
Maps -
Music -
Photos -
Settings -
Software https://gitlab.gnome.org/GNOME/gnome-software/-/blob/27565470afd7e94d4eca2b2958e6110962b07087/src/gs-update-monitor.c#L1050 -
System Monitor -
Text Editor -
Tour -
Videos -
Weather -
Web: WebKit's LowPowerModeNotifier is hooked up to GPowerProfileMonitor
Circle Apps
-
Amberol - Nothing obvious to turn off to save power
-
Apostrophe -
Audio Sharing - Nothing obvious to turn off to save power
-
Authenticator -
Blanket https://github.com/rafaelmardojai/blanket/pull/312 -
Boatswain -
Cartridges - Nothing obvious to turn off to save power
-
Chess Clock -
Citations -
Clairvoyant -
Collision -
Commit -
Cozy - Nothing obvious to turn off to save power
-
Curtail -
Decoder -
Déjà Dup Backups https://gitlab.gnome.org/World/deja-dup/-/blob/bdebd86c23b594801b78d985f6f9f21a30be9809/monitor/ReadyWatcher.vala#L110 -
Dialect -
Drawing -
Elastic -
Emblem -
Eyedropper -
File Shredder -
Font Downloader -
Fragments - Existing support for metered data could be extended to support power profiles
-
Gaphor -
Health -
Identity -
Junction -
Khronos -
Komikku -
Kooha -
Lorem -
Metadata Cleaner -
Metronome -
Mousai -
NewsFlash https://gitlab.com/news-flash/news_flash_gtk/-/merge_requests/148 -
Obfuscate -
Pika Backup - Some existing code to check UPower, could be extended to check
Gio.PowerProfileMonitor
- Some existing code to check UPower, could be extended to check
-
Plots -
Podcasts -
Polari -
Secrets -
Share Preview -
Shortwave -
Solanum -
Tangram -
Telegraph -
Text Pieces -
Video Trimmer -
Warp -
Webfont Kit Generator -
Wike -
Workbench -
Zap
Development Tools
-
App Icon Preview -
Boxes -
Builder -
Color Palette -
Contrast -
D-Spy -
Dconf Editor -
Devhelp -
Icon Library -
Symbolic Preview -
Sysprof -
Typography
How can I help
- Pick an app, analyse its power usage, and suggest how it could be reduced
- If the app already pays attention to
Gio.PowerProfileMonitor
, or there are no obvious ways to reduce power usage, mark the app as done in the list above and add a note pointing to the existing code or saying there are no obvious ways to reduce power usage - Implement those changes once the app maintainer has agreed