rkdestreamA remote desktop in your browser

This server runs a full KDE Plasma desktop that nobody sits in front of, and streams it to a browser tab: picture, sound, keyboard, mouse and clipboard. There's nothing to install on your side.

Getting in

There are no passwords here. Access is handed out by someone who can log in to the server over ssh:

  1. On the server, they run rks-web, optionally with --name followed by your name. It prints a link.
  2. You open that link here. It works once, and only within 10 minutes, and it removes itself from the address bar as soon as it's used.
  3. That signs this browser in. It stays signed in, and every visit keeps it so for another 30 days. You won't need a link again.

The name in the link is how the others on the same desktop see you. rks-web revoke on the server signs every browser out at once.

If you got here without a link, or your link was already used or has expired, ask for a new one.

How it works

  1. An offscreen desktopKWin, the Plasma compositor, draws on a virtual monitor sized to your screen. No physical display is attached.
  2. Capture, on the GPUEach new frame is handed over as a GPU buffer (DMA-BUF) and never passes through main memory.
  3. Hardware encodingThe graphics card's encoder (NVENC) compresses it as HEVC 4:4:4. That keeps full colour detail, so small text stays sharp. H.264 is the fallback.
  4. One connectionFrames, sound and input share a single WebSocket. The browser acknowledges each frame, so the server never sends faster than it can show them.
  5. Decoding hereYour browser decodes with WebCodecs, on its own GPU, and draws straight onto the page.

Sound goes as Opus, in 10 ms packets, with about 40 ms of buffering. Keys and mouse go back the same way. In fullscreen the whole keyboard is captured: Alt+Tab, Esc and the Windows key go to the remote desktop, not to your computer.

Sharing a desktop

Several browsers can be on the same desktop at once, and all of them are in control. Each one sees the others' pointers, labelled with their names. Someone on a slow connection skips frames rather than falling behind or slowing everyone else down.

Sessions

Closing the tab doesn't end anything: the desktop keeps running, and you come back to it exactly as you left it. It ends only when you log out from the desktop's own menu.

Once you're in

  • Ctrl+Shift+F11 toggles fullscreen. Plain F11 goes to the remote desktop.
  • Ctrl+Alt+End sends Ctrl+Alt+Del.
  • Copy and paste work in both directions.
  • A bar at the top centre has Fullscreen, Sound on/off, Stats and Disconnect.

What you need

A recent Chrome or Edge. Your GPU should be able to decode HEVC; otherwise choose H.264 when connecting. The page must be opened over https://, or through an ssh tunnel as http://localhost. Over plain http, browsers turn off the video decoder, the sound player and the clipboard.

rkdestream: an experiment, so expect rough edges.

rkdestreamRemote desktop