Live overlay for drawing, annotating with zoom, hiding text, and capturing screenshots on Linux. Can be used as whiteboard or blackboard. Highly customisable. W
Live overlay for drawing, annotating with zoom, hiding text, and capturing screenshots on Linux. Can be used as whiteboard or blackboard. Highly customisable. W
wayscriber
A ZoomIt-like real-time screen annotation tool for Linux/Wayland, written in Rust.
Draw over any app, present with callouts and zoom, keep your boards between sessions. Toggle the lightweight daemon with one keybind.
Native Wayland performance with ZoomIt-like controls
Lightweight daemon with instant toggle via keybind
Platform support
Platform
Status
Notes
Wayland (layer-shell)
✅ Supported
Hyprland, Sway, River, Wayfire, Niri/Cosmic, Plasma/KWin
GNOME
⚠️ Partial
Normal overlay and Freeze via portal when available; light passthrough unavailable
X11
❌
Not supported
The v0.9.23+ prebuilt wayscriber packages require glibc 2.39 and GTK 4.12. See the notes in Debian and Ubuntu and Fedora and RHEL. The AUR packages and Nix are unaffected.
Tested environments
Ubuntu 25.10 GNOME (xdg fallback)
Fedora 43 KDE (Plasma, layer-shell)
Fedora 43 GNOME (xdg fallback)
Debian 13.2 KDE (Plasma, layer-shell)
Debian 13.2 GNOME (xdg fallback)
CachyOS 2025-August KDE (Plasma, layer-shell)
Hyprland on Arch (layer-shell)
Niri on Arch (layer-shell)
Comparison with ZoomIt
Feature
ZoomIt (Windows)
wayscriber
Drawing tools
✅
✅
Boards/Backgrounds
✅
✅
Multi-line text
❌
✅
Custom fonts
❌
✅
Config file
❌
✅
Help overlay
❌
✅
Zoom
✅
✅
Break timer
✅
❌
Features
Drawing and editing
Freehand pen, highlighter, eraser (circle/rect)
Pen smoothing: finished pen and marker strokes are cleaned up on release, so the live line never lags the cursor ([drawing] pen_smoothing, 0-6, or the toolbar's Smoothing stepper); tablet pressure values are preserved, and the level is remembered with the session
Shapes: lines, rectangles, ellipses, polygons (with fill toggle)
Arrows in four styles - standard, pointy, curved (drag its handle to route around what is in the way), and double-ended - with optional auto-numbered labels; step markers for walkthroughs
Blur tool with four styles: soften, pixelate, secure (flattens the region to one color), and black out
Spotlight tool: dims everything except the regions you draw, with optional 1×–4× magnification
Multiline text and sticky notes with smoothing; optional text halos take their contrast from the background the label sits on, so a label stays readable over a board, a filled shape, or a frozen screen (disable with [drawing] text_halo_enabled = false; a live transparent board has no pixels to sample and falls back to the text color)
Selection: Alt-drag, V tool, properties panel
Duplicate (Ctrl+D), delete (Delete), undo/redo
Color picker, screen eyedropper with a magnified pixel loupe, palettes, size via hotkeys or scroll
Text font cycling with Shift+T over a configurable list ([drawing] font_cycle); with text selected it restyles that text
Font picker over every installed family (Font Picker in the command palette, or the toolbar's current-family button), with search, a monospace filter, wheel scrolling, accelerating arrow-key repeat, and each row drawn in its own font
Render color profiles for print/projector/light-theme preview
Radial menu at cursor (Middle-click): quick tool/color selection with recent colors, press-flick-release tool commits, plus a draggable outer size ring and scroll size adjust
Boards
Named boards with transparent overlay or custom backgrounds
Cartesian graph paper, isometric lines, and isometric dots with adjustable spacing
Isolated pages per board with auto-contrast pens
Pan solid boards with Space + left-drag; reset from the context menu
Jump slots: Ctrl+Shift+1..9
Toggle whiteboard/blackboard
Board picker: Ctrl+Shift+B
Capture and screenshots
Full-screen saves, active-window grabs, region capture
Copy text from screen (OCR): press Ctrl+Shift+X. Drag a desktop region, or press Ctrl+A for the whole desktop. The recognized text goes to the clipboard. Requires tesseract.
Sessions and persistence
Session persistence is enabled by default for boards, undo/redo history, and tool state
Per-output default sessions, plus named session files with --session-file
Unified floating toolbar (F9 toggles visibility; F2 cycles the top strip full → micro chip → hidden)
Two toolbar frontends: GTK4-rendered bars on layer-shell compositors (Hyprland, KWin, Wayfire, River, ...), with automatic fallback to the built-in Cairo bars everywhere else (GNOME xdg fallback, forced-inline mode, builds without the toolbar-gtk feature)
Pick a frontend explicitly with ui.toolbar.backend = "auto" | "gtk" | "builtin" or WAYSCRIBER_TOOLBAR_BACKEND
Preset slots, icon or text modes
Color picker with extended palettes and a screen eyedropper (toolbar, popup, or command palette)
Status bar with independently configurable output, selection, board, page, color, tool, size, context, toolbar-hint, Help, and About/version items
Help overlay (F1), quick reference (Shift+F1)
Command palette (Ctrl+K or Ctrl+Shift+P)
Search, run, edit, unbind, or reset action shortcuts from the command palette. Hold Ctrl+Shift and click a bindable toolbar control to record its shortcut. You can configure this modifier chord. Wayscriber saves only that action's entry to config.toml and creates a timestamped .bak backup. Press Ctrl+Shift+E on a palette row to open the same shortcut in the configurator
Multi-monitor
Move overlay focus between monitors: Ctrl+Alt+Shift+←/Ctrl+Alt+Shift+→
Toolbars and status bar follow the active output when output focus changes
Optional active output badge in status bar (ui.active_output_badge)
Output-scoped session restore when session.per_output = true
GNOME fallback output pinning via ui.preferred_output or WAYSCRIBER_XDG_OUTPUT
Presets
Save tool + color + size (plus fill/opacity/text) into 3–5 slots
Apply: 1–5; save: Shift+1–Shift+5
Presenter tools
Click highlights with configurable colors/radius/duration
Persistent ring while the click highlight tool is active
Input HUD (Ctrl+Shift+K): on-screen keystroke and click chips for demos and screencasts (optional system-wide capture through the input-monitor build feature). See docs/CONFIG.md
Light passthrough (layer-shell): draw while input passes through to the app underneath. See Light passthrough mode
Screen freeze (Ctrl+Shift+F): pause the display while apps keep running. Freeze prefers compositor-native wlr-screencopy or ext-image-copy-capture and falls back to the screenshot portal when available
Spotlight: drag an ellipse to dim everything around it; stack several to highlight multiple areas. Each Spotlight can magnify its opening from 1× to 4×, while dim strength and edge softness remain shared under [spotlight]. Magnification uses complete pixels from a solid board, Freeze, Zoom, or a captured/export backdrop; a live transparent board keeps the ordinary opening and prompts you to Freeze.
Callouts and zoom
Numbered callouts: auto-numbered arrow labels and step markers; reset arrow labels with Ctrl+Shift+R
Zoom: spotlight details with ZoomIt-style controls
Zoom in/out: Ctrl+Alt + scroll or Ctrl+Alt + +/-
Reset: Ctrl+Alt+0; lock view: Ctrl+Alt+L
Pan: middle drag or arrow keys
Right-click menu: Zoom → Zoom In / Zoom Out / Reset Zoom
Installation
Pick the path that matches your setup:
You want
Use
Fast CLI install with auto-updates on Debian/Ubuntu/Mint/Pop!_OS
Distro repositories, the AUR, and declarative NixOS installs are the best default for CLI users because they follow the normal system update flow. Packages installed with nix profile are updated separately with nix profile upgrade. GitHub .deb/.rpm downloads and the direct Arch release installer are not automatic update channels; rerun or replace them when you want a newer release.
Install the main wayscriber package first. wayscriber-configurator is an optional GUI settings app and does not include the wayscriber binary.
Debian and Ubuntu
Also use this path for Linux Mint, Pop!_OS, and other Debian-based distros.
Wayscriber v0.9.23+ requires Ubuntu 24.04+ or Debian 13 (trixie) or newer. This includes Linux Mint 22+ and Pop!_OS 24.04+. These release packages require glibc 2.39 and GTK 4.12, and embed the pinned GTK4 layer-shell integration, so no separate libgtk4-layer-shell0 package is needed. Pop!_OS 22.04 remains below the GTK requirement; use the GTK-less source build there.