Trackpad controls for the Zinwa Q25, an Android restomod of the BlackBerry Classic Q20.
This project is a fork of shroyertech/Q25TrackpadCustomizer, based on upstream release v1.4.2.
- Mouse, keyboard, scroll wheel, and direct touch-scroll modes
- Mouse-mode scroll clutch: hold the trackpad button and move to scroll
- Optional clutch auto-scroll with adjustable speed
- Independent vertical and horizontal clutch controls
- Separate cursor, scroll wheel, and direct-scroll sensitivity settings
- Optional trackpad-button mode switching and mouse tap-to-click
- Configurable quick-toggle mode cycle
- Persistent mode notification
- Settings backup and restore
The fork uses global modes rather than per-app mode rules.
Install the latest APK from the Releases page.
- Zinwa Q25 running Android 14 or later
- Android Accessibility Service enabled for the app
- Root access through KernelSU, Magisk, or an equivalent
suprovider
Root is used to:
- read and write
/proc/touchpad/touchpad_mode - read the trackpad input device under
/dev/input - create virtual mouse, keyboard, and touchscreen devices through
/dev/uinput - start and stop the bundled native input helper
- Install the APK from the Releases page.
- Open the app and grant root access when requested.
- Enable the accessibility service using Settings > Initial setup > Accessibility service setup.
- If Android blocks the service, open the app's system App Info page, choose Allow restricted settings, then enable the service again.
- Choose the active trackpad mode at the top of the app's Settings page.
Enable Mouse mode scroll clutch in Settings, then use it from Mouse mode:
- Press and release without moving to click.
- Press and hold the trackpad button, then move on the trackpad to scroll instead of moving the cursor.
- Keep holding and move in either direction to continue scrolling.
- Release the button to stop scrolling and return to normal cursor movement.
- Enable auto-scroll if scrolling should continue while the button remains held.
- Horizontal scrolling and direction inversion are optional.
Trackpad-button mode switching and the scroll clutch are mutually exclusive because both use the same physical press.
The Quick Toggle shortcut can be triggered by the launcher shortcut, the optional trackpad-button setting, or a broadcast from an automation app such as Key Mapper.
Broadcast action:
tech.shroyer.q25trackpadcustomizer.custom.action.QUICK_TOGGLE
Package:
tech.shroyer.q25trackpadcustomizer.custom
Receiver:
tech.shroyer.q25trackpadcustomizer.QuickToggleReceiver
The active-mode selector changes the current and default mode immediately. The Quick Toggle checkboxes only choose which modes the shortcut cycles through.
The project builds with Android Studio or the Gradle wrapper. The native helper requires the Android NDK.
./gradlew :app:assembleDebugThe debug APK is written to app/build/outputs/apk/debug/app-debug.apk.
See LICENSE.
- Original project: shroyertech/Q25TrackpadCustomizer
- App icon by WhoCon from Flaticon