Skip to content

Repository files navigation

OnePaw: trackpad cursor for one-handed reach

OnePaw

Trackpad for foldables. Swipe in from a screen edge, steer a cursor anywhere on the display, tap without shifting your grip.

Get it on Google Play

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.

Cursor Trackpad One edge, three strokes Settings Private by design Open source

How it works

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.

Privacy

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 INTERNET permission 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.

Install

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.apk

Then 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.

Build requirements

  • 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:assembleDebug

Design

The 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.

Roadmap

  • 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

Prior art

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.

License

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.

About

OnePaw: trackpad for foldables. One-handed cursor, open source.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages