That allows API users to programmatically check whether a particular functionality is implemented in the daemon, eg. if we wanted to move GPU performance modes from gamemode to this daemon, gamemode could query whether that feature was implemented and available in the backend. Closes: #12 |
||
|---|---|---|
| data | ||
| docs | ||
| src | ||
| tests | ||
| .editorconfig | ||
| .gitignore | ||
| .gitlab-ci.yml | ||
| COPYING | ||
| meson.build | ||
| meson_options.txt | ||
| NEWS | ||
| README.md | ||
power-profiles-daemon
Makes power profiles handling available over D-Bus.
Installation
$ meson _build -Dprefix=/usr
$ ninja -v -C _build install
It requires libgudev and systemd.
Introduction
power-profiles-daemon offers to modify system behaviour based upon user-selected power profiles. There are 3 different power profiles, a "balanced" default mode, a "power-saver" mode, as well as a "performance" mode. The first 2 of those are available on every system. The "performance" mode is only available on select systems and is implemented by different "drivers" based on the system or systems it targets.
In addition to those 2 or 3 modes (depending on the system), "actions" can be hooked up to change the behaviour of a particular device. For example, this can be used to disable the fast-charging for some USB devices when in power-saver mode.
GNOME's Settings and shell both include interfaces to select the current mode, but they are also expected to adjust the behaviour of the desktop depending on the mode, such as turning the screen off after inaction more aggressively when in power-saver mode.
Note that power-profiles-daemon does not save the currently active profile across system restarts and will always start with the "balanced" profile selected.
Debugging
You can now check which mode is in use, and which ones are available by running:
gdbus introspect --system --dest net.hadess.PowerProfiles --object-path /net/hadess/PowerProfiles
You can change the selected profile by running (change power-saver for the
chosen profile):
gdbus call --system --dest net.hadess.PowerProfiles --object-path /net/hadess/PowerProfiles --method org.freedesktop.DBus.Properties.Set 'net.hadess.PowerProfiles' 'SelectedProfile' "<'power-saver'>"
If that doesn't work, please file an issue, make sure any running power-profiles-daemon
has been stopped:
systemctl stop power-profiles-daemon.service
and attach the output of:
G_MESSAGES_DEBUG=all /usr/libexec/power-profiles-daemon
running as root.