Draw on your screen. Any app. Live.

wayscriber is a ZoomIt-style screen annotation tool for Wayland, written in Rust. One keybind summons a drawing layer over whatever you're doing — annotate, present, zoom, capture, then toggle it away.

Free & open source · MIT · Hyprland, Sway, River, Wayfire, Niri, COSMIC, KDE Plasma — and GNOME with caveats

wayscriber overlay drawing numbered arrows, an ellipse, a rectangle and a sticky note over a code editor
~14 MBresident memory
(0.9.x on Fedora KDE)
8–9 ms p95/p99 input-to-commit
while drawing at 120 FPS
120 FPSdefault cap, vsync off
(144/240+ configurable)
~130rebindable actions
one TOML file

Local measurements, honestly labelled — details in performance.

How it works

From install to drawing in three steps

Install the package

Native repos for Debian/Ubuntu and Fedora, AUR for Arch, a Nix flake, or one-off .deb/.rpm downloads. Pick your distro ↓

Bind one key

Run the daemon and bind wayscriber --daemon-toggle to a global shortcut — or let the configurator set up both for you.

systemctl --user enable --now wayscriber.service

Draw over anything

Hit your key and the overlay appears — pen, shapes, text, boards, zoom. F1 shows the cheat sheet, Esc hides it again.

Features

A full annotation studio, one keybind away

Everything below ships in the box — no plugins, no accounts, no Electron.

Whiteboard mode with text, sticky note, lines and arrows, and the floating side panel

The full drawing toolkit

Pen, highlighter and eraser; lines, rectangles, ellipses and fillable polygons; arrows with auto-numbered labels; step markers; blur; multiline text and sticky notes; plus a screen eyedropper with a magnified pixel loupe — all with full undo/redo.

Command palette overlay listing searchable actions with shortcuts

Command palette

Every action is searchable. Press Ctrl+K or Ctrl+Shift+P and type.

Radial menu at the cursor with a color ring and tool segments

Radial menu at the cursor

Middle-click for tools and colors right where you're pointing; scroll adjusts size.

Board picker listing overlay, whiteboard, blackboard, blueprint and corkboard boards with page thumbnails

Boards & pages

Transparent overlay, whiteboard, blackboard, blueprint or corkboard backgrounds. Every board keeps isolated pages with auto-contrast pens. Jump slots Ctrl+Shift+1..9, pan solid boards with Space+drag.

GTK4 top toolbar strip and advanced side panel with color area, presets and sliders

Floating toolbars — now GTK4

Two frontends: crisp GTK4-rendered bars on layer-shell compositors, with automatic fallback to the built-in Cairo bars everywhere else. Pin, unpin or hide them (F2/F9).

Sessions that survive

Boards, undo history and tool state persist across restarts by default — per monitor. Named .wayscriber-session files let you keep separate workspaces per project or talk.

Crash-safe: sessions are compressed, backed up, and recovered automatically.

Zoom & presenter mode

ZoomIt-style zoom with Ctrl+Alt+scroll, zoom lock and pan — plus click highlights and screen freeze for demos.

Light passthrough

Click through the overlay while your drawings stay visible — keep working under your notes (layer-shell compositors).

Capture & PDF export

Grab the full screen, a window or a region — to clipboard or PNG. Export boards as multi-page PDFs, optionally with the live desktop behind transparent pages.

Select, move, paste

A real selection tool: move, duplicate, restack, edit properties — and paste PNG/JPEG images straight from the clipboard onto the canvas.

Tablet, pen & touch

Native tablet support (zwp_tablet_v2) with pressure, enabled out of the box — alongside mouse and touchscreen.

Multi-monitor

Move the overlay between outputs with a shortcut; toolbars follow the active display, and sessions can be scoped per output.

Make it yours

~130 rebindable actions, a configurable quick-color palette, presets 15, and one well-documented TOML file — or skip the file and use the GUI configurator.

Fast by default

Vsync off with a 120 FPS cap for low-latency ink; raise it to 144/240+ if your display keeps up. The numbers ↓

Demos

See it in action

Short clips, loaded only when you press play.

Flip through pages on a board, and swap tool + color + size in one keystroke with presets 15.

Screenshots

A closer look

Click any image to enlarge.

Performance

Ink that keeps up with your hand

Native Wayland, native code. A Rust binary drawing straight to layer-shell surfaces — no Electron, no webview, no compositor tricks.

Low latency by default. Vsync is off with a 120 FPS cap; in local input-to-commit measurements that held p95/p99 around 8–9 ms during continuous drawing.

Light on memory. Recent 0.9.x builds measured around 14 MB resident on Fedora KDE while idling as a daemon.

Tunable. Prefer tear-free rendering or quieter fans? Flip vsync back on. Chasing a 240 Hz display? Raise the cap.

Honest numbers: latency is input-sample receipt to Wayland surface commit, not end-to-end display latency. Measure yourself with WAYSCRIBER_PERF_LOG=1.

# config.toml
[performance]
buffer_count = 3          # balanced buffering
enable_vsync = false      # lower drawing latency
max_fps_no_vsync = 240    # for a fast display + GPU
ui_animation_fps = 60     # smoother UI effects

buffer_count = 3 is the balanced default; more buffers use more memory and do not raise the FPS cap. This 240/60 example targets high-refresh systems—the defaults are 120 FPS for drawing and 30 FPS for UI effects.

Compatibility

Works with your compositor

✓ Full support
HyprlandSwayRiver WayfireNiriCOSMIC KDE Plasma / KWin

Any compositor speaking wlr-layer-shell gets the complete experience, light passthrough included.

◐ Partial
GNOME

Runs via an xdg-fullscreen fallback: normal overlay works, screen freeze works via the portal — but light passthrough isn't possible on stock GNOME Wayland.

✕ Not supported
X11

wayscriber is Wayland-native by design.

Tested on Ubuntu 25.10, Fedora 43 (KDE & GNOME), Debian 13.2, CachyOS, and Arch with Hyprland/Niri.

Install

Up and running in a minute

Native repos with auto-updates where possible. Full details live in the docs.

sudo install -d /usr/share/keyrings
curl -fsSL https://wayscriber.com/apt/WAYSCRIBER-GPG-KEY.asc | sudo gpg --dearmor -o /usr/share/keyrings/wayscriber.gpg
echo "deb [signed-by=/usr/share/keyrings/wayscriber.gpg] https://wayscriber.com/apt stable main" | sudo tee /etc/apt/sources.list.d/wayscriber.list
sudo apt update
sudo apt install wayscriber

Needs Ubuntu 25.04+ or Debian 13 (trixie)+ — the packages depend on libgtk4-layer-shell0. Derivatives on a new-enough base work too, but current Mint 22 and Pop!_OS 22.04 don't ship that library — build from source there (GTK-less build on Pop!_OS 22.04).

More options: one-off .deb, configurator

One-off .deb (no auto-updates)

wget -O wayscriber-amd64.deb https://github.com/devmobasa/wayscriber/releases/latest/download/wayscriber-amd64.deb
sudo apt install ./wayscriber-amd64.deb

Optional GUI configurator

sudo apt install wayscriber-configurator

Then: enable the daemon and bind a key

The packages bundle a systemd user service, the tray icon, and the capture helpers (grim, slurp, wl-clipboard).

1 · Start the daemon
systemctl --user enable --now wayscriber.service
2 · Bind a global shortcut (Hyprland example)
bind = SUPER, D, exec, wayscriber --daemon-toggle
GNOME / KDE shortcuts, one-shot mode, build from source

GNOME

Settings → Keyboard → Custom Shortcuts → add wayscriber --daemon-toggle. On Ubuntu GNOME, Super+G is a good choice (Super+D is often taken).

KDE Plasma

Settings → Keyboard → Shortcuts → add a Command or Script running wayscriber --daemon-toggle (e.g. Meta+Shift+D).

No-CLI path

Open wayscriber-configurator → Daemon tab → Install/Update Service, Enable + Start, then Apply Shortcut. It writes the GNOME custom shortcut or KDE portal global shortcut for you.

One-shot mode (no daemon)

wayscriber --active                    # overlay now
wayscriber --active --mode whiteboard  # straight to a board
wayscriber --freeze                    # start with screen frozen

Build from source

Rust 1.95+ and a C toolchain; see the README for per-distro dependency lists, including the GTK-less build for older distros like Pop!_OS 22.04.

Controls

Muscle memory in a dozen shortcuts

Everything is rebindable — these are the defaults.

Draw (pen)Drag
Straight lineShift+Drag
RectangleCtrl+Drag
ArrowCtrl+Shift+Drag
Text / sticky noteT / N
Select & moveV or Alt+Drag
ColorsRGBYOPWK
Screen eyedropperI
Undo / redoCtrl+Z / Ctrl+Y
Presets15
Command paletteCtrl+K
ZoomCtrl+Alt+Scroll
Help / hideF1 / Esc
More defaults: boards, pages, selection
BoardsWhiteboard Ctrl+W · Blackboard Ctrl+B · back to transparent Ctrl+Shift+T · picker Ctrl+Shift+B · slots Ctrl+Shift+1..9
PagesPrev/next Ctrl+Alt+←/→ · new Ctrl+Alt+N · duplicate Ctrl+Alt+D
SelectionDuplicate Ctrl+D · copy/paste Ctrl+Alt+C/Ctrl+Alt+V · restack ]/[ · properties Ctrl+Alt+P
PresentingClick highlight Ctrl+Shift+H · freeze Ctrl+Shift+F · light passthrough F6 · radial menu Middle-click
ShapesEllipse Tab+drag · eraser D · clear all E · highlight brush Ctrl+Alt+H

F6 only works while the overlay is focused — once passthrough is active, wayscriber may no longer receive it. Bind a compositor/global shortcut to wayscriber --light-toggle to get back out reliably.

The screen eyedropper defaults to I and is also available from both color interfaces and Ctrl+K. Rebind keybindings.colors.pick_screen_color in your config or the configurator if you prefer another key.

Press F1 in-app for the complete cheat sheet, or read the docs.

Configurator

A GUI for every option

  • Native Rust GUI (Iced) that edits the same config.toml — with validation, defaults and automatic backups.
  • Installs and manages the daemon service, and applies global shortcuts on GNOME and KDE — Hyprland gets a ready-made include for the light-passthrough binds.
  • Manages sessions: rename, duplicate, move or clear saved boards and tool state.
  • Launch it any time with F11 from the overlay, or run wayscriber-configurator. Ships as its own optional package.

Ethos

wayscriber is shared as a gift exchange, not a contract.

Free, MIT-licensed, and actively developed — with no guaranteed timelines or support. Contributions are welcome, especially compositor testing, multi-monitor reports and new drawing tools. Read the full ethos · Contributing guide

Ready to draw on your screen?