Grab images from a Wayland compositor
66aa70d5 — Eric Li 4 months ago
main: add newline to end of error message
050045a1 — Manuel Stoeckl 4 months ago
render: print error message when image alloc fails
man: update URL to sr.ht



You can also use your local clone with git send-email.


Grab images from a Wayland compositor. Works great with slurp.

#Example usage

Screenshoot all outputs:


Screenshoot a specific output:

grim -o DP-1

Screenshoot a region:

grim -g "10,20 300x400"

Select a region and screenshoot it:

grim -g "$(slurp)"

Use a custom filename:

grim $(xdg-user-dir PICTURES)/$(date +'%s_grim.png')

Screenshoot and copy to clipboard:

grim - | wl-copy

Grab a screenshot from the focused monitor under Sway, using swaymsg and jq:

grim -o $(swaymsg -t get_outputs | jq -r '.[] | select(.focused) | .name')

Grab a screenshot from the focused window under Sway, using swaymsg and jq:

grim -g "$(swaymsg -t get_tree | jq -j '.. | select(.type?) | select(.focused).rect | "\(.x),\(.y) \(.width)x\(.height)"')"

Pick a color, using ImageMagick:

grim -g "$(slurp -p)" -t ppm - | convert - -format '%[pixel:p{0,0}]' txt:-

#Building from source

Install dependencies:

  • meson
  • wayland
  • pixman
  • libpng
  • libjpeg (optional)

Then run:

meson build
ninja -C build

To run directly, use build/grim, or if you would like to do a system installation (in /usr/local by default), run ninja -C build install.


Report bugs on the issue tracker, send patches on the mailing list.

Join the IRC channel: #emersion on Libera Chat.