14 Commits
Author SHA1 Message Date
harley 0c3dd42354 Integrate FlorisBoard-derived gesture engine (MornsGestureEngine)
Check generated files / Layout list (push) Has been cancelled
Check generated files / Layout warnings (push) Has been cancelled
Check generated files / Compose key data (push) Has been cancelled
Make Apk CI / Build-Apk (push) Has been cancelled
- 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)
2026-07-07 03:59:47 -04:00
harley 55a7bd2643 Point libswipetype submodule to our Gitea fork with absolute-coordinate DTW
Check generated files / Layout list (push) Has been cancelled
Check generated files / Layout warnings (push) Has been cancelled
Check generated files / Compose key data (push) Has been cancelled
Make Apk CI / Build-Apk (push) Has been cancelled
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.
2026-07-07 03:41:21 -04:00
harley 292788aafa Fix glide detection: track keys via getKeyAtPosition in view
Check generated files / Layout list (push) Has been cancelled
Check generated files / Layout warnings (push) Has been cancelled
Check generated files / Compose key data (push) Has been cancelled
Make Apk CI / Build-Apk (push) Has been cancelled
- 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
2026-07-07 03:10:58 -04:00
harley afbc926cde Wire swipe engine into lifecycle + basic gesture detection
Check generated files / Layout list (push) Has been cancelled
Check generated files / Layout warnings (push) Has been cancelled
Check generated files / Compose key data (push) Has been cancelled
Make Apk CI / Build-Apk (push) Has been cancelled
- 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
2026-07-07 03:07:51 -04:00
harley 23dc605bf0 Add UnexpectedKeyboardSwipeAdapter + sample dictionary
Check generated files / Layout list (push) Has been cancelled
Check generated files / Layout warnings (push) Has been cancelled
Check generated files / Compose key data (push) Has been cancelled
Make Apk CI / Build-Apk (push) Has been cancelled
- Created UnexpectedKeyboardSwipeAdapter.java implementing SwipeTypeAdapter
- Stub getKeyboardLayout() with QWERTY key positions
- Copied en_us_sample.glide from libswipetype sample-app
- Builds and links: libswipetype native library loads via JNI
- Next: wire gesture detection in Pointers.java + Keyboard2 lifecycle
2026-07-07 03:03:48 -04:00
harley 149373226a Integrate libswipetype as submodule (swipe typing engine)
Check generated files / Layout list (push) Has been cancelled
Check generated files / Layout warnings (push) Has been cancelled
Check generated files / Compose key data (push) Has been cancelled
Make Apk CI / Build-Apk (push) Has been cancelled
- Added vendor/libswipetype as git submodule
- Included swipetype-android as Gradle module in settings.gradle.kts
- Added implementation project dependency in build.gradle.kts
- Updated swipetype-android build.gradle to use NDK 27 / SDK 36
- Builds and links successfully via CMake + NDK

Next: wire gesture touch detection, trail rendering, and suggestion integration
2026-07-07 03:01:07 -04:00
harley 939e8da252 Save state before swipe engine work
Check generated files / Layout list (push) Has been cancelled
Check generated files / Layout warnings (push) Has been cancelled
Check generated files / Compose key data (push) Has been cancelled
Make Apk CI / Build-Apk (push) Has been cancelled
2026-07-07 02:59:52 -04:00
harley e2d5b47c7c Layout overhaul: symbol moves, bottom row reorg, Tux meta key
Check generated files / Layout list (push) Has been cancelled
Check generated files / Layout warnings (push) Has been cancelled
Check generated files / Compose key data (push) Has been cancelled
Make Apk CI / Build-Apk (push) Has been cancelled
- '!' 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)
2026-07-07 02:18:32 -04:00
harley 96966332ce Bump long-press timeout 600→700ms
Check generated files / Layout list (push) Has been cancelled
Check generated files / Layout warnings (push) Has been cancelled
Check generated files / Compose key data (push) Has been cancelled
Make Apk CI / Build-Apk (push) Has been cancelled
2026-07-07 02:08:47 -04:00
harley b034191a1c Move numbers to left side of top row, restore shift next to Z, add config to Fn
Check generated files / Layout list (push) Has been cancelled
Check generated files / Layout warnings (push) Has been cancelled
Check generated files / Compose key data (push) Has been cancelled
Make Apk CI / Build-Apk (push) Has been cancelled
- 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
2026-07-07 02:02:35 -04:00
harley b86481461a Rewrite joypad as direction-lock + auto-repeat
Check generated files / Layout list (push) Has been cancelled
Check generated files / Layout warnings (push) Has been cancelled
Check generated files / Compose key data (push) Has been cancelled
Make Apk CI / Build-Apk (push) Has been cancelled
- 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).
2026-07-07 01:55:34 -04:00
harley 5fbd21c7d9 Move joypad to space bar long-press, remove separate joystick key
Check generated files / Layout list (push) Has been cancelled
Check generated files / Layout warnings (push) Has been cancelled
Check generated files / Compose key data (push) Has been cancelled
Make Apk CI / Build-Apk (push) Has been cancelled
- 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
2026-07-07 01:49:56 -04:00
harley b6618444a2 Fix: remove shift from z-row, rebuild special font with joystick icon
Check generated files / Layout list (push) Has been cancelled
Check generated files / Layout warnings (push) Has been cancelled
Check generated files / Compose key data (push) Has been cancelled
Make Apk CI / Build-Apk (push) Has been cancelled
- 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)
2026-07-07 01:45:14 -04:00
harley 4a05bf54d5 Add 2D joypad cursor slider + custom bottom row layout
Check generated files / Layout list (push) Has been cancelled
Check generated files / Layout warnings (push) Has been cancelled
Check generated files / Compose key data (push) Has been cancelled
Make Apk CI / Build-Apk (push) Has been cancelled
2026-07-07 01:38:43 -04:00