You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
#!/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
|