if you like this project, then the best way to express gratitude is to give it a star ⭐, it doesn't cost you anything, but I understand that I'm moving the project in the right direction.
A utility to easily take screenshots on Wayland (tested on Hyprland and Sway).
- Screenshot Capture
- Capture the entire monitor (output)
- Capture the active monitor (output + active)
- Capturing the selected region
- Capturing the selected window
- Capture of the active window
- Save & Clipboard
- Save screenshots to a specified folder and copy to clipboard (use
--clipboard-onlyfor clipboard-only) - Screenshots saved in PNG format
- Save screenshots to a specified folder and copy to clipboard (use
- Configuration System
- TOML-based configuration (
~/.config/hyprshot-rs/config.toml) - Persistent settings for paths, hotkeys, notifications, and more
- CLI commands for config management (
--init-config,--show-config,--set)
- TOML-based configuration (
- Hyprland Integration
- Automatic keybinding generation (
--generate-hyprland-config) - One-command installation to hyprland.conf (
--install-binds) - Interactive hotkeys setup wizard (
--setup-hotkeys)
- Automatic keybinding generation (
- Documentation
cargo install hyprshot-rsNote: cargo install builds from source. Selector functionality is provided by slurp-rs directly, so no external slurp binary is required.
yay -S hyprshot-rsThe AUR package is the primary distribution channel: the newest releases and experimental features land there first. Dependencies are pulled automatically (no extra manual steps required).
Required:
wl-clipboard- for clipboard operations- a Wayland compositor (Hyprland or Sway)
Optional:
- No extra tools required for
--freeze
On Arch Linux (example):
sudo pacman -S wl-clipboard hyprlandNote: selector functionality is fully provided by
slurp-rsAPI.
Make it available regardless of the shell
sudo ln -s ~/.local/share/cargo/bin/hyprshot-rs /usr/local/bin/hyprshot-rs [options ..] [-m [mode] ..] -- [command]possible values: output, window, region, active, OUTPUT_NAME
Note: active is a modifier and must be combined with output or window.
regionandoutputwork on Wayland withouthyprctl(viaslurp-rsAPI backend).output -m DP-1works withouthyprctl(Wayland output enumeration).windowandactiveare supported on Hyprland and Sway only (viahyprctl/swaymsg).
Possible values:
- Capture a window:
hyprshot-rs -m window- To take a screenshot of a specific area of the screen, use:
hyprshot-rs -m region- If you have 2 or more monitors and want to take a screenshot of the workspace on a specific monitor:
hyprshot-rs -m output- Quick capture (active monitor under the cursor):
hyprshot-rs -m output -m active- Capture the active window:
hyprshot-rs -m window -m active- Capture a specific monitor by name (example:
DP-1):
hyprshot-rs -m output -m DP-1Use your compositor to list output names (Hyprland: hyprctl monitors).
- Take a screenshot of a selected area and save it in the current directory: ~/repository
hyprshot-rs -m region -r > output.pngredirects the output to output.png in your current working directory. So if you're currently in ~/repository when running this command, that's where the screenshot will be saved, not in the default ~/Pictures directory.
Run hyprshot-rs --help or hyprshot-rs -h for more options.
Initialize configuration:
hyprshot-rs --init-configConfigure settings:
hyprshot-rs --set paths.screenshots_dir ~/user_name/Screenshots
hyprshot-rs --set capture.notification_timeout 500View current configuration:
hyprshot-rs --show-configQuick setup with interactive wizard:
hyprshot-rs --setup-hotkeysOr manually generate and install keybindings:
# Generate keybindings
hyprshot-rs --generate-hyprland-config --with-clipboard
# Install to hyprland.conf (creates backup)
hyprshot-rs --install-binds --with-clipboardManual configuration - add to hyprland.conf:
bind = SUPER, Print, exec, hyprshot-rs -m window
bind = SUPER SHIFT, Print, exec, hyprshot-rs -m region
bind = SUPER CTRL, Print, exec, hyprshot-rs -m output
bind = , Print, exec, hyprshot-rs -m output -m activeSee HOTKEYS.md for more examples. Based on the implementation: Hypershot