Screenshot
███████╗ ██████╗██████╗ ███████╗███████╗███╗ ██╗ ██╔════╝██╔════╝██╔══██╗██╔════╝██╔════╝████╗ ██║ ███████╗██║ ██████╔╝█████╗ █████╗ ██╔██╗ ██║ ╚════██║██║ ██╔══██╗██╔══╝ ██╔══╝ ██║╚██╗██║ ███████║╚██████╗██║ ██║███████╗███████╗██║ ╚████║ ╚══════╝ ╚═════╝╚═╝ ╚═╝╚══════╝╚══════╝╚═╝ ╚═══╝
The dms screenshot command captures screenshots from Wayland displays with support for multiple capture modes, output formats, and clipboard integration.
Quick Start
# Region select, save file + clipboard
dms screenshot
# Full screen of focused output
dms screenshot full
# Clipboard only
dms screenshot --no-file
Press Escape to cancel region selection at any time.
Capture Modes
| Mode | Command | Description |
|---|---|---|
region | dms screenshot | Select a region interactively (default) |
full | dms screenshot full | Capture the focused output |
all | dms screenshot all | Capture all outputs combined |
output | dms screenshot output -o NAME | Capture a specific output by name |
window | dms screenshot window | Capture the focused window (Hyprland, Mango, niri) |
last | dms screenshot last | Capture the last selected region |
scroll | dms screenshot scroll | Select a region, then scroll to capture a stitched tall image |
List Available Outputs
dms screenshot list
Output Formats
Use --format or -f to specify the output format. Default is png.
| Format | Flag | Notes |
|---|---|---|
| PNG | -f png | Default, lossless |
| JPEG | -f jpg | Use -q to set quality (1-100) |
| PPM | -f ppm | Raw format |
# JPEG with custom quality
dms screenshot -f jpg -q 85
Options
| Flag | Short | Description |
|---|---|---|
--cursor | Include cursor in screenshot: on/off (default: off) | |
--stdout | Output to stdout (for piping) | |
--dir | -d | Output directory |
--filename | Output filename (auto-generated if empty) | |
--format | -f | Output format: png, jpg, ppm (default: png) |
--quality | -q | JPEG quality 1-100 (default: 90) |
--output | -o | Output name for 'output' mode |
--interval | Scroll mode capture interval in ms, 30-1000 (default: 45) | |
--no-clipboard | Don't copy to clipboard | |
--no-file | Don't save to file | |
--no-notify | Don't show notification | |
--config | -c | Custom DMS config directory path |
--help | -h | Show help |
Examples
Region Selection
# Interactive selection, save file + clipboard
dms screenshot
# File only, no clipboard
dms screenshot --no-clipboard
# Clipboard only, no file
dms screenshot --no-file
Full Screen Capture
# Focused output
dms screenshot full
# All outputs combined
dms screenshot all
# Specific output
dms screenshot output -o DP-1
Focused Window
dms screenshot window
Supported on Hyprland, Mango, and niri. On niri the capture is also placed in the clipboard by the compositor itself.
Scrolling Capture
# Select a region, then scroll the content beneath it
dms screenshot scroll
# Slower capture cadence
dms screenshot scroll --interval 250
Select a region, then scroll the content beneath with the mouse wheel or touchpad. Frames are stitched into one tall image continuously while you scroll — revisited content is never duplicated, and scrolling up past the starting point extends the image upward. Finish with the on-screen done button or Enter; cancel with cancel or Escape.
Content jumped past faster than capture can follow is skipped rather than stitched incorrectly. The cursor is never included in frames, and rotated outputs are not supported. On Hyprland the keyboard stays with the application during capture, so keyboard scrolling (Page Down, arrow keys) works there too.
Repeat Last Capture
# Capture the same region as before
dms screenshot last
Include Cursor
dms screenshot full --cursor on
Pipe to Editor
# Send to swappy for annotation
dms screenshot --stdout | swappy -f -
Custom Output Location
# Save to specific directory
dms screenshot -d ~/Pictures/screenshots
# Custom filename
dms screenshot --filename my-screenshot.png