Extended display through EVDI
A virtual output with the tablet's own resolution and physical size. It appears in Display settings; you drag windows onto it; KDE places it next to your real screens for you.
Open-source SuperDisplay alternative for Linux
UScreen creates an extended display on the Linux side, streams it to the tablet with hardware encoding, and hands the S Pen back as a graphics tablet — pressure, tilt, eraser, button. No Wi-Fi, no tethering, no dummy plug, no account.
Most tablet-as-display tools show you a copy of a screen that already exists. UScreen makes a new one, through the same kernel interface DisplayLink docks use, and the desktop treats it like any other output.
A virtual output with the tablet's own resolution and physical size. It appears in Display settings; you drag windows onto it; KDE places it next to your real screens for you.
Pressure, tilt, eraser end and the stylus button arrive in Linux as a real graphics-tablet device, mapped to the right screen. Krita, GIMP and Blender see a tablet, not a mouse.
One tap and nothing is streamed: the pen drives the screen you are already looking at, like a Wacom Intuos, with zero display latency in the loop.
The daemon starts with your desktop, watches adb, launches the app on the tablet and sizes the display to its panel. uscreen doctor explains anything that is off.
NVENC or VAAPI encoding on the host, MediaCodec decoding on the tablet, H.264 by default, HEVC and 10-bit optional. The encoder is under a millisecond; the tablet's decoder is most of the budget.
Loopback-only ports guarded by a per-session token, a private runtime directory, no telemetry, no account. The only outbound request is an optional version check.
Pick the file for your distribution, install the app on the tablet, plug in. Every release ships the same set plus SHA256SUMS.
| File | Distribution | Command |
|---|---|---|
uscreen_1.1.0_amd64.deb | Debian 12+, Ubuntu 22.04+, Mint, Pop | sudo apt install ./uscreen_*.deb |
uscreen-1.1.0-1.x86_64.rpm | openSUSE · Fedora (RPM Fusion first) | zypper install ./uscreen-*.rpm · dnf install --allowerasing ./uscreen-*.rpm |
uscreen-1.1.0-PKGBUILD.tar.gz | Arch, Manjaro, EndeavourOS, CachyOS | makepkg -si |
uscreen-1.1.0-linux-x86_64.tar.gz | Bazzite, Nobara, anything else | ./scripts/install.sh |
uscreen.apk | the tablet | install, enable USB debugging |
systemctl --user enable --now uscreen. The tarball installer does this for you and adds a menu entry.
The daemon forwards the ports over adb and launches the app on the tablet. Accept the USB-debugging prompt once.
It is in Display settings, sized to the tablet. Touch and the pen work on it immediately. Flip Graphics tablet in the app when you want to draw on the laptop screen instead.
Details, including exactly what the installer changes on the system, in docs/installation.md. Update both halves together: since 1.1.0 they share a session token.
Every frame carries a sequence number; the tablet echoes it when the frame reaches the screen; the daemon logs the round trip on its own clock. Published, reproducible, and honest about Wi-Fi.
| Path | Median | p95 | Notes |
|---|---|---|---|
| USB, H.264 (NVENC) | 18–22 ms | 23–31 ms | default |
| USB, HEVC (NVENC) | 15–18 ms | 20–23 ms | the tablet has a dedicated low-latency HEVC decoder |
| USB, HEVC Main10 | 16–17 ms | 19–22 ms | 10-bit costs nothing measurable; smooths gradient banding |
| Wi-Fi, H.264 | 22.8 ms | 78.6 ms | single frames seen past two seconds — a fallback, not a mode |
Reference hardware: Bazzite (KDE Plasma 6, Wayland), NVIDIA RTX 5060 Laptop, Galaxy Tab S9 Ultra at 2960×1848. Full method, CPU figures and limitations in docs/benchmarks.md.
Checked against official project documentation in August 2026. Where a project does something partially, it says so; where its documentation does not answer, the cell says unknown. Corrections are welcome as issues.
| UScreen | SuperDisplay | Weylus | Sunshine + Moonlight | spacedesk | |
|---|---|---|---|---|---|
| Linux host | yes | no — Windows, macOS | yes | yes | no — Windows |
| Real extended display | yes, EVDI | yes | separate virtual-display setup | needs an existing or dummy display | yes |
| Direct USB, no tethering | yes, adb | yes | via adb port forward | no, network | no, network |
| Pen pressure / tilt / eraser | yes / yes / yes | yes / yes / yes | yes / yes / no | partial / no / no | partial / no / no |
| Hardware encoding | NVENC, VAAPI, x264 | yes | yes | yes | yes |
| Open source | MIT | no | AGPL | GPL | no |
| Dummy HDMI plug | never | no | sometimes | often | no |
MoreSpace (Linux host daemon + Android app) is the closest in scope: a virtual output extended by default, USB or Wi-Fi, GNOME, KDE, wlroots, niri and X11 sessions, pressure-sensitive stylus input. Its documentation does not state tilt or eraser support, the USB protocol it uses, or a license — the site links "Open Source" but no repository — so those cells would read unknown; it also has user accounts, which UScreen does not.
TethrLink (GPL-3.0) makes a genuine second monitor through GNOME's ScreenCast API, so it is GNOME-on-Wayland only, with X11 falling back to JPEG at the PC's own resolution. Transport is Android USB tethering rather than adb, and its README does not mention stylus pressure, tilt or eraser.
subdisplay (MIT, one Python file) is glue around Sunshine on the host and Moonlight on the tablet, tested on KDE Wayland. It also needs USB tethering — Moonlight's streams are UDP, which adb cannot forward — and a real extended display needs an HDMI dummy plug; otherwise it mirrors. Moonlight carries S Pen pressure but, per the README, not tilt.
Checked against official project documentation in August 2026.
Short answers. Longer ones in docs/faq.md.
No. It uses the adb connection that USB debugging provides, over a normal data-capable USB cable — USB debugging has to be on, USB tethering does not. Wi-Fi is an optional fallback with more stutter.
An extension — a real monitor in your display settings. Graphics-tablet mode is a separate, non-display mode.
Yes, plus the eraser end and the stylus button, as a proper tablet device.
That is the reference setup. GNOME and X11 get the display and the stream; input mapping is manual there for now.
No. The virtual display is created in software by EVDI.
8.1 and newer, on any device with a hardware H.264 decoder.
No. Screen and input data never leave the cable. The only outbound request is an optional check of the latest release tag on GitHub, and check_updates = false turns it off.
Weylus makes the tablet's browser an input device and can show the screen in it; a virtual display has to be set up separately. UScreen creates the display itself, streams it with hardware encoding to a native app, and maps the input onto that display automatically on KDE.
Remove the package or the files in ~/.local/bin, the systemd user unit, and the three system files the installer creates. The exact commands are in SECURITY.md.