suckless-utils/dmenu/scripts/dcalc

84 lines
1.2 KiB
Plaintext
Raw Normal View History

#!/bin/sh
# Super basic dmenu calculator.
# Written by speedie
# Licensed under GNU GPLv3.
LIST_01()
{
printf "
0
1
2
3
4
5
6
7
8
9
0
Last
Previous Result
Quit"
}
VALUE_01=$(printf "$(LIST_01)" | dmenu -l 20 -p "dcalc") && printf "$VALUE_01" > /tmp/dcalc_val1
case "$VALUE_01" in
"Last") VALUE_01=$(cat /tmp/dcalc_val1) ;;
"Quit") exit 0 ;;
"Previous Result") VALUE_01=$(cat /tmp/dcalc-result) ;;
"") exit 0 ;;
esac
LIST_02()
{
printf "
+
-
×
÷
Quit
Last"
}
VALUE_02=$(printf "$(LIST_02)" | dmenu -l 20 -p "dcalc") && printf "$VALUE_02" > /tmp/dcalc_val2
case "$VALUE_02" in
"Last") VALUE_02=$(cat /tmp/dcalc_val2) ;;
"×") VALUE_02="*" ;;
"÷") VALUE_02="/" ;;
"Quit") exit 0 ;;
esac
LIST_03()
{
printf "
0
1
2
3
4
5
6
7
8
9
0
Quit
Previous Result
Last"
}
VALUE_03=$(printf "$(LIST_03)" | dmenu -l 20 -p "dcalc") && printf "$VALUE_03" > /tmp/dcalc_val3
case "$VALUE_03" in
"Last") VALUE_03=$(cat /tmp/dcalc_val3) ;;
"Previous Result") VALUE_03=$(cat /tmp/dcalc-result) ;;
"Quit") exit 0 ;;
"") exit 0 ;;
esac
RESULT=$(expr ${VALUE_01} "${VALUE_02}" ${VALUE_03})
printf "Result = $RESULT" | dmenu -l 1 | sed "s|Result = ||" | xclip -selection clipboard && notify-send "$RESULT copied to clipboard!"
printf "$RESULT" > /tmp/dcalc-result