mapping
This commit is contained in:
75
snowboy-2022/pyautogui.sh
Normal file
75
snowboy-2022/pyautogui.sh
Normal file
@@ -0,0 +1,75 @@
|
||||
#! /bin/bash
|
||||
|
||||
main() {
|
||||
if [ ! -e /tmp/stt.fifo ]; then
|
||||
mkfifo /tmp/stt.fifo
|
||||
fi
|
||||
|
||||
cleanup() {
|
||||
killall -9 $(jobs -p)
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
echo starting in
|
||||
for ((i=3; i>0; i--)); do
|
||||
echo "...$i..."
|
||||
sleep 1
|
||||
done
|
||||
|
||||
local models=($(
|
||||
cat pyautogui.yaml \
|
||||
| gojq -r -c --yaml-input '
|
||||
to_entries[] | "model/"+.key+".pmdl/"+.key
|
||||
' \
|
||||
| tr '\n' ',' \
|
||||
| sed 's/,$//'
|
||||
))
|
||||
echo models=$models
|
||||
|
||||
./snowboy -s .5 -r resources.res -ms $models "$@" > /tmp/stt.fifo &
|
||||
|
||||
python3 -c '
|
||||
import pyautogui
|
||||
import time
|
||||
|
||||
keys = set()
|
||||
|
||||
def press(key):
|
||||
hold(key)
|
||||
time.sleep(0.25)
|
||||
release(key)
|
||||
|
||||
def hold(key):
|
||||
global keys
|
||||
keys.add(key)
|
||||
pyautogui.keyDown(key)
|
||||
|
||||
def release(key):
|
||||
pyautogui.keyUp(key)
|
||||
|
||||
def release_all():
|
||||
global keys
|
||||
for key in keys:
|
||||
release(key)
|
||||
keys = set()
|
||||
|
||||
def main():
|
||||
with open("/tmp/stt.fifo", "r") as q:
|
||||
for line in q:
|
||||
handle(line.strip())
|
||||
|
||||
import yaml
|
||||
mapping = yaml.safe_load(open("./pyautogui.yaml", "r"))
|
||||
print(mapping)
|
||||
|
||||
def handle(cmd):
|
||||
global mapping
|
||||
press(mapping.get(cmd))
|
||||
|
||||
main()
|
||||
'
|
||||
}
|
||||
|
||||
if [ "$0" == "$BASH_SOURCE" ]; then
|
||||
main "$@"
|
||||
fi
|
||||
Reference in New Issue
Block a user