nixos/nate-work/dotfiles/waybar/scripts/waybar-neewer.sh

100 lines
2.6 KiB
Bash
Executable File

#!/usr/bin/env bash
NEEWER_SDK_PATH="./nate-work/dotfiles/waybar/scripts/neweer_light.py"
NEEWER_MAC="CB:33:40:DF:63:44"
STATE_FILE="$HOME/.cache/neewer_light_state"
BRIGHTNESS_FILE="$HOME/.cache/neewer_brightness"
# Function to get current brightness from cache
get_brightness() {
if [ -f "$BRIGHTNESS_FILE" ]; then
cat "$BRIGHTNESS_FILE"
else
echo "20" # Default brightness
fi
}
# Function to save brightness to cache
save_brightness() {
echo "$1" > "$BRIGHTNESS_FILE"
}
# Function to get current power state
get_power_state() {
if [ -f "$STATE_FILE" ]; then
cat "$STATE_FILE"
else
echo "off" # Default state
fi
}
# Function to save power state
save_power_state() {
echo "$1" > "$STATE_FILE"
}
# Function to execute neewer command
execute_neewer() {
local cmd="$1"
if [ -n "$NEEWER_MAC" ]; then
python3 "$NEEWER_SDK_PATH" --mac "$NEEWER_MAC" $cmd
else
python3 "$NEEWER_SDK_PATH" $cmd
fi
}
# Main function for waybar output
waybar_output() {
local state=$(get_power_state)
local brightness=$(get_brightness)
if [ "$state" = "on" ]; then
echo "{\"text\":\"󱣝 ${brightness}%\",\"class\":\"on\",\"tooltip\":\"NEEWER Light: ON (${brightness}%)\"}"
else
echo "{\"text\":\"󱣞 OFF\",\"class\":\"off\",\"tooltip\":\"NEEWER Light: OFF\"}"
fi
}
# Handle different commands
case "$1" in
"toggle")
state=$(get_power_state)
if [ "$state" = "on" ]; then
execute_neewer "--off" && save_power_state "off"
else
execute_neewer "--on" && save_power_state "on"
fi
;;
"on")
execute_neewer "--on" && save_power_state "on"
;;
"off")
execute_neewer "--off" && save_power_state "off"
;;
"brightness")
if [ -n "$2" ]; then
brightness="$2"
execute_neewer "--brightness $brightness" && save_brightness "$brightness"
fi
;;
"increase")
current=$(get_brightness)
new_brightness=$((current + 10))
if [ $new_brightness -gt 100 ]; then
new_brightness=100
fi
execute_neewer "--brightness $new_brightness" && save_brightness "$new_brightness"
;;
"decrease")
current=$(get_brightness)
new_brightness=$((current - 10))
if [ $new_brightness -lt 0 ]; then
new_brightness=0
fi
execute_neewer "--brightness $new_brightness" && save_brightness "$new_brightness"
;;
"status"|*)
waybar_output
;;
esac