The path

How LinkLite drives a DisplayLink dock

Updated

LinkLite creates one macOS virtual display per dock monitor, reads the parts of that display that changed, encodes them with the DisplayLink wavelet codec, and sends them over an encrypted USB session. The dock draws the pointer from a few bytes of position data. The pixels go to the dock. They do not go to a server.

The steps

  1. A USB 3 link to a DisplayLink dock. LinkLite does not install a kernel extension.
  2. One virtual display per monitor, created with CoreGraphics’ private virtual-display classes. There is no public display-driver framework on Apple silicon.
  3. ScreenCaptureKit reads changed areas of those virtual displays. That is why macOS asks for Screen Recording.
  4. Changed 64×16 tiles are encoded and sent on the encrypted session. Settled areas are not resent every frame.
  5. The dock draws the picture and the pointer.

The protocol work comes from Vino, the open-source DisplayLink protocol research by Mike Lothian and contributors, used under GPL-2.0-or-later. LinkLite adds the macOS side: virtual displays, capture, pointer tracking, and the menu-bar app. Vino’s write-up.

Why Screen Recording is required

macOS will not let an ordinary app publish a display. Display kernel extensions no longer work on Apple silicon. Every USB-display app on current macOS, DisplayLink Manager included, creates a virtual display and reads its pixels back. ScreenCaptureKit is behind the Screen Recording permission. The system prompt says Screen & System Audio Recording. LinkLite does not capture audio. The prompt is the system’s name for the permission.

The permission, once granted, lets the process read any display. The app’s own check is what limits the stream. LinkLite refuses to start capture on the built-in display, or on a dock display that is mirroring it. If a dock monitor is cloned from the laptop screen, turn mirroring off in System Settings. Captured pixels are compressed in memory and sent over USB. They are not written to disk.

The global mouse monitor reports pointer position. It does not read keystrokes. The privacy page is the full account of what stays on the Mac.

What a dock is allowed to be

Connect a dock you trust to receive the pixels on its monitors. The HDCP 2.2 handshake checks that the receiver has a key. It does not check that key against a manufacturer certificate. It is not proof of who made the device. Protected video playback is not supported either.

A monitor timing outside 480–5120 pixels on a side, or outside 1–240 Hz, is not programmed and does not become a virtual display. Names the monitor reports are reduced to printable ASCII before they are shown or logged.

Docks

Humanscale M/Connect 2Historically tested with two 4K monitors at 60 Hz. Not re-qualified after the 0.3.7 engine changes, including 0.3.17.
Dell D6000 and other DL-6xxxSame protocol family. Not individually certified.
DL-3xxx and DL-7400Recognized by the protocol core. Untested on macOS.
MacsApple silicon, macOS 14 or later. Intel is not supported.

Tried another dock? File a dock report, whether it worked or not.

What it will not do

Download for macOS