- Replaced libswipetype with MornsGestureEngine — ported from
FlorisBoard's StatisticalGlideTypingClassifier (Apache 2.0)
- Uses combined shape + location Gaussian probability scoring
(SHAPE_STD=22.08, LOCATION_STD=0.5109) with 200-point sampling
- Gesture activates instantly on key change with velocity-based detection
- Trail draws from initial touch through entire glide
- Added Kotlin plugin to build (v2.1.20)
- 2000 word dictionary from cracklib-small
- Removed libswipetype dependency from glide flow
(libswipetype still present as submodule but unused)
submodule vendor/libswipetype now points to
http://10.0.1.49:3010/harley/libswipetype.git (commit e4aef2f)
instead of upstream github.com/libswipetype/libswipetype.
Key change: removed [0,1] bounding-box normalization from both
PathProcessor and IdealPathGenerator. Paths now stay in original dp
coordinates so DTW measures actual keyboard distance between keys.
- Moved gesture detection from Pointers (which didn't know key positions)
to Keyboard2View.onTouch() which has getKeyAtPosition()
- Tracks finger movement across letter keys using actual key positions
- Ignores corner-swipe mechanism — uses raw x,y + hit-testing
- Threshold: 3+ different letter keys visited → triggers glide mode
- Added SwipeTypeAdapter lifecycle in Keyboard2 (init, shutdown)
- Added swipe adapter to Pointers via Keyboard2View setter
- Gesture detection: tracks distinct letter keys visited (3+ triggers glide)
- On lift, processes gesture and commits top candidate via InputConnection
- Collects touch points during active glide gesture
- Engine loads en_us_sample.glide dictionary on startup
- '!' moved to bottom-left of '1' (q sw), removed from e ne
- Dash on o sw, underscore on o se
- ':' on l sw (replaced backslash)
- Bottom row: Ctrl | Alt | Space | Fn | Enter
- Fn moved right of space bar, corner swipes cleaned up
- Voice typing moved from Enter to Fn bottom-left (key6)
- Clipboard on Ctrl bottom-left (key6)
- New 'tux' key: META modifier displayed as Tux penguin (0xE002)
from special_font/002.svg, toggleable (latch+double-tap lock)
- Enter only has action corner (key2), no voice typing
- Config (settings) kept on Fn up-swipe (key1)
- Top row numbers moved from ne (top-right) to nw (top-left) per request
- Existing nw symbols (tilde, !) shifted to ne positions
- Shift restored in z-row (normal key width)
- Backspace now normal key width (no more 1.5x)
- Fn key now has corner swipes: config, change_method, emoji, switch_numeric
- Bottom row: Fn | Ctrl | Alt | Space | Enter
- Joypad no longer uses displacement-accumulation (useless on space bar).
- After long-press space bar, determine direction from finger offset vs origin.
- Direction locks, fires one cursor event, then auto-repeats at
longPressInterval rate via _longpress_handler.
- Changing finger direction updates the lock (fires in new dir immediately).
- Returning finger to dead zone stops auto-repeat.
- Removed SPEED_VERTICAL_MULT and startup threshold:space bar has no room.
- Space bar icon changed to 0xE001 (4-directional arrows).
- Space bar long-press now activates Joypad cursor mode
(long-press detected in handleLongPress before key-repeat)
- Removed separate cursor_joystick key from bottom row
- Widened space bar (4.2 → 6.0) to compensate
- Bottom row: Shift | Fn | Ctrl | Alt | Space (joypad on long-press) | Enter
- Removed redundant shift key from latn_qwerty_us.xml third row
(shift is now on the bottom row only)
- Rebuilt assets/special_font.ttf to include 001.svg (4-directional
joystick icon at codepoint 0xE001)