DeskControl
1.3.13 · GitHub
More about this app
Turns your phone into a touchpad and keyboard for a single app running on a wired external display
DeskControl
DeskControl turns your phone into a touchpad and motion mouse for a single app running on a wired external display. It supports Android 11+ and targets Android 16 (API 36). It uses an AccessibilityService to render the cursor and inject input.
Highlights
- Launch any installed app onto a wired external display.
- Control the external app with a phone touchpad (move, click, drag).
- Per-display cursor overlay with auto-hide and tuning controls.
- Clean teardown when the external display disconnects.
Requirements
- Android 11+ (minSdk 30).
- Android 16 target SDK (API 36).
- Wired Type-C external display.
- Accessibility service enabled (required for cursor and input injection).
Quick Start
- Connect the wired external display.
- Open Touchpad, review the accessibility disclosure, and enable the DeskControl accessibility service.
- Pick an app to launch on the external display.
- Open Touchpad and control the external app.
Touchpad Usage
- Move: slide one finger in the touchpad area.
- Click: tap once in the touchpad area.
- Drag: touch and hold, then slide (vibration confirms).
- Auto-dim: after 10s inside the touchpad area, the screen dims. It restores when you tap outside the touchpad area or leave the screen.
- Back: when the touchpad area is active, Back is forwarded to the external app.
- Exit: tap the top-left back arrow, or tap outside the touchpad area and then press Back.
Build
Two distribution flavors are maintained from the same source tree:
play: packagecom.suspace.deskcontrol, Google Play Billing, supporter icons, no Shizuku.direct: packagecom.deskcontrol, optional Shizuku enablement, no Billing or alternate icon assets.
./gradlew assemblePlayDebug
./gradlew assembleDirectDebug
Install the APK:
adb install -r app/build/outputs/apk/play/debug/app-play-debug.apk
adb install -r app/build/outputs/apk/direct/debug/app-direct-debug.apk
Settings
- Cursor size, opacity, color, and auto-hide delay.
- Touchpad sensitivity, acceleration, jitter, smoothing, and scroll step.
- Keep screen on while using touchpad.
- Auto-dim touchpad after 10 seconds (per-window brightness only).
Project Layout
DisplaySessionManager: external display tracking and selection.AppLauncher: launch routing and failure diagnostics.TouchpadActivity: touchpad UI and input logic.ControlAccessibilityService: cursor overlay, user-directed gesture injection, external-window focus, and Back forwarding.CursorOverlayView: cursor rendering and animation.DiagnosticsActivity: status and recent failure history.
Permissions and Notes
- Uses
AccessibilityServicefor user-directed gesture injection, external-window focus, Back forwarding, and the Motion Mouse calibration key. - Cursor overlay uses
TYPE_ACCESSIBILITY_OVERLAYand is non-touchable. - The overlay is attached to the external display via
createWindowContext. - See
docs/google-play-release.mdfor the Play Console declaration checklist.
Limitations
- Android 11+ only.
- Requires device support for secondary-display activities.
- Some apps do not allow launch on a secondary display.
License
See LICENSE.
How Shizuku is used
Can automatically turn on its accessibility service via `settings put` through Shizuku.
This is an AI-assisted analysis of Shizuku-related usages in the app's public source code. It is best effort, so it may not catch every single usage.
How this app uses Shizuku
Through Shizuku, DeskControl can turn on the access it needs for touchpad and keyboard control without manual system setup.
- Enable accessibility access: the app adds its own accessibility service to the enabled services list and switches on the system accessibility flag, applied with the
settings putshell commands through Shizuku.
Android APIs or commands used
settings put secure enabled_accessibility_servicessettings put secure accessibility_enabled
Notable details
The same access can still be turned on manually in the system accessibility settings when Shizuku is not used. The Shizuku option is included only in the direct distribution of the app.
Changelog
What's new for version 1.3.13
DeskControl 1.3.13 consolidates the recent external-display control work into the main branch.
Highlights:
- Adds shared Volume Up/Down shortcuts and projected HUD feedback to Touch and Motion modes.
- Supports hold-to-calibrate/center, hold-to-lock, and hold-to-unlock with interactive tutorial practice.
- Keeps the hardware-key HUD visible above the interactive tutorial scrim.
- Recalibrates Motion Mouse immediately after Volume Up unlock restores focus.
- Improves continuous gesture reliability, blackout behavior, diagnostics, and Android 16 compatibility.
- Keeps distribution features isolated by flavor: this GitHub/Direct APK includes Shizuku and does not include Google Play Billing, supporter icons, or launcher-icon switching.
Asset:
DeskControl-1.3.13-GitHub.apk— outside-Google-Play Direct build (com.deskcontrol).
SHA-256: 9ad123feb78026a4b16394723f47e3e60ef1378d904e281bf22f7010c3106d39
Permissions
3 permissions requested