# Weylus: turn a tablet into a graphics tablet over the browser

> Weylus streams your desktop to a tablet browser and feeds stylus, touch and keyboard events back through uinput. It is a Linux-first tool with a thin story on Windows, macOS and Wayland.

**H-M-H/Weylus** — Use your tablet as graphic tablet/touch screen on your computer.

- Repository: https://github.com/H-M-H/Weylus
- Stars: 9,619 · Forks: 404
- Language: Rust
- License: NOASSERTION
- Published: 2026-09-21 · Updated: 2026-09-21 · Language: en
- Canonical page: https://hysenlabs.com/projects/h-m-h-weylus

## The problem Weylus solves for tablet owners

A tablet is a good drawing surface attached to a bad computer. The usual fix is to buy a dedicated pen display, which costs money and takes desk space, or to use a remote desktop client, which treats the tablet as a screen and a mouse rather than as a pen. Weylus takes the second path but changes the input side: the tablet browser sends pointer events, and the computer replays them as native input events, so drawing software sees a stylus with pressure and tilt rather than a mouse cursor.

The target user is someone with a computer and a tablet already on the same network. Nothing is installed on the tablet. The README states that no apps except a modern browser are required on the tablet, with Firefox 80 or newer and iOS/iPadOS 13 or newer named as the floor. On the computer side, the project ships prebuilt releases for the desktop operating systems, and the README says Weylus works best on Linux. That sentence is doing real work: the Linux build is the only one that gets stylus support with pressure and tilt, multi-touch, capture of specific windows with drawing confined to them, and the second-screen setup. On Windows and macOS you get mouse control, screen mirroring and keyboard input from a physical keyboard, which is a different product with the same name.

One detail worth noticing early: the README says onscreen keyboards are not supported because of technical limitations, so a Bluetooth keyboard is the only way to type into the remote machine from the tablet.

## How Weylus moves pixels one way and input the other

The architecture is a local web server plus a websocket. Starting Weylus launches a webserver on the computer, and the tablet opens http://<address of your computer>:<port set in the menu, default is 1701>. The README notes that Weylus displays the URL and a QR code with the encoded address, which is the practical way to get the tablet onto the page without typing an IP address by hand. A second TCP port carries the websocket connection, 9001 by default.

Screen content travels from the computer to the browser as a video stream. On Linux the Cargo.toml lists gstreamer, gstreamer-app and gstreamer-video as dependencies, which fits the README's description of hardware accelerated video encoding through VAAPI or Nvidia's NVENC. Hardware acceleration is off by default, and the README gives the reason plainly: quality and stability of the hardware encoded stream varies widely across hardware, and sufficient quality cannot be guaranteed. On Windows the dependency list points at Direct3D 11 and DXGI, so capture and encoding go through the Windows graphics stack rather than GStreamer.

Input travels the other way. On Linux Weylus writes to the uinput interface to synthesize input events, which is why the README tells you that /dev/uinput must be writable by Weylus for stylus and multi-touch support. This is the part that makes the pen real to the drawing application: the events are kernel-level input events, not a simulated mouse. The cost is stated in the same section. The permission allows your user to synthesize input events system-wide, even when another user is logged in, so untrusted users should not be added to the uinput group. The control channel is a websocket, and the README says there is no encryption, deliberately, to keep latencies minimal.

## Installing Weylus and drawing on it once

The README's installation instruction is short: grab the latest release for your OS from the releases page and install it on the computer. There is no package manager step for most systems. Arch users have two AUR options, weylus for a source build and weylus-bin for a prebuilt binary.

On Linux, the one prerequisite that changes what the software can do is uinput. The README gives this sequence to make /dev/uinput permanently writable by your user:

```sh
sudo groupadd -r uinput
sudo usermod -aG uinput $USER
echo 'KERNEL=="uinput", MODE="0660", GROUP="uinput", OPTIONS+="static_node=uinput"' \
| sudo tee /etc/udev/rules.d/60-weylus.rules
```

After that, either reboot or reload the udev rules and log out and back in:

```sh
sudo udevadm control --reload
sudo udevadm trigger
```

If you later want to undo the change, the README gives the reverse step:

```sh
sudo rm /etc/udev/rules.d/60-weylus.rules
```

Then start Weylus, set an access code in the access code box, and press Start. The README describes what happens next: a webserver starts on your computer, and Weylus shows the URL to open plus a QR code. If a firewall is running, two TCP ports need to be open, 1701 for the webserver and 9001 for the websocket. The README's ufw example is:

```sh
sudo ufw allow 1701/tcp
sudo ufw allow 9001/tcp
```

Open the URL on the tablet, and the desktop should appear in the browser. For a drawing session, add the page to the home screen as a bookmark on the tablet; the README says this enables full screen mode, and on iOS/iPadOS it has to be done with Safari. On other platforms there is a button that toggles full screen. For headless use, the README mentions a command-line interface, with --no-gui starting Weylus without a GUI and weylus --help listing the rest. Verbose, parseable logs come from setting WEYLUS_LOG_LEVEL to DEBUG or TRACE and WEYLUS_LOG_JSON to true.

## Where Weylus breaks down: Wayland, encryption and hardware encoding

Wayland support is described as experimental, and the README lists what still does not work: input mapping for windows, displaying proper window names, and capturing the cursor. Those are not cosmetic gaps. Window mapping is what lets you draw only into a chosen window, and cursor capture is what makes a mirrored screen usable when the pointer leaves the frame. If your session is Wayland, you also need pipewire and xdg-desktop-portal plus the portal backend matching your desktop: xdg-desktop-portal-gtk for GNOME, xdg-desktop-portal-kde for KDE, xdg-desktop-portal-wlr for wlroots-based compositors such as Sway. On a wlroots compositor, plan on losing the window-level features entirely.

Hardware acceleration is the second trap. It is disabled by default, and the README explains that the quality and stability of the hardware encoded stream varies widely and sufficient quality cannot be guaranteed. Turning it on means setting environment variables per system: LIBVA_DRIVER_NAME to pick a VAAPI driver, LIBVA_DRIVERS_PATH when the drivers live outside /usr/lib/dri, and WEYLUS_VAAPI_DEVICE to select the device, with the README noting that on some systems this variable is not optional and must be set. NVENC is described as very fast but with noticeably lower quality on the author's GeForce GTX 1050 Mobile, with the expectation that newer GPUs do better. None of this is a configuration file you edit once and forget; it is environment variables set at launch.

The absence of encryption is a design decision with a clear consequence. The README says to run Weylus only in networks you trust, because there is no encryption, and that this is to keep latencies minimal. There is a weylus_tls.sh script in the repository root, but the README's running instructions do not describe it, so treat TLS as undocumented rather than supported. A guest network, a shared office VLAN or a public hotspot is the wrong place for this tool.

## Weylus versus Deskreen and plain remote desktop

Deskreen is the comparison people reach for, and the difference is what each one treats as the point. Deskreen is a screen-sharing tool: the goal is to get your computer's display onto another device's screen, and input back to the computer is not the product. Weylus is an input tool with a screen attached. The README's feature list puts control of the mouse first and mirroring second, and the Linux-only extras are all input-side: stylus with pressure and tilt, multi-touch, drawing confined to a specific window. If you want a second display for reading a document or showing a slide deck, Deskreen's model fits better and you avoid the uinput permission entirely. If you want to draw into Krita or Xournal++ with a pen, screen sharing alone will not get you there, because the tablet's browser events have to be replayed as kernel input events for the application to see pressure.

Against a general remote desktop client the trade is different again. A remote desktop session gives you a full desktop with its own window management and usually authentication, but a pen is a mouse and pressure does not survive the trip. Weylus gives up encryption and window-level polish on Wayland to keep the input path short. That is the whole design argument, and it holds only if you actually need the pen.

## Maintenance, licensing and what upgrading costs

The last push to the repository was on 2026-04-22, so the codebase is still receiving changes, but the release history tells a different story. The most recent release listed is v0.11.4 from 2021-10-31, with v0.11.3 the day before and v0.11.2 in July 2021. Cargo.toml pins the package version at 0.11.4, matching that release. Anyone installing from the releases page is therefore installing a build from 2021, while the repository has moved on for years. The practical upgrade path for a Linux user is the AUR packages or a source build rather than the release binaries, and on other platforms the release page is the only documented route.

Licensing needs care because the two sources disagree. The repository metadata reports NOASSERTION, which means the licence could not be classified automatically, while Cargo.toml declares license = "AGPL-3.0-or-later". AGPL is a strong copyleft licence with a network clause: if you modify Weylus and let users interact with it over a network, the licence's obligations extend to those users. That matters if you were thinking of embedding this in a hosted product. Read the LICENSE file in the repository root before you rely on either label; this is a description of what the files say, not legal advice.

Upgrade cost is mostly environmental. The uinput udev rule, the firewall ports, the VAAPI environment variables and the portal packages for Wayland all live outside the application, so a version bump does not move them. The thing that does move is behaviour on Wayland, which the README already flags as experimental.

## Conclusion

Weylus is worth adopting if you draw on Linux with an Xorg session, a stylus tablet and a browser you already have, and you accept that the machine and the tablet must sit on a network you trust, since the README states there is no encryption. Skip it if you need pressure sensitivity on Windows or macOS, if you need a Wayland session with window mapping, or if a shared or public Wi-Fi network is the only link between the two devices. Before installing, check the releases page for a build matching your OS, confirm your tablet browser is Firefox 80 or newer or iOS/iPadOS 13 or newer, and on Linux confirm that /dev/uinput can be made writable by your user, because that one file decides whether pressure and multi-touch exist at all.

## FAQ

### What is Weylus known for?

It is known for turning a tablet or phone into a graphic tablet or touch screen for a computer, using only a browser on the tablet side. Its distinguishing feature set is pen input with pressure and tilt, multi-touch, and window-specific drawing, all of which the README lists as Linux-only.

### How do I install Weylus on Ubuntu?

The README says to grab the latest release for your OS from the releases page and install it on your computer. On Ubuntu you then need to make /dev/uinput writable by your user, following the groupadd, usermod and udev rule commands in the README, and open TCP ports 1701 and 9001 if a firewall is running.

### How do I set up Weylus?

Start Weylus, set an access code in the access code box and press Start. Weylus then shows the URL to open on the tablet plus a QR code, and the tablet opens the page in a modern browser such as Firefox 80 or newer, or Safari on iOS/iPadOS 13 or newer.

### Is Weylus free?

Cargo.toml declares the package under AGPL-3.0-or-later, while the repository metadata reports the licence as NOASSERTION. There is no pricing or paid tier described anywhere in the README, so the licence file in the repository root is the thing to read.

### How do I use Weylus on Windows?

Yes, but with fewer features. The README states the core features are available on all operating systems, while stylus support with pressure and tilt, multi-touch, window-specific drawing and the second-screen setup are Linux-only.

### How do I use Weylus on Linux?

Install the release for your OS, make /dev/uinput writable by your user so stylus and multi-touch work, then start Weylus, set an access code and press Start. The tablet opens the displayed URL or QR code in a browser, and drawing applications such as Krita or Xournal++ receive pen events with pressure and tilt.

## Sources

- [H-M-H/Weylus on GitHub](https://github.com/H-M-H/Weylus)
- [Issues](https://github.com/H-M-H/Weylus/issues)
- [README](https://github.com/H-M-H/Weylus/blob/master/README.md)
- [Releases](https://github.com/H-M-H/Weylus/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/h-m-h-weylus
