breadshot/README.md
Breadway 84539f2fcd
Some checks failed
check / check (push) Failing after 1s
Pin bread-utils to v0.7.1; document BOS screenshot binds
bread-utils moves from bread-ecosystem tag v0.3.0 to v0.7.1.
README states breadshot is the grim/slurp/wl-copy orchestrator BOS
binds Super+Shift+S/C/P to (not grimblast), not a GUI editor, and
not bread-screenshots.
2026-08-15 21:36:05 +08:00

3 KiB

breadshot

Wayland screenshot orchestrator for the bread ecosystem — not a GUI editor. It shells out to grim, slurp, and wl-copy with Hyprland-aware geometry resolution, clipboard integration, and desktop notifications.

This is a different job from bread-screenshots (the crate in bread-ecosystem): that one is a capture harness for screenshotting sibling apps in CI. Do not merge the two.

On BOS, Hyprland binds Super+Shift+S / C / P to breadshot (not grimblast):

Bind Action Command
Super+Shift+S Region → file (and clipboard) breadshot region
Super+Shift+C Region → clipboard only breadshot region --clipboard-only
Super+Shift+P Screen → file breadshot active-output

Requirements

Required (must be in $PATH):

  • grim — Wayland screenshot tool
  • slurp — region/window selection
  • wl-copy (wl-clipboard) — clipboard write
  • hyprctl — Hyprland IPC (for window and monitor geometry)

Optional:

  • hyprpicker — screen freeze during selection (--freeze)
  • notify-send — desktop notifications (silently skipped if absent)

Build and install

# build only
cargo build --release

# build and install to /usr/local/bin
make install

# install to a custom prefix
make install PREFIX=/usr

Usage

breadshot <mode> [options]

Modes

Mode Description
region Interactive region selection
window Click to select a window on the active workspaces
output Click to select a monitor
active-window Capture the currently focused window
active-output Capture the monitor containing the active workspace

Options

Flag Short Description
--clipboard-only -c Copy to clipboard only, do not save to disk
--silent -s Suppress notifications
--freeze -z Freeze screen during selection (requires hyprpicker)
--output-dir <DIR> -o Override the save directory from config
--filename <NAME> -f Override the output filename (without path)
--config <FILE> Use a specific config file

Examples

# interactive region selection, save and copy
breadshot region

# capture active window to clipboard only
breadshot active-window --clipboard-only

# region selection with screen frozen, saved to a custom path
breadshot region --freeze --output-dir ~/Desktop --filename capture.png

Configuration

Config file: ~/.config/breadshot/config.toml

All keys are optional. Missing keys fall back to the defaults shown below.

# Directory where screenshots are saved
save_dir = "~/Pictures/Screenshots"

# Suppress notifications globally
silent = false

# Freeze screen during selection by default (requires hyprpicker)
freeze = false

# Notification display duration in milliseconds
notif_timeout = 5000

# strftime format used to generate filenames
# Filename pattern: <date_format>_breadshot.png
date_format = "%Y-%m-%d-%H%M%S"

License

MIT — see LICENSE.