Grab images from a Wayland compositor

917
37
C

grim

⚠️ Heads up! This project has moved to SourceHut.

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

Example usage

Screenshoot all outputs:

grim

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.

Contributing

Either send GitHub pull requests or send patches on the mailing
list
.

Join the IRC channel: #emersion on Libera Chat.

License

MIT