Skip to content

Graphical Display

DroidVM provides three ways to access a virtual machine's graphical interface: VNC Display, Native Display, and External Display Casting. Configure them in Create/Edit VM → Display tab.

Display Method Comparison

MethodPerformanceUse CasePrerequisites
VNC DisplayMediumGeneral purpose, best compatibilityVNC enabled
Native DisplayHighMaximum smoothnessGPU enabled + Virtio-GPU (GfxStream)
External Display CastingMediumLarge screen / desktop usageVNC enabled + external monitor

VNC Display

Once VNC is enabled, tap "Display" on the VM detail page to connect using the built-in VNC client. It automatically reconnects after a disconnect (up to 5 times).

VNC Display

📷 Screenshot placeholder: VNC display interface with floating menu

Top Bar Menu

  • Keyboard: Show the soft keyboard
  • Rotate Screen: Switch between landscape and portrait
  • Reconnect: Manually reconnect
  • Open with External VNC App: Launch a third-party VNC client
  • View URL: Show the local + remote vnc:// addresses and password, which can be copied (convenient for connecting from VNC software on a computer)

Input Modes

The floating button toggles between Touch Mode and Mouse Mode:

Touch Mode

  • Tap = left mouse button
  • Tap the screen to bring up the soft keyboard

Mouse Mode (trackpad-style)

GestureAction
One-finger moveMove the cursor
One-finger tapLeft button
Two-finger tapRight button
Three-finger tapMiddle button
Double tapDouble click
Two-finger pinchZoom / rotate / pan the view
Three-finger swipe up/downScroll wheel

Extra Keys Panel

Provides sticky modifier keys such as Ctrl / Alt / Shift / Win: a single tap takes effect once, a long press locks it. Combined with the soft keyboard, you can send key combinations (e.g. Ctrl+C).


Native Display

Native Display hands the Android Surface directly to crosvm for rendering, skipping the VNC encoding stage, so its performance and latency are significantly better than VNC.

Requirements: In the Display tab, enable GPU, set the renderer to GfxStream, set the display backend to Virtio-GPU, then check Enable Native Display.

Native Display

📷 Screenshot placeholder: Native display interface

  • When you open the display, the app requests a display handle from the daemon, then automatically starts the virtual machine
  • Touch and keyboard are forwarded directly via evdev, with extremely low latency
  • The floating menu provides: keyboard, extra keys, fullscreen; the window scales to the guest's aspect ratio

Soft Keyboard

If the soft keyboard does not appear under Native Display, you can tap the "Keyboard" button in the floating menu to bring it up manually.


External Display Casting

Using the Android Presentation API, the virtual machine's VNC output is cast to an external monitor (USB Type-C / HDMI / wireless casting), while the phone itself acts as a trackpad controller.

External Display Casting

📷 Screenshot placeholder: External display casting + phone trackpad

  • A "Select Display" dialog pops up when entering
  • The phone screen becomes a trackpad: supports cursor movement, left / middle / right buttons, and scroll wheel
  • Supports USB HID input capture: after connecting a physical keyboard and mouse, their input can be captured directly and forwarded to the virtual machine
  • When the external display is unplugged, it shows "Display disconnected" and closes

This method is especially suited to using your phone as a portable host: an external screen + a Bluetooth/USB keyboard and mouse give you an experience close to a desktop computer.

Released under the GNU GPL v3.0 License