about summary refs log tree commit diff
path: root/predictor.sh
diff options
context:
space:
mode:
authorZach DeCook <zachdecook@librem.one>2022-05-14 23:01:35 -0400
committerZach DeCook <zachdecook@librem.one>2022-05-14 23:04:29 -0400
commit0f8114df1dc87e28446a7f3310ef3deb09bbd728 (patch)
tree3f95824dcd4c55b51b332eab73059c1f47ed4cf0 /predictor.sh
parent3f4151f8d07fb12cd76832aed69d0a0fb03e24fd (diff)
downloadSwipeBehaviors-0f8114df1dc87e28446a7f3310ef3deb09bbd728.tar.gz
predictor: initial somewhat working draft
Diffstat (limited to 'predictor.sh')
-rwxr-xr-xpredictor.sh44
1 files changed, 44 insertions, 0 deletions
diff --git a/predictor.sh b/predictor.sh
new file mode 100755
index 0000000..6a4083e
--- /dev/null
+++ b/predictor.sh
@@ -0,0 +1,44 @@
+#!/bin/sh
+sock="$XDG_RUNTIME_DIR/predictor.sock"
+lw="$XDG_RUNTIME_DIR/pred.lastword"
+complete="$XDG_RUNTIME_DIR/pred.complete.bool"
+words=~/.local/share/sxmo/words.txt
+twow=~/.local/share/sxmo/count_2w.txt
+keymap=~/.local/share/sxmo/keyboard.map.tsv
+rm -f "$sock" "$lw" "$complete"
+mkfifo "$sock"
+saveWord(){
+	while read -r word; do
+		printf "$word" > "$lw"
+		echo "$word"
+	done
+}
+typeSomehow(){
+	while read -r word; do
+		if test -e "$complete"; then
+			test -n "${word:1}" && wtype "${word:1}"
+		else
+			wtype "$word"
+		fi
+	done
+}
+cat 0<> "$sock"|suggpicker 2>/dev/null|saveWord | typeSomehow &
+while read -r swipe; do
+	if test -n "${swipe:1}"; then
+		touch "$complete"
+		# TODO: change words
+		echo "$swipe" | swipeGuess "$words" 5 >> "$sock"
+	else
+		if test "$swipe" = ""; then
+			if test -e "$lw"; then
+				rm -f "$complete"
+				word="$(cat "$lw")"
+				grep -i -m 5 "^$word " "$twow" |awk '(1){printf $2"\t"} END{print ""}' >> "$sock"
+				rm -f "$lw"
+			fi
+		else
+			printf "$swipe" >> "$lw"
+		fi
+	fi
+done
+killall suggpicker