Wayscriber Docs
Wayscriber is a Wayland screen annotation tool for drawing on top of your desktop during demos, teaching, and screen shares.
These docs track the latest release. If you need an older version, use the GitHub release notes.
Start here
What you can do
- Draw on top of any screen
- Switch between transparent, whiteboard, and blackboard modes
- Zoom in/out, pan, and reset the view during callouts
- Draw while zoomed to highlight fine details
- Save tool presets for instant switching
- Undo/redo quickly and clear the canvas in one keypress
- Capture screenshots to file or clipboard
- Presenter helpers: freeze the screen and show click highlights
- Save and restore sessions across runs
- Configure everything with the GUI or the config file
Requirements
- A Wayland compositor that supports wlr-layer-shell
- Linux with Cairo, Pango, and Wayland libraries
What is Wayscriber
Wayscriber is a Wayland overlay for screen annotation. It lets you draw, highlight, and write on top of any window without switching apps, with built-in zoom for precise callouts.
You can run it as a background daemon and toggle the overlay instantly, or launch a one shot overlay when you need it.
Wayscriber is built for presenters, teachers, streamers, and anyone who wants fast visual callouts on Linux.
Why Wayscriber
Wayscriber exists to make live explanation feel effortless. It keeps you in flow during a demo or lesson while your audience stays oriented.
Key goals:
- Immediate access to drawing and highlighting
- Low friction switching between tools and modes
- Works across multiple Wayland compositors
- Practical defaults, with deep customization when you want it
Feature Highlights
- Freehand pen, line, rectangle, ellipse, arrow, and text tools
- Whiteboard, blackboard, and transparent overlay modes
- Session persistence across runs (optional)
- Fast toggle via daemon and keybind
- Screenshot capture to file or clipboard
- Preset slots for instant tool switching
- Configurator GUI and full config file control
- Zoom and freeze tools for callouts
- Context menu and selection tools for editing
Customization
- Toolbars are configurable, so you can show or hide the sections you care about.
The Gift Exchange
Wayscriber is built primarily for my own workflow. I share it as open source because it helps others and I like shipping the tool in public.
This project is a gift exchange, not a contract.
What that means:
- The software is free to use and you can rely on the license.
- Requests are welcome, but no one is owed features, timelines, or support.
- I have already shipped dozens of user requested features when they aligned with the project and I had time, and I will keep doing that when it makes sense.
- Bugs are fixed as quickly as I can, but there is no guaranteed response time.
If you want to influence the roadmap, the best ways are:
- Ask politely and explain the use case.
- Contribute code, docs, or testing.
- Share clear bug reports with steps to reproduce.
How to Ask for Features
Feature requests are welcome when they are clear and respectful. Good requests save time and make it easier to say yes.
A good request includes
- The problem you are trying to solve
- Your compositor and distro
- The exact workflow you want
- Why existing features are not enough
Ways to help
- Offer to test a build
- Share screenshots or short recordings
- Contribute a PR if you can
If a request does not fit the project or timing, the answer may still be no. That is normal and not personal.
Quick Start (5 min)
1) Install
If you are on Arch, the AUR packages are easiest:
yay -S wayscriber
# or
paru -S wayscriber
For other distros, see Installation.
2) Run once
Launch a one shot overlay to confirm it works:
wayscriber --active
Press Escape to exit.
3) Pick a run mode
For daily use, daemon mode is best:
wayscriber --daemon
If you have the user service installed:
systemctl --user enable --now wayscriber.service
4) Add a keybind
Hyprland example:
bind = SUPER, D, exec, pkill -SIGUSR1 wayscriber
Use your compositor settings to bind the same command.
5) Learn the basics
- F1 opens the help overlay (F10 is the alternative)
- F11 opens the configurator (if installed)
- F2 or F9 toggles the toolbars
- Escape or Ctrl+Q exits the overlay
Installation
Ubuntu / Debian
Repo install (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
Configurator (repo):
sudo apt install wayscriber-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
Configurator .deb (no auto-updates):
wget -O wayscriber-configurator-amd64.deb https://github.com/devmobasa/wayscriber/releases/latest/download/wayscriber-configurator-amd64.deb
sudo apt install ./wayscriber-configurator-amd64.deb
Fedora / RHEL
Repo install (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
Configurator (repo):
sudo dnf install wayscriber-configurator
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
Configurator .rpm (no auto-updates):
wget -O wayscriber-configurator-x86_64.rpm https://github.com/devmobasa/wayscriber/releases/latest/download/wayscriber-configurator-x86_64.rpm
sudo rpm -Uvh wayscriber-configurator-x86_64.rpm
Arch Linux (AUR)
Build from source:
yay -S wayscriber
# or
paru -S wayscriber
Prebuilt binary:
yay -S wayscriber-bin
# or
paru -S wayscriber-bin
Configurator (GUI):
yay -S wayscriber-configurator
# or
paru -S wayscriber-configurator
Build from source (any distro)
Dependencies:
# Debian/Ubuntu
sudo apt-get install 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
Build:
git clone https://github.com/devmobasa/wayscriber.git
cd wayscriber
cargo build --release
The binary will be at target/release/wayscriber.
Configurator build (optional):
cargo build --release --manifest-path configurator/Cargo.toml
Install script (optional):
cargo build --release
./tools/install.sh
The installer copies the binary to ~/.local/bin/wayscriber and offers to set up Hyprland keybinds.
Optional capture tools
Wayscriber can use these for fast captures:
# Ubuntu / Debian
sudo apt-get install wl-clipboard grim slurp
# Fedora
sudo dnf install wl-clipboard grim slurp
First Run and Keybinds
Wayscriber has two run modes:
One shot mode
Start the overlay immediately and exit when you are done.
wayscriber --active
Good for quick callouts or testing.
Daemon mode
Run in the background and toggle the overlay when needed.
wayscriber --daemon
If you have the user service installed:
systemctl --user enable --now wayscriber.service
Add a keybind that sends SIGUSR1 to toggle the overlay:
bind = SUPER, D, exec, pkill -SIGUSR1 wayscriber
Default keys you should know
- F1 opens help (F10 is the alternative)
- F2 or F9 toggles the toolbars
- F11 opens the configurator (if installed)
- F4 toggles the status bar (F12 is the alternative)
- Escape or Ctrl+Q exits the overlay
Overlay vs Daemon
Overlay (one shot)
- Starts immediately and exits when you close it
- Simple and predictable
- Best for quick annotations
Command:
wayscriber --active
Daemon (background)
- Runs in the background and keeps your drawings between toggles
- Faster to access during presentations
- Works well with a keybind
Command:
wayscriber --daemon
If installed, the systemd user service is the most reliable way to keep the daemon running.
Boards and Modes
Wayscriber supports three board modes:
- Transparent overlay (default)
- Whiteboard
- Blackboard
Each mode has its own canvas, so you can switch without losing work.
Default mode keys
- Toggle whiteboard: Ctrl+W
- Toggle blackboard: Ctrl+B
- Return to transparent: Ctrl+Shift+T
You can change these in the config file under [keybindings].
Tools and Shapes
Wayscriber focuses on fast input with simple modifiers.
Core tools
- Freehand: drag
- Line: Shift + drag
- Rectangle: Ctrl + drag
- Ellipse: Tab + drag
- Arrow: Ctrl+Shift + drag
- Text: press T, click to place, type, press Enter
Quick actions
- Undo: Ctrl+Z
- Redo: Ctrl+Shift+Z
- Clear canvas: E
- Presets: 1-5 apply, Shift+1-5 save (configurable)
- Thickness up: + or = or scroll down
- Thickness down: - or _ or scroll up
- Context menu: Right click or Shift+F10
Use F1 for the full help overlay (or F10).
Capture and Export
Wayscriber includes fast screenshot capture and export tools.
Dependencies
For the best capture workflow, install:
wl-clipboardgrimslurp
If these are missing, Wayscriber falls back to xdg-desktop-portal.
Default capture keys
- Full screen: Ctrl+Shift+P
- Active window: Ctrl+Shift+O
- Selection: Ctrl+Shift+I
Clipboard and file variants
- Clipboard full screen: Ctrl+C
- File full screen: Ctrl+S
- Clipboard selection: Ctrl+Shift+C
Export
Exports include full boards, cropped content, and board JSON files. Configure defaults under [export] in the config file.
Presenting and Teaching
Recommended setup
- Run the daemon so the overlay is instant.
- Bind a single key to toggle the overlay.
- Use whiteboard or blackboard for long explanations and transparent mode for quick callouts.
- Keep the status bar and toolbars on until the controls feel automatic.
Before you present
- Start the daemon ahead of time and do a quick toggle test.
- Pick a thicker pen size for visibility on streams and recordings.
- If you rely on click highlights, enable them in the configurator.
During the session
- Freeze the screen to explain without the background moving.
- Zoom for details, then reset to keep orientation.
- Clear the canvas when a section is done so the next topic is clean.
Helpful keys
- Help: F1 (F10 is the alternative)
- Toolbars: F2 or F9
- Status bar: F4 (F12 is the alternative)
- Freeze: Ctrl+Shift+F
- Zoom: Ctrl+Alt + scroll (Ctrl+Alt+0 to reset)
- Clear canvas: E
Recording and Streaming
Tips for recording:
- Use daemon mode so your overlay is ready before you start recording.
- Prefer whiteboard or blackboard for clear contrast.
- Use thicker strokes for visibility at lower resolutions.
If your capture tool records the overlay, it will appear in your final video by default.
Multi Monitor Tips
- Enable per output sessions under
[session]if you want separate canvases per display. - Use the overlay toggle on the monitor you want to annotate.
- On GNOME fallback, you can set
WAYSCRIBER_XDG_OUTPUTto match a specific monitor name.
If you see overlays on the wrong display, check your compositor output names and confirm your config or env vars.
Compositor Guides
Hyprland
Daemon mode with a toggle keybind:
exec-once = wayscriber --daemon
bind = SUPER, D, exec, pkill -SIGUSR1 wayscriber
Reload Hyprland with hyprctl reload.
GNOME
Use Settings -> Keyboard -> Custom Shortcuts.
Choose one of these commands:
- One shot:
wayscriber --active - Daemon toggle:
pkill -SIGUSR1 wayscriber(run the daemon first)
If you want fullscreen on GNOME, set WAYSCRIBER_XDG_FULLSCREEN=1. If GNOME renders fullscreen as opaque, leave it off or force it with WAYSCRIBER_XDG_FULLSCREEN_FORCE=1.
To target a specific monitor, set WAYSCRIBER_XDG_OUTPUT to a matching output name.
KDE
Use System Settings -> Shortcuts -> Custom Shortcuts.
Choose one of these commands:
- One shot:
wayscriber --active - Daemon toggle:
pkill -SIGUSR1 wayscriber(run the daemon first)
Configurator (GUI)
Wayscriber has a native configurator for editing settings without touching the config file.
Launch
- Press F11 inside the overlay
- Or run
wayscriber-configurator
If the configurator is not installed, install wayscriber-configurator or point to it with WAYSCRIBER_CONFIGURATOR.
What you can change
- Drawing defaults: color, thickness, font family, weight, style, text background
- Arrow settings: length, angle, head placement
- Performance: buffer count and vsync
- UI: status bar toggle/position/style, help overlay styling, click highlight settings, frozen badge
- UI toolbar: preset visibility and preset toast feedback
- Board modes: enable, default mode, board colors, auto adjust pen color
- Capture: enable, save directory, filename template, format, clipboard behavior, exit after capture
- Session: per mode persistence, restore tool state, per output, storage mode, size limits, compression, backups
- Keybindings: edit all shortcuts in one place
Workflow
- Reload: re-read the config from disk
- Defaults: load built-in defaults without saving
- Save: validate inputs and write the config with a backup
Config File Overview
The config file lives at:
~/.config/wayscriber/config.toml
To start from the defaults:
mkdir -p ~/.config/wayscriber
cp /usr/share/doc/wayscriber/config.example.toml ~/.config/wayscriber/config.toml
If you built from source, use the repo file at code/config.example.toml.
Restart Wayscriber after changing the config to ensure settings apply.
Config Reference
This is a compact map of the config file. For the full list of settings, see code/config.example.toml in the repo.
drawing
Defaults for pen color, thickness, eraser behavior, font size, and undo limits.
presets
Quick tool slots for saving and applying tool + color + size combinations.
arrow
Arrowhead length, angle, and head placement.
performance
Buffer count and vsync.
ui
Status bar, click highlights, context menu, toolbars, and help overlay styling.
board
Enable whiteboard and blackboard modes and set their colors.
tablet
Stylus support when built with the tablet feature flag.
capture
Screenshot enablement, save directory, filename templates, and clipboard behavior.
export
Export directories, filenames, padding, and background options.
session
Persistence settings, storage location, compression, and backups.
keybindings
Full keyboard shortcut map. Each action can have multiple keys.
Full reference: https://github.com/devmobasa/wayscriber/blob/main/code/config.example.toml
Profiles and Presets
Tool presets (quick slots)
Presets let you save a tool + color + size combination and switch instantly.
Defaults:
- Apply preset 1-5 with keys
1to5 - Save preset 1-5 with
Shift+1toShift+5
Configure them in config.toml:
[presets]
slot_count = 5
[presets.slot_1]
name = "Red pen"
tool = "pen"
color = "red"
size = 3.0
The presets section can be shown in the side toolbar and can display apply/save/clear toasts.
Config profiles (file switching)
Wayscriber uses a single config file. You can simulate profiles by keeping multiple files and symlinking the one you want.
Example:
mkdir -p ~/configs
cp config.example.toml ~/configs/wayscriber-presentation.toml
cp config.example.toml ~/configs/wayscriber-recording.toml
ln -sf ~/configs/wayscriber-presentation.toml ~/.config/wayscriber/config.toml
Switch the symlink and restart Wayscriber to apply the new profile.
CLI Reference
Run wayscriber --help for the full list. Key options:
--daemon,-d: run as background daemon--active,-a: start active (one shot overlay)--mode <MODE>: initial mode (transparent, whiteboard, blackboard)--no-tray: disable system tray in daemon mode--clear-session: delete persisted session data--session-info: show session paths and status--freeze: start with frozen background--exit-after-capture: exit after capture completes--no-exit-after-capture: keep overlay open after capture--resume-session: force session resume on--no-resume-session: force session resume off--about: show the About window--help: show help--version: show version
Environment Variables
Wayscriber supports optional environment overrides.
Core overrides
WAYSCRIBER_NO_TRAY=1disables the system tray in daemon mode.WAYSCRIBER_RESUME_SESSION=1forces session resume on.WAYSCRIBER_CONFIGURATOR=/path/to/wayscriber-configuratorsets the configurator path.
GNOME and xdg-shell fallback
WAYSCRIBER_XDG_OUTPUT=NAMEselects a preferred output by name.WAYSCRIBER_XDG_FULLSCREEN=1requests fullscreen overlay.WAYSCRIBER_XDG_FULLSCREEN_FORCE=1forces fullscreen even if GNOME warns about opacity.
UI and debug
WAYSCRIBER_FORCE_INLINE_TOOLBARS=1forces inline toolbars.WAYSCRIBER_DEBUG_DAMAGE=1enables debug damage output.WAYSCRIBER_DEBUG_TOOLBAR_DRAG=1enables toolbar drag logging.
Systemd Service
If your package installs the user service, you can manage Wayscriber with systemd.
Enable and start:
systemctl --user enable --now wayscriber.service
Status and logs:
systemctl --user status wayscriber.service
journalctl --user -u wayscriber.service -f
Restart:
systemctl --user restart wayscriber.service
If the service is not installed, run the daemon manually with wayscriber --daemon.
Common Issues
Overlay does not appear
- Confirm you are on Wayland.
- Run
wayscriber --activefrom a terminal to see errors.
Keybind does not toggle
- Make sure the daemon is running.
- Check your compositor shortcut settings.
- Verify the command is
pkill -SIGUSR1 wayscriber.
Tray icon is missing
- Some panels hide StatusNotifier icons.
- Run with
--no-trayif you do not need the tray.
Capture shortcuts do nothing
- Install
wl-clipboard,grim, andslurp. - Check your config under
[capture].
Configurator does not launch
- Install
wayscriber-configurator. - Or set
WAYSCRIBER_CONFIGURATORto its path.
Logs and Debugging
Run Wayscriber with logs:
RUST_LOG=info wayscriber --active
If you use the systemd service:
journalctl --user -u wayscriber.service -f
Include log output when reporting bugs.
Known Limitations
- Wayland only. X11 is not supported.
- Requires wlr-layer-shell or the xdg-shell fallback.
- Some compositors handle fullscreen or input differently.
- Capture shortcuts need external tools for best results.
FAQ
Does Wayscriber work on X11
No. Wayscriber is Wayland only.
Do I have to run the daemon
No. Use wayscriber --active for one shot mode.
Where is the config file
~/.config/wayscriber/config.toml
Does it work on GNOME and KDE
Yes, using the xdg-shell fallback. Some fullscreen behavior may vary by compositor.
Release Notes
These docs track the latest release only.
Release history is maintained on GitHub:
Contributing (Short)
Contributions are welcome when they fit the project direction.
Start here:
- Repository: https://github.com/devmobasa/wayscriber
If you are proposing a feature, open an issue first and explain the use case.
Architecture (Short)
Wayscriber is a Rust Wayland overlay that layers on top of the compositor using wlr-layer-shell when available, with an xdg-shell fallback.