UScreen for Linux

Open-source SuperDisplay alternative for Linux

Your Android tablet, as a real second monitor. Over one USB cable.

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.

Download 1.1.0 Install in three steps MIT · Linux + Android 8.1+ · released
A laptop's desktop extended onto a tablet over a USB cable A laptop screen on the left and a tablet on the right, joined by one USB cable. A window has been moved from the laptop onto the tablet, and the tablet's pen sends input back over the same cable. eDP-1 · 2560×1600 USB · adb reverse · 5–7 ms DVI-I-1 (EVDI) · 2960×1848 · S Pen encode→display p50 19.3 ms p95 22.9 ms tablet decode+render 15 ms of that
Measured on the reference setup: Bazzite KDE + RTX 5060, Galaxy Tab S9 Ultra, H.264 over USB.
22ms
median latency, USB, H.264
15–18ms
with HEVC
0bytes
of screen or input data sent to any cloud
5families
of Linux packages

Not a mirror.
A monitor.

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.

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.

S Pen as a tablet device

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.

Graphics-tablet mode

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.

Plug in, that's it

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.

Hardware all the way

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.

Private by construction

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.

Install

Pick the file for your distribution, install the app on the tablet, plug in. Every release ships the same set plus SHA256SUMS.

FileDistributionCommand
uscreen_1.1.0_amd64.debDebian 12+, Ubuntu 22.04+, Mint, Popsudo apt install ./uscreen_*.deb
uscreen-1.1.0-1.x86_64.rpmopenSUSE · Fedora (RPM Fusion first)zypper install ./uscreen-*.rpm · dnf install --allowerasing ./uscreen-*.rpm
uscreen-1.1.0-PKGBUILD.tar.gzArch, Manjaro, EndeavourOS, CachyOSmakepkg -si
uscreen-1.1.0-linux-x86_64.tar.gzBazzite, Nobara, anything else./scripts/install.sh
uscreen.apkthe tabletinstall, enable USB debugging

Enable the daemon

systemctl --user enable --now uscreen. The tarball installer does this for you and adds a menu entry.

Plug the cable in

The daemon forwards the ports over adb and launches the app on the tablet. Accept the USB-debugging prompt once.

Use it like a monitor

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.

Numbers, with the method

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.

PathMedianp95Notes
USB, H.264 (NVENC)18–22 ms23–31 msdefault
USB, HEVC (NVENC)15–18 ms20–23 msthe tablet has a dedicated low-latency HEVC decoder
USB, HEVC Main1016–17 ms19–22 ms10-bit costs nothing measurable; smooths gradient banding
Wi-Fi, H.26422.8 ms78.6 mssingle frames seen past two seconds — a fallback, not a mode
uscreen::latency Latency encode→display: p50 19.3ms p95 22.9ms max 28.7ms (25 samples, 1 in flight, 0 aged out)
uscreen::latency of which tablet decode+render p50 13.1ms p95 16.9ms → wire ~6.2ms

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.

Against the alternatives

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.

UScreenSuperDisplayWeylusSunshine + Moonlightspacedesk
Linux hostyesno — Windows, macOSyesyesno — Windows
Real extended displayyes, EVDIyesseparate virtual-display setupneeds an existing or dummy displayyes
Direct USB, no tetheringyes, adbyesvia adb port forwardno, networkno, network
Pen pressure / tilt / eraseryes / yes / yesyes / yes / yesyes / yes / nopartial / no / nopartial / no / no
Hardware encodingNVENC, VAAPI, x264yesyesyesyes
Open sourceMITnoAGPLGPLno
Dummy HDMI plugnevernosometimesoftenno

Other current projects

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.

Questions people ask

Short answers. Longer ones in docs/faq.md.

Does it need Wi-Fi or USB tethering?

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.

Is it a mirror or an extension?

An extension — a real monitor in your display settings. Graphics-tablet mode is a separate, non-display mode.

Does S Pen pressure and tilt work?

Yes, plus the eraser end and the stylus button, as a proper tablet device.

Does it work on Bazzite and KDE Wayland?

That is the reference setup. GNOME and X11 get the display and the stream; input mapping is manual there for now.

Does it need a dummy HDMI plug?

No. The virtual display is created in software by EVDI.

Which Android versions?

8.1 and newer, on any device with a hardware H.264 decoder.

Is anything sent to the cloud?

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.

How is it different from Weylus?

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.

How do I uninstall it completely?

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.

Maintained by
majmichu1
Current release
1.1.0 · changelog
Last updated
Verified on
Bazzite KDE Wayland (maintainer) · Arch Linux KDE Wayland (external report)