85 lines
1.8 KiB
Bash
Executable File
85 lines
1.8 KiB
Bash
Executable File
#!/bin/zsh
|
|
|
|
error() {
|
|
echo "Improper usage. To increase a value in a file, update [target_file] {+, -}[change]."
|
|
echo "For example, to increase the volume by 5, use 'update volume +5'."
|
|
echo "To decrease the brightness by 10, use 'update brightness -10'."
|
|
exit 1
|
|
}
|
|
|
|
# Set up target file
|
|
get_target() {
|
|
TARGET=$1
|
|
|
|
if [[ $TARGET == "volume" ]]; then
|
|
echo "/home/jashton/.config/xob/volume"
|
|
|
|
elif [[ $TARGET == "brightness" ]]; then
|
|
echo "/home/jashton/.config/xob/brightness"
|
|
|
|
else
|
|
echo "Invalid target. Please use 'volume' or 'brightness'."
|
|
error
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# Format change
|
|
get_change() {
|
|
CHANGE=$1
|
|
|
|
if [[ $CHANGE[1] == "+" ]]; then
|
|
echo $CHANGE[2,-1]
|
|
return ${CHANGE[2,-1]}
|
|
elif [[ $CHANGE[1] == "-" ]]; then
|
|
echo -$CHANGE[2,-1]
|
|
return -${CHANGE[2,-1]}
|
|
else
|
|
echo "Invalid change. Please use '+' or '-'."
|
|
error
|
|
fi
|
|
}
|
|
|
|
update() {
|
|
CHANGE=$1
|
|
TARGET=$2
|
|
TARGET_FILE=$(get_target "$TARGET")
|
|
|
|
OLDNUM=`head $TARGET_FILE`
|
|
NEWNUM=`expr $OLDNUM + $CHANGE`
|
|
|
|
if [[ $NEWNUM -le 100 && $NEWNUM -ge 0 ]]; then
|
|
sed -i "s/$OLDNUM/$NEWNUM/g" $TARGET_FILE
|
|
|
|
if [[ $TARGET == "volume" ]]; then
|
|
pamixer --set-volume $NEWNUM%
|
|
|
|
elif [[ $TARGET == "brightness" ]]; then
|
|
brightnessctl set $NEWNUM%
|
|
|
|
else
|
|
echo "Invalid target. Please use 'volume' or 'brightness'."
|
|
error
|
|
fi
|
|
|
|
echo $NEWNUM >> ~/.config/xob/xobpipe
|
|
exit 0
|
|
else
|
|
echo "Invalid value. Please use a number between 0 and 100."
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
# Check for proper number of arguments
|
|
if [[ $# -ne 2 ]]; then
|
|
error
|
|
fi
|
|
|
|
TARGET=$1
|
|
CHANGE=$(get_change "$2")
|
|
|
|
# Set up xob
|
|
tail -f ~/.config/xob/xobpipe | xob -s $TARGET &
|
|
|
|
update "$CHANGE" "$TARGET" &
|