---
name: "grimshot"
section: "1"
platform: "linux"
package: "sway-contrib"
version: "1.12-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/grimshot"
---

# grimshot(1)

a helper for screenshots within sway

## NAME

grimshot - a helper for screenshots within sway

## SYNOPSIS

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

## OPTIONS

- **--notify**

  Show notifications to the user that a screenshot has been taken. When saving to a file and [**xdg-open**(1)](/xdg-open/1.md) is available, the notification offers actions to open the file or its directory.

- **--cursor**

  Include cursors in the screenshot.

- **--freeze**

  Freeze displays before taking screenshot. Requires **wayfreeze**.

- **--wait N**

  Wait for N seconds before taking a screenshot. Waits after any manual selection is made. Recommended to combine with --notify in order to know when the screenshot has been taken.

**save**

Save the screenshot into a regular file. Grimshot will write image files to **XDG\_SCREENSHOTS\_DIR** if this is set (or defined in **user-dirs.dirs**), or otherwise fall back to **XDG\_PICTURES\_DIR**. A variable set in the environment takes precedence over **user-dirs.dirs**. Set FILE to '-' to pipe the output to STDOUT. Set GRIMSHOT\_FILENAME\_FORMAT env variable to a [**date**(1)](/date/1.md) format string to override the default filename.

**copy**

Copy the screenshot data (as image/png) into the clipboard.

savecopy

Save the screenshot into a regular file (see *save* documentation) and copy the screenshot data into the clipboard (see *copy* documentation).

## DESCRIPTION

Grimshot is an easy-to-use screenshot utility for sway. It provides a convenient interface over grim, slurp and jq, and supports storing the screenshot either directly to the clipboard using wl-copy or to a file.

## EXAMPLES

An example usage pattern is to add 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 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:

*active*

Captures the currently active window.

*screen*

Captures the entire screen. This includes all visible outputs.

*area*

Allows manually selecting a rectangular region, and captures that.

*window*

Allows manually selecting a single window (by clicking on it), and captures it.

*output*

Captures the currently active output.

*anything*

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).

## OUTPUT

Grimshot will print the filename of the captured screenshot to stdout if called with the *save* or *savecopy* subcommands.

## SEE ALSO

[**grim**(1)](/grim/1.md)
