main
1#!/usr/bin/env bash
2# Power profile switcher via PPD D-Bus API (tuned-ppd or power-profiles-daemon).
3set -euo pipefail
4
5query="${1:-}"
6bus="net.hadess.PowerProfiles"
7path="/net/hadess/PowerProfiles"
8iface="net.hadess.PowerProfiles"
9
10active=$(busctl get-property "$bus" "$path" "$iface" ActiveProfile 2>/dev/null | awk '{print $2}' | tr -d '"')
11
12items="[]"
13for profile in power-saver balanced performance; do
14 if [[ -n "$query" ]] && ! echo "$profile" | grep -qi "$query"; then
15 continue
16 fi
17 status=""
18 [[ "$profile" == "$active" ]] && status="✓ active"
19 items=$(jq --arg name "$profile" --arg status "$status" \
20 '. + [{"title": $name, "subtitle": $status, "arg": $name}]' <<< "$items")
21done
22
23jq -n --argjson items "$items" '{"items": $items}'