Much of the code that interfaces with the modem was taken from SXMO. Calling now works for both incoming and outgoing calls
67 lines
1.4 KiB
Bash
Executable file
67 lines
1.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
|
source "$DIR/common"
|
|
|
|
export DISPLAY=:0.0
|
|
|
|
usage(){
|
|
echo "dialer"
|
|
echo "Options:"
|
|
echo " -h|--help Display this help text"
|
|
echo " -m|--modem Specify a modem"
|
|
echo " -l|--letters Show letter keyboard rather than just numbers"
|
|
echo " --dry-run Don't actually call"
|
|
}
|
|
|
|
altKeyboard(){
|
|
notify-send "also here"
|
|
if [ "$keyboard" = "svkbd-numbers" ]; then
|
|
echo "svkbd-colemak"
|
|
else
|
|
echo "svkbd-numbers"
|
|
fi
|
|
}
|
|
|
|
modem="$(mmcli -L | grep -oE 'Modem\/[0-9]+' | head -n 1 | cut -d'/' -f2)"
|
|
keyboard="svkbd-numbers"
|
|
dryrun=""
|
|
|
|
# Read the options and set stuff
|
|
while [[ $1 = -?* ]]; do
|
|
case $1 in
|
|
-h|--help) usage; exit;;
|
|
-m|--modem) modem="$2"; shift ;;
|
|
-l|--letters) keyboard="svkbd-colemak"; shift ;;
|
|
--dry-run) dryrun="--dry-run" ;;
|
|
--) shift; break ;;
|
|
*) die "invalid option: '$1'." ;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
while : ; do
|
|
|
|
# Stop any running keyboards
|
|
pkill -9 'svkbd-*'
|
|
|
|
# Open the keyboard that we are using
|
|
"$keyboard" &
|
|
|
|
choice="$( (
|
|
echo "Switch Keyboard"
|
|
echo "Exit"
|
|
contact-numbers
|
|
) | rofi -dmenu -i -me-accept-entry '!MousePrimary' -p "Call" -normal-window -font 'Iosevka 20' )"
|
|
|
|
case "$choice" in
|
|
"Switch Keyboard") keyboard="$(altKeyboard)" ;;
|
|
"Exit") break ;;
|
|
*)
|
|
num="$(echo "$choice" | cut -d ' ' -f 2)"
|
|
pkill -9 'svkbd-*'
|
|
makeCall -m "$modem" $dryrun "$num"
|
|
break ;;
|
|
esac
|
|
|
|
done
|