Skip to content
This repository has been archived by the owner on Oct 11, 2024. It is now read-only.
/ waketimed Public archive

Experimental sleep/wake cycle daemon for mobile Linux

License

Notifications You must be signed in to change notification settings

jistr/waketimed

Repository files navigation

crates.io license test suite

waketimed

Project summary

Waketimed is an experimental daemon for managing the sleep/wake cycle of Linux phones and similar devices. It aims to keep the device sleeping as much as possible to preserve battery life. It is perhaps a bit structurally overengineered :) but it is light on resources.

Implementation status

When using waketimed currently, please be aware that it's in early development phase. The design and feature set are being figured out. Seamless non-breaking upgrades (e.g. config file compatibility between versions) are a nice to have but not the main priority right now.

The project idea is that waketimed could put the device to sleep and also wake it up periodically. However, only putting the device to sleep is implemented right now. If you want periodic system wake-ups in addition to wake-ups caused by the user or the modem, it is presently recommended to create a systemd timer.

Documentation

waketimed user documentation

Context

Without waketimed, Linux phones typically rely on automatic suspend functionality inherited from desktop and laptop computers. While this is a working solution, having the auto-suspend timer at e.g. 3 minutes often leaves the phone idle but not suspended for longer time than necessary, shortening precious battery life. Setting the idle and suspend timers to something more aggressive like 20 seconds is possible, but it is disturbing when the user wants to read something longer on the screen. Additionally, when testing these short timeouts, they seemed somewhat unreliable in actually suspending the device after the specified time.

Waketimed allows you to have generous idle timers in the desktop environment, but once it detects the device is not being used (screen off, no active/ringing call etc.), it suspends the device after a rather short time (10 seconds by default).