Context
Input improvements were planned as Phase 4 of the rewrite. A swipe experiment was attempted but removed after poor on-device behavior. Touch transforms currently rely on environment variables (SKEETS_REWRITE_TOUCH_MIRROR_X, SKEETS_REWRITE_TOUCH_PROTOCOL) set by the launcher rather than a built-in device table.
Sub-tasks
Swipe & long-press detection
Device-aware touch transforms
References
- KOReader per-device tables:
frontend/device/kobo/device.lua — explicit touch_switch_xy, touch_mirrored_x, touch_mirrored_y per model
- FBInk touch flags:
FBInkState.touch_swap_axes, touch_mirror_x, touch_mirror_y
- Current input layer:
src/platform/input.h/cpp
Context
Input improvements were planned as Phase 4 of the rewrite. A swipe experiment was attempted but removed after poor on-device behavior. Touch transforms currently rely on environment variables (
SKEETS_REWRITE_TOUCH_MIRROR_X,SKEETS_REWRITE_TOUCH_PROTOCOL) set by the launcher rather than a built-in device table.Sub-tasks
Swipe & long-press detection
TOUCH_SWIPE_UP,TOUCH_SWIPE_DOWN,TOUCH_SWIPE_LEFT,TOUCH_SWIPE_RIGHTto touch event typesTOUCH_LONG_PRESSevent: emit when DOWN held >500ms without movement beyond tap thresholdDevice-aware touch transforms
device_kobo_model_string()) for axis swap/mirror flagsFBInkState.touch_swap_axes,touch_mirror_x,touch_mirror_yflags as the primary sourceReferences
frontend/device/kobo/device.lua— explicittouch_switch_xy,touch_mirrored_x,touch_mirrored_yper modelFBInkState.touch_swap_axes,touch_mirror_x,touch_mirror_ysrc/platform/input.h/cpp