Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 370b4aa096 | |||
| 9ff1190549 | |||
| cc164dfa50 | |||
| b04357de87 |
+39
-5
@@ -1,17 +1,51 @@
|
||||
#!/bin/bash
|
||||
|
||||
STATE_FILE="${XDG_STATE_HOME:-$HOME/.local/state}/fan-profile-auto"
|
||||
|
||||
map_profile_to_strategy() {
|
||||
case "$1" in
|
||||
power-saver) echo lazy ;;
|
||||
balanced) echo medium ;;
|
||||
performance) echo agile ;;
|
||||
*) return 1 ;;
|
||||
esac
|
||||
}
|
||||
|
||||
if [ "$1" = "--menu" ]; then
|
||||
CHOICE=$(fw-fanctrl print list 2>/dev/null \
|
||||
| grep "^-" \
|
||||
| sed 's/^- //' \
|
||||
STRATS=$(fw-fanctrl print list 2>/dev/null | grep "^-" | sed 's/^- //')
|
||||
CHOICE=$(printf 'auto\n%s\n' "$STRATS" \
|
||||
| wofi --dmenu \
|
||||
--prompt "Fan Strategy:" \
|
||||
--width 260 \
|
||||
--height 300 \
|
||||
--height 320 \
|
||||
--hide-scroll \
|
||||
--no-actions \
|
||||
--insensitive)
|
||||
[ -n "$CHOICE" ] && fw-fanctrl use "$CHOICE" && pkill -RTMIN+9 waybar
|
||||
[ -z "$CHOICE" ] && exit
|
||||
if [ "$CHOICE" = "auto" ]; then
|
||||
mkdir -p "$(dirname "$STATE_FILE")"
|
||||
touch "$STATE_FILE"
|
||||
PROFILE=$(powerprofilesctl get 2>/dev/null) \
|
||||
&& MAPPED=$(map_profile_to_strategy "$PROFILE") \
|
||||
&& fw-fanctrl use "$MAPPED"
|
||||
else
|
||||
rm -f "$STATE_FILE"
|
||||
fw-fanctrl use "$CHOICE"
|
||||
fi
|
||||
pkill -RTMIN+9 waybar
|
||||
exit
|
||||
fi
|
||||
|
||||
if [ -f "$STATE_FILE" ]; then
|
||||
PROFILE=$(powerprofilesctl get 2>/dev/null)
|
||||
MAPPED=$(map_profile_to_strategy "$PROFILE")
|
||||
if [ -n "$MAPPED" ]; then
|
||||
ACTIVE=$(fw-fanctrl print 2>/dev/null | awk -F"'" '/^Strategy:/{print $2}')
|
||||
[ "$ACTIVE" != "$MAPPED" ] && fw-fanctrl use "$MAPPED" >/dev/null 2>&1
|
||||
printf '{"text": " auto", "tooltip": "Auto fan strategy\\nProfile: %s → %s\\nClick to change", "class": "auto"}\n' "$PROFILE" "$MAPPED"
|
||||
else
|
||||
printf '{"text": " auto (?)", "tooltip": "Auto: power-profiles-daemon unreachable or unknown profile\\nClick to change", "class": "auto"}\n'
|
||||
fi
|
||||
exit
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user