2.8 KiB
Integrating Power Profiles Daemon into Waybar
This guide explains how to integrate the power-profiles-daemon.service into Waybar, providing a toggleable button to switch between power profiles.
Prerequisites
Ensure you have the following installed:
waybar(version 0.9.22 or later recommended)power-profiles-daemon
1. Waybar Configuration
Add the power-profiles-daemon module to your Waybar configuration file (typically located at ~/.config/waybar/config).
{
"modules-right": [
"power-profiles-daemon",
// ... other modules
],
"power-profiles-daemon": {
"format": "{icon}",
"tooltip-format": "Power profile: {profile}\nDriver: {driver}",
"tooltip": true,
"format-icons": {
"default": "",
"performance": "⚡",
"balanced": "",
"power-saver": ""
}
}
}
2. Automatic Toggling
Waybar's built-in power-profiles-daemon module automatically cycles through available profiles when clicked. You don't need a separate script for basic toggling. However, if you want a custom script for more complex behavior, you can use a custom/power_profile module instead.
Using the Built-in Module (Recommended)
The built-in module is the most efficient way to handle this. It interacts directly with the daemon via D-Bus.
Custom Toggle Script (Optional)
If you prefer a custom script, create a file at ~/.config/waybar/scripts/toggle_power_profile.sh:
#!/bin/bash
current_profile=$(powerprofilesctl get)
case $current_profile in
"power-saver")
powerprofilesctl set balanced
;;
"balanced")
powerprofilesctl set performance
;;
"performance")
powerprofilesctl set power-saver
;;
*)
powerprofilesctl set balanced
;;
esac
Make it executable:
chmod +x ~/.config/waybar/scripts/toggle_power_profile.sh
Then, use a custom module in your Waybar config:
"custom/power_profile": {
"exec": "powerprofilesctl get",
"interval": 30,
"on-click": "~/.config/waybar/scripts/toggle_power_profile.sh",
"format": "Profile: {}"
}
3. Styling (Optional)
You can style the module in your style.css:
#power-profiles-daemon {
padding-left: 10px;
padding-right: 10px;
}
#power-profiles-daemon.performance {
background-color: #f38ba8;
color: #1e1e2e;
}
#power-profiles-daemon.balanced {
background-color: #a6e3a1;
color: #1e1e2e;
}
#power-profiles-daemon.power-saver {
background-color: #89b4fa;
color: #1e1e2e;
}
References
[1] Arch Linux Manual: waybar-power-profiles-daemon(5) [2] power-profiles-daemon GitLab