b04357de87
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
45 lines
1.4 KiB
Bash
Executable File
45 lines
1.4 KiB
Bash
Executable File
#!/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/^- //' \
|
|
| wofi --dmenu \
|
|
--prompt "Fan Strategy:" \
|
|
--width 260 \
|
|
--height 300 \
|
|
--hide-scroll \
|
|
--no-actions \
|
|
--insensitive)
|
|
[ -n "$CHOICE" ] && fw-fanctrl use "$CHOICE" && pkill -RTMIN+9 waybar
|
|
exit
|
|
fi
|
|
|
|
OUTPUT=$(fw-fanctrl print 2>/dev/null)
|
|
CURRENT=$(echo "$OUTPUT" | awk -F"'" '/^Strategy:/{print $2}')
|
|
SPEED=$(echo "$OUTPUT" | awk '/^Speed:/{print $2}')
|
|
|
|
case "$CURRENT" in
|
|
laziest|deaf) ICON=""; LEVEL="silent" ;;
|
|
lazy) ICON=""; LEVEL="quiet" ;;
|
|
medium) ICON=""; LEVEL="medium" ;;
|
|
agile) ICON=""; LEVEL="agile" ;;
|
|
very-agile) ICON=""; LEVEL="fast" ;;
|
|
aeolus) ICON=""; LEVEL="max" ;;
|
|
*) ICON=""; LEVEL="$CURRENT" ;;
|
|
esac
|
|
|
|
printf '{"text": "%s %s", "tooltip": "Fan strategy: %s\\nSpeed: %s\\nClick to change", "class": "%s"}\n' \
|
|
"$ICON" "$CURRENT" "$CURRENT" "$SPEED" "$LEVEL"
|