Compare commits
4 Commits
ef4d8cb44d
...
370b4aa096
| Author | SHA1 | Date | |
|---|---|---|---|
| 370b4aa096 | |||
| 9ff1190549 | |||
| cc164dfa50 | |||
| b04357de87 |
+39
-5
@@ -1,17 +1,51 @@
|
|||||||
#!/bin/bash
|
#!/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
|
if [ "$1" = "--menu" ]; then
|
||||||
CHOICE=$(fw-fanctrl print list 2>/dev/null \
|
STRATS=$(fw-fanctrl print list 2>/dev/null | grep "^-" | sed 's/^- //')
|
||||||
| grep "^-" \
|
CHOICE=$(printf 'auto\n%s\n' "$STRATS" \
|
||||||
| sed 's/^- //' \
|
|
||||||
| wofi --dmenu \
|
| wofi --dmenu \
|
||||||
--prompt "Fan Strategy:" \
|
--prompt "Fan Strategy:" \
|
||||||
--width 260 \
|
--width 260 \
|
||||||
--height 300 \
|
--height 320 \
|
||||||
--hide-scroll \
|
--hide-scroll \
|
||||||
--no-actions \
|
--no-actions \
|
||||||
--insensitive)
|
--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
|
exit
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user