How naryuki/dextop works
Dextop turns an Android phone into a desktop workspace on a virtual display, with privileged system access handling display, window, and input operations. The documented main path is launching Dextop, creating/configuring a display session, then using its launcher and workspace layouts to place and interact with apps. Additional product branches cover multi-display and foldable displays, laptop input, diagnostics/recovery, and Android Auto companions. Source excerpts are partial; unsampled capabilities are represented only where the tree supports a relevant module, and uncertain wiring is omitted.
Main entry points: DesktopActivity.kt Desktop activity · PrivilegedInputClient.kt Input client · MirrorService.kt Display session · MainActivity.kt Main activity
Components 20
Desktop session
- Main activity
android/app/src/main/kotlin/moe/n4tsu/dextop/MainActivity.kt - Desktop launcher
android/app/src/main/kotlin/moe/n4tsu/dextop/DextopLauncherActivity.kt - Display session
android/app/src/main/kotlin/moe/n4tsu/dextop/MirrorService.kt - Desktop activity
android/app/src/main/kotlin/moe/n4tsu/dextop/DesktopActivity.kt
Workspace and displays
- App catalog
android/app/src/main/kotlin/moe/n4tsu/dextop/AppCatalog.kt - Workspace layout
android/app/src/main/kotlin/moe/n4tsu/dextop/WorkspaceLayoutEngine.kt - Display topology
android/app/src/main/kotlin/moe/n4tsu/dextop/DisplayTopologyController.kt - Cover display
android/app/src/main/kotlin/moe/n4tsu/dextop/CoverDisplaySessionController.kt
Input and privilege
- Input client
android/app/src/main/kotlin/moe/n4tsu/dextop/input/PrivilegedInputClient.kt - Privileged input
android/app/src/main/kotlin/moe/n4tsu/dextop/input/PrivilegedInputService.kt - Input dispatch
android/app/src/main/kotlin/moe/n4tsu/dextop/InputDispatcher.kt - Privilege runtime
android/app/src/main/kotlin/moe/n4tsu/dextop/privilege/DistributionPrivilegeBootstrap.kt
Companions and support
- Session recovery
android/app/src/main/kotlin/moe/n4tsu/dextop/HomeLaunchRecovery.kt - Device diagnostics
android/app/src/main/kotlin/moe/n4tsu/dextop/DeviceDiagnostics.kt - Car relay
android/app/src/main/kotlin/moe/n4tsu/dextop/CardexRelayService.kt - Driving companion
android/cardex/src/main/kotlin/moe/n4tsu/cardex/DrivingCarAppService.kt - Parking companion
android/cardex/src/main/kotlin/moe/n4tsu/cardex/CarDexActivity.kt
Other components
- Phone user
- External display
- Android Auto host
Connections 21
- Phone user → Main activity: opens
- Main activity → Desktop launcher: launches
- Phone user → Desktop launcher: selects apps
- Desktop launcher → App catalog: lists apps
- Main activity → Display session: starts session
- Display session → Desktop activity: presents display
- Desktop activity → Workspace layout: positions windows
- External display → Display session: provides display
- Desktop activity → Display topology: manages displays
- Phone user → Cover display: switches display
- Desktop activity → Input client: routes input
- Input client → Privileged input: calls
- Input dispatch → Input client: dispatches events
- Input client → Privilege runtime: uses access runtime
- Phone user → Session recovery: resumes session
- Phone user → Device diagnostics: requests report
- Android Auto host → Driving companion: starts driving UI
- Android Auto host → Parking companion: opens parked UI
- Driving companion → Car relay: sends controls
- Parking companion → Car relay: sends controls
- Car relay → Display session: starts display session