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}'