| protocols | ||
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| README.md | ||
Blast
A pretty Wayland screenshot tool supporting multiple capture modes, including window-aware capture.
│ Note │ This tool includes a proof-of-concept implementation of the │ xx-foreign-toplevel-geometry-v1 protocol for tracking client geometry. │ It is experimental and may be incomplete or subject to change.
Supported Compositors
- Hyprland
- Wry
Features
Actions
copy- Copy to clipboardsave- Save to file (or - for stdout)copysave- Copy and save, save path defaults to home directoryedit- Open in image editorcheck- Verify protocol support
Subjects
screen- All monitors stitched into a single image at logical resolutionoutput- The currently focused monitoractive- The currently focused windowarea- Interactive selection with window snap hints (likeslurp -w)region- Free-form interactive selection with no snap hints
Fine Tune
--no-shadow Disable shadow and rounding entirely
--radius px Corner radius
--shadow-offset X,Y Shadow offset
--shadow-alpha 0-255 Shadow opacity
--shadow-spread PX Shadow spread distance
--shadow-blur PX Shadow blur radius
Freeze overlay
-f / --freeze captures the current screen state before the selection UI appears and renders it as a static layer shell overlay. The screen appears frozen while you draw your selection and is captured directly from the compositor.
The screenshot is taken while the freeze is still active, so what you see is exactly what you get.
Cursor inclusion
-c / --cursor includes the cursor in the screenshot.
Wait
-w / --wait N waits N seconds before capturing. Useful for capturing tooltips or hover states.
Notifications
-n / --notify sends a desktop notification on completion with the saved file path as the notification body.
Editor integration
blast edit saves the screenshot to /tmp/<timestamp>.png and opens it in your configured editor. Set $BLAST_EDITOR to override the default (gimp).
Save path resolution
Output paths follow XDG priority: $XDG_SCREENSHOTS_DIR → $XDG_PICTURES_DIR → $HOME. Default filenames are <window-class>_<random>.png.
Usage examples
# Copy a window-snapping region selection to clipboard, with freeze and shadow
blast -fn copy area
# Save the active window to ~/Pictures
blast save active
# Copy full screen of all monitors to clipboard
blast copy screen
# Save a free-form selection to a specific path
blast save region ~/screenshots/test.png
# Copy to clipboard and save, no shadow
blast --no-shadow copysave area
# Open focused monitor screenshot in editor
blast edit output
Building
cargo build --release