The original idea was to have a "SelectedProfile" property that would be settable by the user, but could be different from the "ActiveProfile" if the hardware's performance mode wasn't available for example. It turns out that having 2 separate states makes for very confusing UI, so if the performance profile becomes inhibited and it's the current one, the active profile will automatically switch to balanced and stay there. |
||
|---|---|---|
| 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.
Testing
If you don't have hardware that can support the performance mode, you can
manually run the power-profiles-daemon binary as root with the environment
variable POWER_PROFILE_DAEMON_FAKE_DRIVER set to 1. For example:
$ sudo POWER_PROFILE_DAEMON_FAKE_DRIVER=1 /usr/libexec/power-profiles-daemon