# 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)