#!/usr/bin/env bash

SCALE_FILE="scale.txt"
DIRNAME="/tmp/$(ls /tmp | grep scale.sh | head -n 1)"
CUR_SCALE=$(swaymsg -t get_outputs | grep -oP "scale\": \K\d.\d+")
NEW_SCALE=""

if [[ $DIRNAME == "/tmp/" ]]; then
    DIRNAME=$(mktemp -d "${TMPDIR:-/tmp/}$(basename $0).XXXXXXXXXXXX")
    echo $CUR_SCALE > $DIRNAME/$SCALE_FILE
else
    CUR_SCALE=$(cat $DIRNAME/$SCALE_FILE)
fi

if [[ $1 == "inc" ]]; then
    NEW_SCALE=$(echo $CUR_SCALE + 0.25 | bc)
elif [[ $1 == "dec" ]]; then
    NEW_SCALE=$(echo $CUR_SCALE - 0.25 | bc)
else
    echo "No op provided, pass in 'inc' or 'dec' to change scale"
fi

if [[ $NEW_SCALE < 0.50 ]]; then
    NEW_SCALE=0.50
elif [[ $NEW_SCALE > 2 ]]; then
    NEW_SCALE=2.00
fi

echo $NEW_SCALE > $DIRNAME/$SCALE_FILE

notify-send -t 1000 "Scale set to $NEW_SCALE"
swaymsg "output * scale $NEW_SCALE"