Your company here — click to reach over 10,000 unique daily visitors

swappy - Man Page

grab and edit on the fly snapshots of a Wayland compositor


swappy [options...]


swappy is a command-line utility to take and edit screenshots of Wayland desktops. Works great with grim, slurp and sway. But can easily work with other screen copy tools that can output a final image to stdout.

swappy will save the annotated images to the config save_dir, see below.

If absent, then if it will try to default to a Desktop folder following this pattern: $XDG_DESKTOP_DIR. If this variable is not set, it will revert to: $XDG_CONFIG_HOME/Desktop. If $XDG_CONFIG_HOME is not set, it will revert to: $HOME/Desktop.


-h,  --help

Show help message and quit.

-v,  --version

Show version and quit.

-f,  --file <file>

An image file to load for editing.

If set to -, read the file from standard input instead. This is grim friendly.

-o,  --output-file <file>

Print the final surface to <file> when exiting the application.

If set to -, prints the final surface to stdout.

Note that the Save button will save the image to the config save_dir parameter, as described in the Description section.

Config File

The config file is located at $XDG_CONFIG_HOME/swappy/config or at $HOME/.config/swappy/config. The file follows the GLib conf format.


The following lines can be used as swappy's default:

  • save_dir is where swappshots will be saved, can contain env variables, when it does not exist, swappy attempts to create it first, but does not abort if directory creation fails
  • save_filename_format is the filename template, if it contains a date format, this will be parsed into a timestamp. Format is detailed in strftime(3). If this date format is missing, filename will have no timestamp
  • show_panel is used to toggle the paint panel on or off upon startup
  • line_size is the default line size (must be between 1 and 50)
  • text_size is the default text size (must be between 10 and 50)
  • text_font is the font used to render text, its format is pango friendly
  • paint_mode is the mode activated at application start (must be one of: brush|text|rectangle|ellipse|arrow|blur, matching is case-insensitive)
  • early_exit is used to make the application exit after saving the picture or copying it to the clipboard
  • fill_shape is used to toggle shape filling (for the rectangle and ellipsis tools) on or off upon startup

Key Bindings


  • Ctrl+b: Toggle Paint Panel

Paint Mode

  • b: Switch to Brush
  • t: Switch to Text
  • r: Switch to Rectangle
  • o: Switch to Ellipse
  • a: Switch to Arrow
  • d: Switch to Blur (d stands for droplet)
  • R: Use Red Color
  • G: Use Green Color
  • B: Use Blue Color
  • C: Use Custom Color
  • Minus: Reduce Stroke Size
  • Plus: Increase Stroke Size
  • Equal: Reset Stroke Size
  • f: Toggle Shape Filling
  • k: Clear Paints (cannot be undone)


  • Ctrl: Center Shape (Rectangle & Ellipse) based on draw start

Header Bar

  • Ctrl+z: Undo
  • Ctrl+Shift+z or Ctrl+y: Redo
  • Ctrl+s: Save to file (see man page)
  • Ctrl+c: Copy to clipboard
  • Escape or q or Ctrl+w: Quit swappy


Written and maintained by jtheoof <contact@jtheoof.me>. See https://github.com/jtheoof/swappy.