POWER-IDLE-DAEMON is a lightweight Linux daemon that automatically suspends the system when the computer is truly idle.
The daemon uses DBus APIs to detect system session state and integrates resource monitoring to avoid false suspensions during background activity.
The system will suspend only when:
-
The session is locked
-
The display is turned off
-
The system is idle according to configurable thresholds:
- CPU usage
- Disk I/O
- Network I/O
All behavior is fully configurable via a configuration file.
- GNOME
- Debian
- Ubuntu
Platform compatibility is controlled via the supported_platforms.json file.
{
"desktop_environment": [
"gnome"
],
"linux_distribution": [
"debian",
"ubuntu"
]
}- If your system is not listed in
supported_platforms.json, installation will be blocked by default. - To force execution on an unlisted platform, simply add your desktop environment and/or distribution to the JSON file and run the installation process.
This enables experimental support on untested environments.
If POWER-IDLE-DAEMON works correctly on other platforms:
- Please report compatibility by opening an issue
- Include system information (DE, distro)
This helps reduce testing effort and progressively expand official platform support.
- Only GUI-based environments are supported.
- CLI-only (headless) systems are not supported due to DBus and session-state dependencies.
The daemon continuously monitors system state using DBus APIs and low-level system metrics collected via psutil (Python).
The system enters suspend only if all conditions are satisfied:
-
Session is locked (DBus)
-
Display is powered off (DBus)
-
Lock state has been active for at least
IDLE_BEFORE_MONITORING_SEC -
System activity is below thresholds:
- CPU usage <
CPU_UTILIZATION_THRESHOLD - Disk I/O <
DISK_IO_THRESHOLD_BYTES_PER_MEASURE_INTERVAL - Network I/O <
NET_IO_THRESHOLD_BYTES_PER_MEASURE_INTERVAL
- CPU usage <
The daemon is configured via a single configuration file (/etc/power_idle_daemon/power-idle-daemon.conf).
| Parameter | Description |
|---|---|
| SUSPENSION_MODE | System suspend mode (e.g. deep, s2idle) |
| CPU_UTILIZATION_THRESHOLD | CPU usage (%) above which the system is considered active |
| DISK_IO_THRESHOLD_BYTES_PER_MEASURE_INTERVAL | Disk I/O (bytes) above which the system is considered active |
| NET_IO_THRESHOLD_BYTES_PER_MEASURE_INTERVAL | Network I/O (bytes) above which the system is considered active |
| IDLE_BEFORE_MONITORING_SEC | Time in lockscreen before monitoring |
| RESOURCE_USAGE_MEASURE_TIME_SEC | Resource sampling interval |
-
Resource monitoring runs with root privileges
-
Display power state (on/off) monitoring runs in user space
-
Privileged access is required for:
- Disk I/O monitoring
- Network I/O monitoring
- CPU usage monitoring
- Suspend execution
POWER-IDLE-DAEMON prevents suspend during active system usage, including:
- Network transfers
- Disk operations
- CPU usage operations
This is achieved through:
- Multi-metric verification
- Time-based validation
- State machine logic
See INSTALL.md for detailed installation and uninstallation instructions.
GPL-2.0 License
Contributions are welcome.
Areas of interest:
- Desktop environment support
- Linux distribution support
- New features
- Performance optimization
- Packaging