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
 |