Screen Annotation for Wayland
A ZoomIt-like screen annotation tool for Linux, written in Rust
Includes built-in zoom for quick callouts and spotlights.
Works on Hyprland, Sway, River, Wayfire, Niri/COSMIC, KDE Plasma/KWin, GNOME via fallback, and other Wayland compositors with wlr-layer-shell
This project is a gift exchange, not a contract. Read the ethos.
Watch wayscriber in action
See how quickly you can highlight, annotate, and guide your audience with real-time drawing tools.
Video demo (bottom) · plays only when you press play. Switch between pages and load tool presets so every scene starts ready.
Tap to load the demo video when you're ready—it's about 8 MB.
Video demo (bottom) · plays only when you press play. Access the context menu, reset or zoom the current board, refine selections, and jump between boards without breaking flow.
Video demo (bottom) · plays only when you press play. Paste content onto the board and toggle passthrough mode when you need to interact with the desktop underneath.
Video demo (bottom) · plays only when you press play. Pan the zoomed view to follow details without leaving the annotated context.
Video demo (bottom) · plays only when you press play. Refine text placement, styling, and layout without breaking your flow.
Video demo (bottom) · plays only when you press play. Drop sticky notes to keep reminders visible during presentations.
What is wayscriber?
wayscriber is a powerful screen annotation tool designed for Linux desktops (Wayland compositors). Perfect for live presentations, classroom sessions, and screenshares, it lets you toggle drawing mode with a single key, save tool presets, and annotate your screen instantly without breaking your flow.
Small memory footprint: v0.9.7 on Fedora KDE runs at about 14 MB RAM.
Features at a Glance
Drawing Tools
- ✓ Freehand pen
- ✓ Straight lines
- ✓ Rectangles
- ✓ Ellipses & circles
- ✓ Arrows
- ✓ Auto-numbered arrows
- ✓ Multi-line text annotations
- ✓ Sticky notes (N)
- ✓ Step markers (numbered bubbles)
- ✓ Highlight brush + marker tools
- ✓ Paste PNG/JPEG images as movable objects
- ✓ Eraser tool
Board Modes
- ✓ Whiteboard mode
- ✓ Blackboard mode
- ✓ Named boards + custom backgrounds
- ✓ Pan solid boards with Space+Drag
- ✓ Auto pen contrast
- ✓ Isolated frames
- ✓ Transparent overlay
- ✓ Right-click reset + zoom menu
- ✓ Board pages for multi-step guides
Customization
- ✓ Quick color palette (8 colors)
- ✓ Adjustable line thickness
- ✓ Custom fonts (Pango)
- ✓ Scroll wheel adjustments
- ✓ Radial menu (middle-click) for tool/color + size
- ✓ Per-button drag tool bindings
- ✓ Customizable toolbars (show/hide sections)
- ✓ TOML configuration file
Presets
- ✓ Save full per-tool profile snapshots
- ✓ Restore fill, opacity, text, eraser, and drag settings
- ✓ Apply presets instantly (1-5)
- ✓ Save presets quickly (Shift+1-5)
- ✓ Optional toasts and toolbar slots
User Experience
- ✓ Status bar with live feedback
- ✓ In-app help overlay (F1, F10 alt)
- ✓ Quick reference (Shift+F1)
- ✓ Native configurator (F11)
- ✓ Freeze mode (Ctrl+Shift+F or --freeze argument at start)
- ✓ Presenter mode (Ctrl+Shift+M)
- ✓ Command palette (Ctrl+K)
- ✓ Named sessions and session manager
- ✓ Light passthrough click-through mode
- ✓ Selection properties panel (Ctrl+Alt+P)
- ✓ Context menu copy/paste at cursor
- ✓ Background daemon mode
- ✓ System tray integration
Zoom & Callouts
-
✓
Zoom in/out Ctrl+Alt + scroll, or Ctrl+Alt++ / -
-
✓
Reset zoom instantly Ctrl+Alt+0
-
✓
Lock the zoomed view Ctrl+Alt+L
-
✓
Pan the zoom window Middle drag, or ↑ ↓ ← →
Install & Set Up
Choose one install path: Option A (no CLI, click and install) or Option B (CLI/package manager with auto-updates). Daemon mode is preferred for daily use because it toggles instantly and keeps your session.
Option A: No CLI (click and install)
Direct linksUse these if you prefer installing from your browser/file manager instead of typing package-manager commands.
Important: Direct GitHub .deb/.rpm installs are one-off installs and do not auto-update. Use the repo install commands below for automatic updates.
DEB: Ubuntu, Debian, Linux Mint, Pop!_OS, and other Debian-based distros
RPM: Fedora, RHEL, Rocky Linux, AlmaLinux, Nobara, and other RPM-based distros
Need the full assets list? Open latest release.
After install, start daemon mode once (preferred): systemctl --user enable --now wayscriber.service
Recommended Option B: CLI/package-manager install steps for auto-updates
Install (GNOME / DEB)
Repo (auto-updates, recommended)
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
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: install the configurator (GUI)
Repo package
sudo apt install wayscriber-configurator
Prefer a one-off install? Grab the matching .deb from the release page.
Set up & use (GNOME)
Daemon mode (recommended)
preferredWayscriber stays running in the background. You toggle the overlay on/off with a keyboard shortcut — instant, no startup delay. Best for daily use.
1. Start the daemon
systemctl --user enable --now wayscriber.service
2. Add a keyboard shortcut (Settings → Keyboard → Custom Shortcuts)
- Click +, name it Wayscriber Toggle.
- Command:
wayscriber --daemon-toggle - Set a key (e.g., Super+G).
On Ubuntu GNOME, Super+D is often already reserved, so Super+G is a safer default.
3. Press your shortcut to draw, press it again to hide
One-shot mode (alternative)
Opens the overlay once and exits when you close it. Good for quick tests.
Or just search for Wayscriber in the Activities overview — no terminal needed.
wayscriber --active
F1 shows help (F10 alt), F11 opens the configurator when installed.
Install (KDE / DEB)
Repo (auto-updates)
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
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: install the configurator (GUI)
Repo package
sudo apt install wayscriber-configurator
Prefer a one-off install? Grab the matching .deb from the release page.
Set up & use (KDE)
Daemon mode (recommended)
preferredRuns in the background; toggle the overlay instantly with a shortcut.
systemctl --user enable --now wayscriber.service
Create a global shortcut
- Open Settings → Keyboard → Shortcuts.
- Select Add new → Command or Script, then click OK.
- Set Command to
wayscriber --daemon-toggle. - Set Name to Wayscriber Toggle.
- Assign a key (e.g., Meta+Shift+D) and apply.
One-shot mode (alternative)
Opens once and exits when done. Good for quick tests.
Or just search for Wayscriber in the application launcher — no terminal needed.
wayscriber --active
Install
Repo (auto-updates)
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
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: install the configurator (GUI)
Repo package
sudo apt install wayscriber-configurator
Prefer a one-off install? Grab the matching .deb from the release page.
Set up & use
Daemon mode (recommended)
preferredRuns in the background; toggle the overlay instantly with a shortcut. Best for daily use.
systemctl --user enable --now wayscriber.service
Bind this command to a shortcut in your desktop/WM
wayscriber --daemon-toggle
Define the toggle only once. If your desktop shortcut environment does not resolve wayscriber from PATH, use the absolute path from command -v wayscriber.
One-shot mode (alternative)
Opens once and exits when done. Good for quick tests.
Or just search for Wayscriber in your application menu or launcher — no terminal needed.
wayscriber --active
Tip: F11 opens the configurator when installed; F1 shows help (F10 alt).
Install
Repo (auto-updates, recommended)
cat <<'EOF' | sudo tee /etc/yum.repos.d/wayscriber.repo
[wayscriber]
name=Wayscriber Repo
baseurl=https://wayscriber.com/rpm
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://wayscriber.com/rpm/RPM-GPG-KEY-wayscriber.asc
EOF
sudo dnf clean all
sudo dnf install wayscriber
One-off .rpm (no auto-updates)
wget -O wayscriber-x86_64.rpm https://github.com/devmobasa/wayscriber/releases/latest/download/wayscriber-x86_64.rpm
sudo rpm -Uvh wayscriber-x86_64.rpm
Optional: install the configurator (GUI)
Repo package
sudo dnf install wayscriber-configurator
Prefer a one-off install? Grab the matching .rpm from the release page.
Set up & use
Daemon mode (recommended)
preferredRuns in the background; toggle the overlay instantly with a shortcut.
systemctl --user enable --now wayscriber.service
GNOME shortcut (Settings → Keyboard → Custom Shortcuts)
- Click +, name it Wayscriber Toggle.
- Command:
wayscriber --daemon-toggle. - Set a key (e.g., Super+G).
On GNOME, Super+D is frequently reserved, so Super+G is recommended.
One-shot mode (alternative)
Opens once and exits when done. Good for quick tests.
Or just search for Wayscriber in the Activities overview — no terminal needed.
wayscriber --active
Install (KDE / RPM)
Repo (auto-updates, recommended)
cat <<'EOF' | sudo tee /etc/yum.repos.d/wayscriber.repo
[wayscriber]
name=Wayscriber Repo
baseurl=https://wayscriber.com/rpm
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://wayscriber.com/rpm/RPM-GPG-KEY-wayscriber.asc
EOF
sudo dnf clean all
sudo dnf install wayscriber
One-off .rpm (no auto-updates)
wget -O wayscriber-x86_64.rpm https://github.com/devmobasa/wayscriber/releases/latest/download/wayscriber-x86_64.rpm
sudo rpm -Uvh wayscriber-x86_64.rpm
Optional: install the configurator (GUI)
Repo package
sudo dnf install wayscriber-configurator
Prefer a one-off install? Grab the matching .rpm from the release page.
Set up & use (KDE)
Daemon mode (recommended)
preferredRuns in the background; toggle the overlay instantly with a shortcut.
systemctl --user enable --now wayscriber.service
Create a global shortcut
- Open Settings → Keyboard → Shortcuts.
- Select Add new → Command or Script, then click OK.
- Command:
wayscriber --daemon-toggle. - Name: Wayscriber Toggle.
- Set a key (e.g., Meta+Shift+D) and apply.
One-shot mode (alternative)
Opens once and exits when done. Good for quick tests.
Or just search for Wayscriber in the application launcher — no terminal needed.
wayscriber --active
Install (AUR)
Pick helper + package type
yay
yay -S wayscriber
yay -S wayscriber-bin
wayscriber = builds from source; wayscriber-bin = prebuilt binaries for faster installs.
paru
paru -S wayscriber
paru -S wayscriber-bin
wayscriber = builds from source; wayscriber-bin = prebuilt binaries for faster installs.
Optional: install the configurator (GUI)
yay
yay -S wayscriber-configurator
paru
paru -S wayscriber-configurator
Set up & use
Daemon mode (recommended)
preferredRuns in the background; toggle the overlay instantly with a shortcut.
systemctl --user enable --now wayscriber.service
Hyprland example binding
bind = SUPER, D, exec, wayscriber --daemon-toggle
Define the toggle only once. If Hyprland does not resolve wayscriber from PATH, use the absolute path from command -v wayscriber.
One-shot mode (alternative)
Opens once and exits when done. Good for quick tests.
Or just search for Wayscriber in your application menu or launcher — no terminal needed.
wayscriber --active
Tip: Apply similar bindings in Sway, River, or other WMs using the same toggle command.
Install (Nix Flake)
Run without installing
nix run github:devmobasa/wayscriber
Install to profile
nix profile install github:devmobasa/wayscriber
Add to NixOS configuration (flake)
# flake.nix inputs
inputs.wayscriber.url = "github:devmobasa/wayscriber";
# In configuration
environment.systemPackages = [
inputs.wayscriber.packages.${pkgs.system}.default
];
Optional: install the configurator (GUI)
nix profile install github:devmobasa/wayscriber#wayscriber-configurator
Set up & use
Daemon mode (recommended)
preferredRuns in the background; toggle the overlay instantly with a shortcut.
systemctl --user enable --now wayscriber.service
Hyprland example binding
bind = SUPER, D, exec, wayscriber --daemon-toggle
Define the toggle only once. If Hyprland does not resolve wayscriber from PATH, use the absolute path from command -v wayscriber.
One-shot mode (alternative)
Opens once and exits when done. Good for quick tests.
Or just search for Wayscriber in your application menu or launcher — no terminal needed.
wayscriber --active
Development shell
nix develop github:devmobasa/wayscriber
Tip: The flake provides both wayscriber and wayscriber-configurator packages.
Build from Source (advanced)
For contributors and power usersShow build steps Collapsed by default
Install dependencies (pick your distro):
Ubuntu / Debian
sudo apt-get install build-essential pkg-config libxkbcommon-dev libcairo2-dev libwayland-dev libpango1.0-dev
Fedora
sudo dnf install gcc gcc-c++ make pkgconf-pkg-config cairo-devel wayland-devel pango-devel libxkbcommon-devel cairo-gobject-devel
Screenshot tools (source/tarball only):
Ubuntu / Debian
sudo apt-get install wl-clipboard grim slurp
Fedora
sudo dnf install wl-clipboard grim slurp
Then build:
git clone https://github.com/devmobasa/wayscriber.git
cd wayscriber
cargo build --release
Don't have Rust yet? Install it with rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
How to Use
Daemon Mode (Background Service)
PreferredRecommended: faster to toggle, more reliable, and better for daily use.
Run wayscriber in the background and toggle with a keybind:
# Enable the service
systemctl --user enable --now wayscriber.service
Hyprland keybinding steps
Add to ~/.config/hypr/hyprland.conf:
bind = SUPER, D, exec, wayscriber --daemon-toggle
Define the toggle only once. If Hyprland does not resolve wayscriber from PATH, use the absolute path from command -v wayscriber.
Reload Hyprland:
hyprctl reload
Ubuntu (GNOME) keybinding instructions
- Open Settings → Keyboard → Keyboard Shortcuts.
- Scroll to the bottom, select Custom Shortcuts, then click + (Add).
- Set Name to Wayscriber Toggle.
- Set Command to
wayscriber --daemon-toggle. - Click Set Shortcut and press Super+G.
Make sure the wayscriber daemon is running. Define the toggle only once, and if your shortcut environment does not resolve wayscriber from PATH, use the absolute path from command -v wayscriber. On Ubuntu GNOME, Super+D is often already reserved.
Ubuntu (KDE) keybinding instructions
- Open Settings → Keyboard → Shortcuts.
- Select Add new → Command or Script, then click OK.
- Command:
wayscriber --daemon-toggle. - Name: Wayscriber Toggle.
- Set a key (e.g., Meta+Shift+D) and apply.
Ensure systemctl --user enable --now wayscriber.service is active so the toggle works.
One-Shot Mode (Simple)
Quick launch for occasional use; exit when done:
wayscriber --active
Hyprland keybinding (one-shot)
Add to ~/.config/hypr/hyprland.conf:
bind = SUPER, D, exec, wayscriber --active
Press F1 for help (F10 alt), Shift+F1 for quick reference, F11 for configurator, toggle toolbars with F2 (F9 alt), freeze with Ctrl+Shift+F, enter presenter mode with Ctrl+Shift+M, enter light passthrough with Ctrl+Shift+L while the overlay has focus, use a global wayscriber --light-toggle shortcut to get back out, open the command palette with Ctrl+K, open the radial menu with middle-click (scroll to adjust size), exit with Esc / Ctrl+Q, and toggle the status bar with F4 (F12 alt).
Session Continuity
Enable Session storage to pick up where you left off, or use named session files for one drawing set per lecture, meeting, or project. The overlay Session panel can open, save as, inspect, clear, and reopen recent sessions; the configurator manages the catalog and inactive files.
Quick Controls Reference
Drawing
- Freehand: Drag with mouse
- Line: Shift + drag
- Rectangle: Ctrl + drag
- Ellipse: Tab + drag
- Arrow: Ctrl+Shift + drag
- Text: Press T, click, type
- Sticky note: Press N, click, type
- Select/move: Alt + drag or V
- Drag maps: Configurable per button
Boards & Modes
- Whiteboard: Ctrl+W
- Blackboard: Ctrl+B
- Transparent: Ctrl+Shift+T
- Board slots: Ctrl+Shift+1 - 9
- Pages: Ctrl+Alt + Left/Right
- New page: Ctrl+Alt+N
- Light passthrough: Ctrl+Shift+L while focused
- Global light exit/toggle: wayscriber --light-toggle
- Examples: Hyprland and KDE
Colors
- R - Red
- G - Green
- B - Blue
- Y - Yellow
- O - Orange
- P - Pink
- W - White
- K - Black
Editing
- Undo: Ctrl+Z
- Redo: Ctrl+Shift+Z
- Copy: Ctrl+Alt+C
- Paste: Ctrl+Alt+V
- Context menu: Right-click / Shift+F10
- Clear all: E
- Toolbars: F2 / F9
- Help: F1 (F10)
- Configurator: F11
- Command palette: Ctrl+K
- Status bar: F4 / F12
- Selection props: Ctrl+Alt+P
- Freeze: Ctrl+Shift+F
- Exit: Escape / Ctrl+Q
Presets
- Apply: 1 - 5
- Save: Shift+1 - Shift+5
- Stores: Full per-tool profile
- Clear: Set in config
Zoom
- Zoom in/out: Ctrl+Alt + scroll
- Step zoom: Ctrl+Alt++ or Ctrl+Alt+-
- Reset: Ctrl+Alt+0
- Lock: Ctrl+Alt+L
- Pan: Middle drag or arrows