Files
dotfiles/.local/bin/fanctl
T
Joel Mathew Thomas b44cdd894e fixed bugs in fanctl
2024-04-11 14:05:33 +05:30

109 lines
2.5 KiB
Bash
Executable File

#!/bin/bash
if [ -f ~/.local/bin/fanctl ]; then
# Read the values of text, class, and tooltip
source ~/.local/bin/stats/fanstat
fi
# Function to check if a string is an integer
is_integer() {
[[ $1 =~ ^[0-9]+$ ]]
}
# Function to format tooltip message (You need to define this function)
waybar_tooltip() {
# Replace this with your logic to format tooltip message if necessary
echo "$1"
}
# Check if the correct number of arguments is provided
if [ $# -ne 1 ]; then
echo "Usage: $0 [min|max|auto|integer]"
exit 1
fi
# Initialize variables for the text, tooltip, and class
text=""
tooltip=""
class=""
# Check the argument and execute the corresponding command
case $1 in
min)
nbfc set -f 0 1 -s 30
text="min"
tooltip="30%"
class="min"
;;
max)
nbfc set -f 0 1 -s 100
text="max"
tooltip="100%"
class="max"
;;
auto)
nbfc set -f 0 1 -a
text="auto"
tooltip="Auto"
class="auto"
;;
incr)
if [[ $tooltipstat != "Auto" ]]; then
new_tooltipstat="${tooltipstat%?}"
new_speed=$(( $new_tooltipstat + 10))
if [[ $new_speed -lt 100 ]]; then
nbfc set -f 0 1 -s $new_speed
text="custom"
tooltip="$new_speed%"
class="custom"
else
text=$textstat
tooltip="$tooltipstat"
class=$classstat
fi
else
text=$textstat
tooltip="$tooltipstat"
class=$classstat
fi
;;
decr)
if [[ $tooltipstat != "Auto" ]]; then
new_tooltipstat="${tooltipstat%?}"
new_speed=$(( $new_tooltipstat - 10))
if [[ $new_speed -gt 0 ]]; then
nbfc set -f 0 1 -s $new_speed
text="custom"
tooltip="$new_speed%"
class="custom"
else
text=$textstat
tooltip="$tooltipstat"
class=$classstat
fi
else
text=$textstat
tooltip="$tooltipstat"
class=$classstat
fi
;;
*)
if is_integer "$1"; then # Check if argument is an integer
nbfc set -f 0 1 -s "$1" # Execute nbfc with the provided integer value
text="custom"
tooltip="$1%"
class="custom"
else
echo "Invalid argument. Usage: $0 [min|max|auto|integer]"
exit 1
fi
;;
esac
# Output text, tooltip, and class to statfile
echo "textstat=$text" > ~/.local/bin/stats/fanstat
echo "tooltipstat=$(waybar_tooltip "$tooltip")" >> ~/.local/bin/stats/fanstat
echo "classstat=$class" >> ~/.local/bin/stats/fanstat