mirror of github.com/Breadway/breadshot
Find a file
Breadway 56aecfcbd6
All checks were successful
dev release / build (push) Successful in 28s
beta release / build (push) Successful in 21s
ci: make beta a branch-triggered freeze track, not a one-off tag
Beta is now a real stabilization branch: publishes on every push to
`beta` (mirroring dev's model, auto-versioned X.Y.Z-beta.<ts>+<sha>,
base version from the latest published tag) instead of a manual
beta-v* tag. Fixes made during the freeze land via fix/<issue> branches
merged into `beta` directly. The gen-index.sh clone for beta pulls
bread-ecosystem's default branch (main) rather than pinning to dev,
since beta is the more stable track and main now carries the
TRACK-aware script.
2026-07-22 18:37:53 +08:00
.forgejo/workflows ci: make beta a branch-triggered freeze track, not a one-off tag 2026-07-22 18:37:53 +08:00
src Timeout-guard hyprctl JSON queries 2026-07-17 09:53:54 +08:00
.gitignore random commit message, read it yourself 2026-07-22 11:57:21 +08:00
bakery.toml Initial commit 2026-07-02 20:59:24 +08:00
Cargo.lock Switch to tag-pinned bread-ecosystem deps; bump version to v0.1.1 2026-07-19 03:52:53 +08:00
Cargo.toml Switch to tag-pinned bread-ecosystem deps; bump version to v0.1.1 2026-07-19 03:52:53 +08:00
LICENSE Initial commit 2026-07-02 20:59:24 +08:00
Makefile Initial commit 2026-07-02 20:59:24 +08:00
README.md Initial commit 2026-07-02 20:59:24 +08:00

breadshot

Wayland screenshot utility for the bread ecosystem. Wraps grim, slurp, and wl-copy with Hyprland-aware geometry resolution, clipboard integration, and desktop notifications.

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.