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 GNOME, KDE, Hyprland, Sway, River, and other 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, refine selections, and jump between boards without breaking flow.
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
- ✓ Eraser tool
Board Modes
- ✓ Whiteboard mode
- ✓ Blackboard mode
- ✓ Named boards + custom backgrounds
- ✓ Auto pen contrast
- ✓ Isolated frames
- ✓ Transparent overlay
- ✓ Board pages for multi-step guides
Customization
- ✓ Quick color palette (8 colors)
- ✓ Adjustable line thickness
- ✓ Custom fonts (Pango)
- ✓ Scroll wheel adjustments
- ✓ Customizable toolbars (show/hide sections)
- ✓ TOML configuration file
Presets
- ✓ Save tool + color + size combos
- ✓ 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)
- ✓ Session persistence with tray/config toggle
- ✓ Selection properties panel (Ctrl+Alt+P)
- ✓ Background daemon mode
- ✓ System tray integration
Zoom & Callouts
-
✓
Zoom in/out Ctrl+Alt + scroll or Ctrl+Alt++ / Ctrl+Alt+-
-
✓
Reset zoom instantly Ctrl+Alt+0
-
✓
Lock the zoomed view Ctrl+Alt+L
-
✓
Pan the zoom window Middle drag or arrow keys
Install & Set Up
Pick your desktop to get both installation steps and the best way to start/trigger wayscriber.
Install (GNOME / RPM)
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)
Keep the daemon running
systemctl --user enable --now wayscriber.service
Add a GNOME shortcut (Settings → Keyboard → Custom Shortcuts)
- Click +, name it Wayscriber Toggle.
- Command:
pkill -SIGUSR1 wayscriber. - Set a key (e.g., Ctrl+Shift+D).
One-shot without the daemon
wayscriber --active
F1 shows help (F10 alt), F11 opens the configurator when installed.
Install (GNOME / RPM)
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)
Keep the daemon running
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
pkill -SIGUSR1 wayscriber. - Set Name to Wayscriber Toggle.
- Assign a key (e.g., Meta+Shift+D) and apply.
Quick one-shot
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 (GNOME)
Daemon toggle for any desktop/WM
systemctl --user enable --now wayscriber.service
Bind this command to a shortcut
pkill -SIGUSR1 wayscriber
One-shot (no service)
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
Keep the daemon running
systemctl --user enable --now wayscriber.service
GNOME shortcut (Settings → Keyboard → Custom Shortcuts)
- Click +, name it Wayscriber Toggle.
- Command:
pkill -SIGUSR1 wayscriber. - Set a key (e.g., Ctrl+Shift+D).
One-shot
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)
Keep the daemon running
systemctl --user enable --now wayscriber.service
Create a global shortcut
- Open Settings → Keyboard → Shortcuts.
- Select Add new → Command or Script, then click OK.
- Command:
pkill -SIGUSR1 wayscriber. - Name: Wayscriber Toggle.
- Set a key (e.g., Meta+Shift+D) and apply.
One-shot
wayscriber --active
Ensure systemctl --user enable --now wayscriber.service is active so the toggle works.
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 (recommended)
systemctl --user enable --now wayscriber.service
Hyprland example binding
bind = SUPER, D, exec, pkill -SIGUSR1 wayscriber
One-shot (no service)
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 (recommended)
systemctl --user enable --now wayscriber.service
Hyprland example binding
bind = SUPER, D, exec, pkill -SIGUSR1 wayscriber
One-shot (no service)
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, pkill -SIGUSR1 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
pkill -SIGUSR1 wayscriber. - Click Set Shortcut and press Ctrl+Shift+D.
Make sure the wayscriber daemon is running; this shortcut sends it the toggle signal.
Ubuntu (KDE) keybinding instructions
- Open Settings → Keyboard → Shortcuts.
- Select Add new → Command or Script, then click OK.
- Command:
pkill -SIGUSR1 wayscriber. - 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, open the command palette with Ctrl+K, exit with Escape/Ctrl+Q, and toggle the status bar with F4 (F12 alt).
Session Continuity
Enable Session storage in the configurator to pick up where you left off. wayscriber keeps per-monitor boards, pen color, and thickness between launches, and you can disable the feature anytime for a clean slate.
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
Modes
- Whiteboard: Ctrl+W
- Blackboard: Ctrl+B
- Transparent: Ctrl+Shift+T
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
- 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
- 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