swaygrab man page

swaygrab — Grab image data from the current sway session.


swaygrab [options] [file]

Grabs pixels from an output and writes them to file. The image will be passed to ImageMagick convert for processing.


-h, --help

Show help message and quit.

-c, --capture

Captures multiple frames as video and passes them into ffmpeg. Continues until you send SIGTERM (ctrl+c) to swaygrab.

-o, --output <output>

Use the specified output. If no output is defined the currently focused output in sway will be used.

-v, --version

Print the version (of swaymsg) and quit.

-s, --socket <path>

Use the specified socket path. Otherwise, swaymsg will ask sway where the socket is (which is the value of $SWAYSOCK, then of $I3SOCK).

-R, --rate <rate>

Specify a framerate (in frames per second). Used in combination with -c. Default is 30. Must be an integer.

-r, --raw

Instead of invoking ImageMagick or ffmpeg, dump raw rgba data to stdout.

-f, --focused

Capture only the currently focused container.

Environment Variables

swaygrab reads the following environment variables.


Pass additional arguments to FFmpeg when starting a capture.


swaygrab output.png

Grab the contents of currently focused output and write to output.png.

swaygrab -c -o HDMI-A-1 output.webm

Capture a webm of HDMI-A-1.

SWAYGRAB_FFMPEG_OPTS="-f alsa -i pulse" swaygrab -c

Capture the focused output and encode audio from the default recording device.


Maintained by Drew DeVault <sir@cmpwn.com>, who is assisted by other open source contributors. For more information about sway development, see https://github.com/swaywm/sway.

Referenced By