Trackpad for foldables. Swipe in from a screen edge, steer a cursor anywhere on the display, tap without shifting your grip.
Foldables and big phones keep getting taller. Your thumb does not. OnePaw puts a trackpad under the thumb you are already holding the phone with, so the far corner stops being a two-handed operation.
It is built as an accessibility tool: if limited hand mobility, a limb difference, or an arm in a cast makes a large screen hard to use one-handed, OnePaw puts all of it back within reach.
One edge, three strokes. Swipe in from an edge handle and the direction picks the tool:
| Stroke | Result |
|---|---|
| Straight across | Back — with the system back animation, or instant if you prefer |
| Deflect up | Cursor: steer with amplified movement, release to tap |
| Deflect down | Trackpad: floating pad that stays up until you dismiss it |
With the cursor up, holding still at the target presses and holds, and moving again while held drags, scrolls, and selects text — all with the one thumb. The cursor reappears where you left it, so repeated reaches to the same place stay quick.
The trackpad taps to click, has arrows for scrolling and jumping the cursor across the screen, and parks itself out of the way when you are done.
Every posture gets its own configuration: cover screen, unfolded, half opened. Trigger strips can live on either edge, move up and down the edge, and have their own sensitivity, because a strip that falls under your thumb folded is nowhere near it unfolded.
OnePaw needs an accessibility service, because injecting a touch into another app is not something a normal Android app is allowed to do. That is a large permission, so the app is built to deserve it:
- It never reads the screen. The service declares no accessibility event types and does not
request
canRetrieveWindowContent. - It cannot talk to the network. There is no
INTERNETpermission in the manifest. - It stores nothing but your settings, on the device.
The only permission held is VIBRATE, for haptic feedback you can switch off.
OnePaw is on Google Play, free with no ads or tracking. Signed releases are also attached to GitHub Releases.
Or build it yourself:
git clone https://github.com/LykosAI/OnePaw.git
cd OnePaw
./gradlew :app:assembleDebug
adb install app/build/outputs/apk/debug/app-debug.apkThen open OnePaw and follow the first-run setup, which walks through enabling the service in Settings → Accessibility → OnePaw.
Requires Android 8.0 (API 26) or newer. Available in English and 日本語, following the Android 13+ per-app language setting.
- JDK 21
- Android SDK 37
- Gradle wrapper is included; no local Gradle install needed
./gradlew :app:testDebugUnitTest # the gesture logic is covered by plain JVM tests
./gradlew :app:assembleDebugThe load-bearing decisions and their reasoning live in docs/architecture.md: why the whole app is an accessibility service, why the cursor layer is untouchable, how a drag is streamed as a chain of continued strokes, and why reach mode is not in v1.
- Edge trigger strips, per-posture
- Cursor with tap, long press and held-press drag
- Floating trackpad with scroll, jump and back gestures
- Fold posture detection
- First-run onboarding and accessibility disclosure
- Google Play release
- Cursor styling beyond size
- Reach mode, if a mechanism turns up that does not need an adb grant (ADR-9)
- F-Droid release
One Hand Operation+ is Samsung-only and closed. Quick Cursor works well but paywalls features and is not open source. EdgeGesture needs Xposed. OnePaw aims to be the one that is free, open, and built for a fold.
GPL-3.0-or-later. Copyleft on purpose: the point of this app is that a one-handed cursor should not be behind a paywall, and that stays true of anything built from it.





