No description
- Odin 96.3%
- Just 3.7%
| common | moved stuff to common | |
| engine | improve left keyboard inputs | |
| visualizer | improve left keyboard inputs | |
| justfile | added README, license and release build commands | |
| README.md | added README, license and release build commands | |
| UNLICENSE | added README, license and release build commands | |
crocus
laptop keyboard + trackpad as a Plover machine
how it works
- trackpad splits in half at the middle. each half acts like a joystick — you push your finger away from where you put it down, and it picks a direction (Up, Down, LeftUp, LeftDown, RightUp, RightDown, or DeadZone if you barely moved)
- the directions make a sequence. each time you enter a direction it toggles that steno key on/off (XOR style)
- keyboard keys also produce steno keys. see mapping below
- when you lift all fingers and release all keys, it sends a TX Bolt stroke over a Unix socket
- a visualizer can connect to a second socket to show what's happening
requirements
- Linux with evdev
- Odin
build
just setup # create build/ directory
just build-engine # build engine
just build-viz # build visualizer
or without just:
mkdir -p build/debug
odin build engine -vet -strict-style -debug -out:build/debug/crocus_engine-debug
odin build visualizer -vet -strict-style -debug -out:build/debug/crocus_viz-debug
1. socat bridge
the engine talks to Plover via a Unix socket. socat bridges it to a serial port:
# pick a path in your home dir if you want to use it without sudo:
socat -d -d pty,raw,echo=0,link=$HOME/storage/temp/dev/tty-plover UNIX-LISTEN:/tmp/wowserial,perm=0666,fork
2. engine
just run-engine
- PgUp toggles steno mode (keyboard grabbed) / transparent mode (ungrabbed)
- Escape exits
3. Plover
configure Plover's serial machine to connect to the path from step 1 (e.g. /home/vinnu/storage/temp/dev/tty-plover).
4. visualizer (optional)
just run-viz
keyboard mapping
| laptop key | steno key |
|---|---|
| A | # |
| S | S- |
| D | * |
| C | A- |
| V | O- |
| N | -E |
| M | -U |
| I | -T |
| K | -S |
| L | -D |
| ; | -Z |
trackpad mapping
- basically a translation of controller_plover onto a trackpad
- 6 segment directions: Up, Down, LeftUp, LeftDown, RightUp, RightDown
- entering a direction toggles the corresponding steno key
Left side
-----------------
/ \ / \
/ \ P- / \
/ \ / \
/ T- \_______/ H- \
/ / \ \
/ / \ \
+---------| |---------+
\ \ / /
\ \ / /
\ K- \_____/ R- /
\ / \ /
\ / W- \ /
\ / \ /
-----------------
Right side
-----------------
/ \ / \
/ \ -P / \
/ \ / \
/ -F \_______/ -L \
/ / \ \
/ / \ \
+---------| |---------+
\ \ / /
\ \ / /
\ -R \_____/ -G /
\ / \ /
\ / -B \ /
\ / \ /
-----------------
Credits
- Plover thanks for this amazing project!
- controller_plover this project and my journey into steno may never have started without it!
- TwoPhoneSteno for showing just hackable Linux is and how easy it is emulate a TX Bolt device