grimshot(1)

πŸ’… grimshot(1) β€” like, the manual, but make it make sense

okay so bestie, this is grimshot from the General Commands Manual β€” a little helper for taking screenshots inside sway πŸ¦‹. She's tiny, she's powerful, and she's about to be your new favorite. Let's go ✨


🌸 SYNOPSIS 🌸

grimshot [--notify] [--cursor] [--freeze] [--wait N] (copy|save)
[TARGET] [FILE]
grimshot check
grimshot usage

fr fr that's the whole shape of it: some optional flags, then you pick copy or save, then a TARGET and a FILE if you feel like it. There's also check and usage as their own little standalone modes πŸ’–


✨ OPTIONS ✨

  • --notify β€” pops a notification so you actually know the screenshot happened 😭. And listen β€” when you're saving to a file and xdg-open(1) is available, the notification comes with actions to open the file or the directory it lives in. icon behavior ngl.
  • --cursor β€” includes your cursors in the screenshot. yes, the little pointer gets to be in the picture too 🫢
  • --freeze β€” freezes the displays before taking the screenshot. requires wayfreeze. main character energy: everybody hold still πŸ’…
  • --wait N β€” waits N seconds before taking the screenshot. important detail: it waits after any manual selection is made. recommended to combine with --notify so you actually know when the shot got taken ⭐

πŸŽ€ and then the subcommands πŸŽ€

  • save β€” saves the screenshot into a regular file. where does it go? glad you asked: grimshot writes image files to XDG_SCREENSHOTS_DIR if that's set (or defined in user-dirs.dirs), otherwise it falls back to XDG_PICTURES_DIR. a variable set in the environment takes precedence over user-dirs.dirs πŸ‘‘. Set FILE to '-' and it pipes the output to STDOUT instead. And if you want to rename your babies, set the GRIMSHOT_FILENAME_FORMAT env variable to a date(1) format string to override the default filename πŸŽ€
  • copy β€” copies the screenshot data (as image/png) into the clipboard. boom, paste it anywhere πŸ’–
  • savecopy β€” the both-at-once queen πŸ‘‘. Saves the screenshot into a regular file (see the save documentation) and copies the screenshot data into the clipboard (see the copy documentation). why choose 😌

🌈 DESCRIPTION 🌈

grimshot is an easy-to-use screenshot utility for sway. Under the hood it's giving a convenient interface over grim, slurp and jq, and it supports storing the screenshot either directly to the clipboard using wl-copy or to a file. that's it, that's the whole vibe check ✨


πŸ¦‹ EXAMPLES πŸ¦‹

so the classic usage pattern β€” literally the thing everyone does β€” is adding these bindings to your sway config:

# Screenshots:
# Super+P: Current window
# Super+Shift+p: Select area
# Super+Alt+p Current output
# Super+Ctrl+p Select a window

bindsym Mod4+p       exec grimshot save active
bindsym Mod4+Shift+p exec grimshot save area
bindsym Mod4+Mod1+p  exec grimshot save output
bindsym Mod4+Ctrl+p  exec grimshot save window

And/or (yes, and/or, live your truth) add these environment variables to your shell configuration:

export GRIMSHOT_FILENAME_FORMAT='%Y-%m-%dT%H-%M-%S'

⭐ TARGETS ⭐

grimshot can capture the following named targets β€” memorize these, they're the whole personality:

  • active β€” Captures the currently active window. the one in the spotlight πŸ’…
  • screen β€” Captures the entire screen. This includes all visible outputs. everything. all of it 🌈
  • area β€” Allows manually selecting a rectangular region, and captures that. click-drag realness ✨
  • window β€” Allows manually selecting a single window (by clicking on it), and captures it. just one, bestie πŸŽ€
  • output β€” Captures the currently active output. one monitor's worth πŸ¦‹
  • anything β€” the chaotic icon 😭. Allows manually selecting a single window (by clicking on it), an output (by clicking outside of all windows, e.g. on the status bar), or an area (by using click and drag). truly the "why not all three" of targets πŸ‘‘

πŸ’œ OUTPUT πŸ’œ

Grimshot will print the filename of the captured screenshot to stdout if called with the save or savecopy subcommands. so like, it tells you where it put the thing 🫢


πŸ‘€ SEE ALSO πŸ‘€

no cap, that's the whole page. go take some screenshots, you're gonna slay πŸ’–

and that's the tea πŸ“ β€” this was grimshot(1) from the General Commands Manual, this copy dated 2026-10-28. mwah, go forth and screenshot πŸ’…βœ¨

πŸ“¦ where this page comes from