Files
ai/guides/manus-ai/waybar_power_profile_integration.md

115 lines
2.8 KiB
Markdown

# 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`).
```json
{
"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`:
```bash
#!/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:
```bash
chmod +x ~/.config/waybar/scripts/toggle_power_profile.sh
```
Then, use a custom module in your Waybar config:
```json
"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`:
```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)](https://man.archlinux.org/man/extra/waybar/waybar-power-profiles-daemon.5.en)
[2] [power-profiles-daemon GitLab](https://gitlab.freedesktop.org/hadess/power-profiles-daemon)