Skip to main content

VNC Remote Desktop

A VNC session connects to virtual machine consoles, lab environments, or lightweight graphical desktops serving RFB. It shares the remote desktop pane with RDP, along with saved connections, recents, tabs, and split panes.

VNC protocol decoding runs in a separate helper process. When running from source you must build the helper first, or connections fail with HelperMissing — see Development Setup.

Connection configuration​

Basics​

FieldDescription
Host / PortRFB service address; default port 5900
VNC passwordPassword used by classic VNC Authentication

Security mode​

ModeBehavior
AutoNegotiates from the security types the server advertises (default)
NoneNo authentication
VNC passwordClassic VNC Authentication

Classic VNC Authentication only uses the first 8 bytes of the password. NyaTerm rejects passwords longer than 8 bytes rather than silently truncating them, so you never believe a longer password took effect.

Display​

Scale is Fit (default), Actual size, or Stretch.

Clipboard​

Clipboard is on by default and syncs Latin-1 text. The limits come from the RFB protocol itself:

  • Latin-1 text only; non-Latin-1 characters are rejected
  • At most 1 MiB per transfer

This limit is deliberate — it keeps binary or oversized content out of the VNC protocol path.

Session behavior​

  • Shared session — lets other viewers stay connected instead of disconnecting them
  • View only — disables keyboard and pointer input

Both gates are enforced in the helper process, not merely hidden in the UI.

Reconnect​

Reconnect is on by default and retries a limited number of times on transient transport failures, defaulting to 5. The connect timeout is 15 seconds and the handshake timeout is 30 seconds.

Transport and encoding support​

Current boundaries:

  • Transport is direct TCP only — no TLS / VeNCrypt — and cannot be carried over a proxy or SSH tunnel
  • Encodings are advertised in the order DesktopSizePseudo, ZRLE, Tight, Raw. Tight JPEG is decoded in the helper into a uniform RGBA framebuffer, and Raw remains the stable fallback
  • CopyRect, cursor pseudo-encodings, and remote resize are not supported

Interoperability status​

ScenarioSecurity modeEncodingsStatus
Scripted RFB 3.8 fixtureNoneZRLE / Tight / Tight JPEG → RGBACovered by automated tests
Scripted RFB 3.8 fixtureVNC passwordZRLE / Tight / Tight JPEG → RGBACovered by automated tests
TigerVNCNone / VNC passwordRaw / ZRLE / Tight / JPEGPending real-server validation
TightVNCNone / VNC passwordRaw / Tight / JPEGPending real-server validation
x11vnc / LibVNCServerNone / VNC passwordRaw / ZRLE / Tight / JPEGPending real-server validation
QEMU / KVM VNCNone / VNC passwordRaw / ZRLE / Tight / JPEGPending real-server validation

Automated coverage is against a scripted RFB 3.8 fixture. Real-server interoperability is still being validated; when reporting a problem, include the server implementation and version.

Capability boundaries​

Like RDP, VNC sessions do not offer terminal command history, the SFTP file explorer, SSH proxy / jump hosts, or remote host monitoring.

Error kinds​

KindCommon cause
AuthenticationWrong password, or VNC password mode selected with no password set
ProtocolThe server's RFB version or security type is unsupported
EncodingAn undecodable encoding arrived, such as an unnegotiated pseudo-encoding
TransportPort unreachable, connection refused, or the link dropped
ClipboardClipboard content exceeded the Latin-1 or 1 MiB limit
HelperMissingThe helper executable is not beside the application
HelperCrashedThe helper process exited during a live session