If you installed wayscriber via a package (deb/rpm/aur), enable the user service:
systemctl --user enable --now wayscriber.serviceThe service keeps the daemon running in the background; you only need a keybind to toggle the overlay.
If you installed wayscriber-configurator, you can set this up entirely in GUI:
- Open
wayscriber-configurator. - Go to the
Daemontab. - Click
Install/Update Service. - Click
Enable + Start. - Set your shortcut and click
Apply Shortcut.
Desktop-specific shortcut handling:
- GNOME: creates/updates a GNOME custom shortcut that runs
wayscriber --daemon-toggle. - GNOME migrations:
Install/Update ServiceandApply Shortcutremove stale~/.config/systemd/user/wayscriber.service.d/shortcut.conffiles so old portal settings do not override GNOME behavior. - KDE/Plasma: writes a systemd user drop-in with
WAYSCRIBER_ENABLE_PORTAL_SHORTCUTS=1andWAYSCRIBER_PORTAL_SHORTCUTfor portal global shortcut handling. - Hyprland: light passthrough controls use native Hyprland bindings, not the portal shortcut path.
Run the install script:
./tools/install.shThis will:
- Build the release binary
- Copy it to
~/.local/bin/wayscriber - Tell you how to add Hyprland keybind
If you prefer manual installation:
# Build
cargo build --release
# Copy to user bin
mkdir -p ~/.local/bin
cp target/release/wayscriber ~/.local/bin/
chmod +x ~/.local/bin/wayscriber
# Make sure ~/.local/bin is in your PATH
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrcsystemctl --user enable --now wayscriber.serviceAdd the toggle keybinding to ~/.config/hypr/hyprland.conf:
# wayscriber - Screen annotation daemon (Super+D to toggle)
bind = SUPER, D, exec, wayscriber --daemon-toggleUse only one toggle binding. Duplicate SUPER+D entries can fire twice and immediately undo the toggle.
If your shortcut environment does not resolve wayscriber from PATH, use the absolute path from command -v wayscriber.
Add to ~/.config/hypr/hyprland.conf:
# wayscriber - Screen annotation daemon (Super+D to toggle)
exec-once = wayscriber --daemon
bind = SUPER, D, exec, wayscriber --daemon-toggleThen reload:
hyprctl reloadNow press Super+D to toggle the overlay on/off!
Light passthrough needs compositor/global shortcuts because Wayscriber deliberately passes keyboard and pointer input to the app below while passthrough is active. The default F6 binding is a Wayscriber in-overlay shortcut, not an OS-level shortcut; do not rely on it to exit after passthrough starts. Use the bindings below for reliable control.
The configurator can install a native Hyprland include file for this. Manual equivalent for Arch + Hyprland:
# wayscriber - light passthrough controls
$wayscriber = wayscriber
unbind = SUPER ALT, L
bind = SUPER ALT, L, exec, $wayscriber --light-toggle
unbind = SUPER ALT, D
bind = SUPER ALT, D, exec, $wayscriber --light-draw-toggle
unbind = SUPER ALT, F
bind = SUPER ALT, F, exec, $wayscriber --light-draw-on
bindr = SUPER ALT, F, exec, $wayscriber --light-draw-off
# Optional: lower side mouse button (commonly mouse:275; verify on your mouse)
bind = , mouse:275, exec, $wayscriber --light-toggleUse --light-draw-on on key/button press and --light-draw-off on release for draw-while-held.
The unbind lines prevent duplicate manual bindings for these same keys from firing twice.
If your shortcut environment does not resolve wayscriber, replace it with the absolute path from command -v wayscriber.
Enable the daemon first:
systemctl --user enable --now wayscriber.serviceThe configurator can set up the main overlay toggle through the desktop portal. Light passthrough controls are manual for now: add global shortcuts in KDE System Settings that run these commands:
wayscriber --light-toggle
wayscriber --light-draw-toggle
wayscriber --light-draw-on
wayscriber --light-draw-offUse --light-toggle for passthrough on/off and --light-draw-toggle for sticky drawing. Draw-while-held needs a shortcut system that can run one command on press and another on release; if your KDE shortcut UI only supports activation commands, use the sticky draw toggle instead.
Light passthrough requires compositor overlay support through layer-shell. If Wayscriber reports that passthrough is unavailable, your session is using a fallback path where regular app windows cannot provide a reliable click-through overlay.
GNOME setup works for the normal overlay toggle:
systemctl --user enable --now wayscriber.serviceThen use the configurator's Daemon tab, or create a GNOME custom shortcut that runs:
wayscriber --daemon-toggleFreeze works on GNOME when the screenshot portal is available and responsive; the first use may show a desktop permission prompt. Portal capture can be slower than compositor screencopy, and mixed-DPI or multi-monitor setups may depend on client-side crop behavior.
Light passthrough mode is not available in the regular app on stock GNOME Wayland. GNOME's xdg-shell fallback does not expose the shell-level overlay behavior needed to keep annotations visible while input goes to apps underneath, so --light-toggle is intentionally disabled instead of pretending to pass input through. A GNOME Shell extension companion would be the real path for that workflow.
For quick one-time annotations without daemon:
# Run directly (not recommended - daemon mode is better)
wayscriber --activeThis starts a fresh overlay each time. Exit with Escape.
Note: We recommend using daemon mode with Super+D instead as it preserves your drawings.
- Daemon starts automatically → Runs in background with system tray icon (systemd user service or compositor autostart)
- Press Super+D → Drawing overlay appears
- Draw your annotations → All tools available
- Press Escape or Ctrl+Q → Overlay hides (daemon keeps running)
- Press Super+D again → Overlay reappears with previous drawings intact
No system tray/StatusNotifier watcher? Start the daemon with wayscriber --daemon --no-tray (or set WAYSCRIBER_NO_TRAY=1) to skip the tray icon; the Super+D toggle still works.
- Run command → Fresh drawing overlay appears
- Draw your annotations → All tools available
- Press Escape → Drawing overlay closes completely
- Run command again → New fresh overlay (previous drawings lost)
Note: Daemon mode with Super+D is recommended as it preserves your drawings when you toggle the overlay.
Test the setup:
# Test binary is accessible
which wayscriber
# Test daemon mode
systemctl --user status wayscriber.service || wayscriber --daemon &
# Test keybind
Press <kbd>Super+D</kbd> (should show overlay)
Press <kbd>Escape</kbd> (should hide overlay)- If you enabled
wayscriber.service, systemd handles autostart. - If you used compositor autostart, the
exec-onceline starts wayscriber on login.
Keybind not working?
- Check
hyprctl reloadwas run - Check for conflicts:
hyprctl binds | grep "SUPER, D" - Make sure you only defined the toggle once
- Try a different key combo
- If
wayscriberis not found from the compositor, use the absolute path fromcommand -v wayscriber
Binary not found?
- Check PATH:
echo $PATH | grep .local/bin - Add to PATH if missing (see Manual Install)
- Restart terminal after PATH change
Want different key?
- Edit hyprland.conf
- Examples:
SUPER, D→ Super+DALT, D→ Alt+DCTRL SHIFT, 2→ Ctrl+Shift+2
rm ~/.local/bin/wayscriber
# Remove keybind from hyprland.confBest setup (daemon mode):
- Install:
./tools/install.sh - Add to hyprland.conf:
exec-once = wayscriber --daemon bind = SUPER, D, exec, wayscriber --daemon-toggle
- Reload:
hyprctl reload - Use: Press Super+D to toggle overlay
Done! Drawings persist, tray icon available. ✨