A Wayland native snapshot editing tool, inspired by Snappy on macOS
Go to file
2019-12-28 20:20:50 -05:00
.vscode vscode: use clang 2019-12-16 01:21:37 -05:00
docs/images docs(readme): update documentation 2019-12-28 19:50:47 -05:00
include fix(resources): compile resources and fix error management 2019-12-28 17:02:50 -05:00
protocol screencopy is done 2019-11-24 23:31:03 -05:00
res fix(resources): compile resources and fix error management 2019-12-28 17:02:50 -05:00
src docs(readme): update documentation 2019-12-28 19:50:47 -05:00
.clang-format works, next is screencopy 2019-11-24 23:07:44 -05:00
.gitignore git: ignore glade backup file 2019-12-17 22:26:35 -05:00
LICENSE Initial commit 2019-11-19 00:21:06 -05:00
meson_options.txt feat: init project 2019-11-19 00:23:34 -05:00
meson.build fix(resources): compile resources and fix error management 2019-12-28 17:02:50 -05:00
README.md docs(readme): fix keyboard presentation 2019-12-28 20:20:50 -05:00
swappy.1.scd docs(swappy): add man and readme 2019-12-27 19:56:05 -05:00

swappy

A Wayland native snapshot and editor tool, inspired by Snappy on macOS. Works great with slurp and sway.

Wayland code was largely taken from grim.

Screenshot

Swappy Screenshot

Example usage

Swappshot a region:

swappy -g "100,100 200x200"

Select a region and swappshot it:

swappy -g "$(slurp)"

Grab a swappshot from a specific window under Sway, using swaymsg and jq:

swappy -g "$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | slurp)"

Keyboard Shortcuts

  • Ctrl+b: Toggle Paint Panel

  • b: Switch to Brush
  • t: Switch to Text
  • r: Switch to Rectangle
  • o: Switch to Ellipse
  • a: Switch to Arrow

  • 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
  • k: Clear Paints (cannot be undone)

  • Ctrl+z: Undo
  • Ctrl+Shift+z or Ctrl+y: Redo
  • Ctrl+s: Save to file (see man page).
  • Ctrl+c: Copy to clipboard

Limitations

  • Mutli-Monitor: I don't have a multi-monitor setup at home. Most likely it won't work properly. Pull requests are welcome.
  • Copy: Copy to clipboard won't work if you close swappy (the content of the clipboard is lost). This because GTK 3.24 has not implemented persistent storage. We need to do it on the Wayland level, or wait for GTK 4.

Installation

Arch Linux User Repository

Assuming yay as your AUR package manager:

  • stable: yay -S swappy
  • latest: yay -S swappy-git

Building from source

Install dependencies:

  • meson
  • wayland
  • cairo
  • gtk

Optional dependencies:

  • libnotify

Then run:

meson build
ninja -C build

Contributing

Pull requests are welcome.

License

MIT