Skip to content

Gigas002/wayshot

 
 

Repository files navigation

wayshot

A native, blazing-fast 🚀🚀🚀 screenshot tool for wlroots based compositors such as sway and river written in Rust.


Portal integration

xdg-desktop-portal-luminous is a xdg-desktop-portal backend for wlroots based compositors, providing screenshot and screencast capabilities.

Some usage examples:

NOTE: Read man 7 wayshot for more examples.

NOTE: Read man 5 wayshot for config file information.

NOTE: Read man wayshot for flag information.

Screenshot and crop region:

wayshot -g

Fullscreen:

wayshot

Screenshot and copy to clipboard:

wayshot --clipboard

Pick color with information:

wayshot --color

Capture a specific output:

wayshot --list-outputs   # see available output names
wayshot -o eDP-1

Interactively choose a window to capture:

wayshot --choose-toplevel

Pick a hex color code, using ImageMagick:

wayshot -g - | convert - -format '%[pixel:p{0,0}]' txt:-|grep -E "#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})" -o

Optional features

All features are enabled in the default build. To reduce binary size or compile-time dependencies, features can be selectively disabled:

cargo build --no-default-features --features clipboard,logger,notifications
Feature What it adds Extra dependency
avif AVIF encoding (--encoding avif) rav1e (via image)
clipboard --clipboard flag, copy to Wayland clipboard wl-clipboard-rs
color_picker --color flag, freeze screen and pick a pixel color
jxl JPEG-XL encoding (--encoding jxl) libjxl / jpegxl-rs
logger --log-level flag, tracing output to stderr tracing-subscriber
notifications Desktop notifications after each capture notify-rust
selector --geometry flag, interactive region selection libwaysip

Clipboard without the built-in feature

If you build without the clipboard feature, you can still pipe stdout to wl-copy:

wayshot - | wl-copy

Alternatively, set stdout = true in your config file to always write to stdout, then pipe as usual.

Installation

AUR:

wayshot-git & wayshot-bin have been packaged.

Compile time dependencies:

  • scdoc (If present, man-pages will be generated.)
  • rustup
  • make
  • pkg-config
  • libjxl (optional — only needed when the jxl feature is enabled)

Compiling:

  • git clone https://github.com/waycrate/wayshot && cd wayshot
  • make setup
  • make
  • sudo make install

Support:

  1. https://matrix.to/#/#waycrate-tools:matrix.org
  2. https://discord.gg/KKZRDYrRYW

Smithay Developers:

Massive thanks to smithay developer Cmeissl and Victor Berger. Without them this project won't be possible as my wayland knowledge is limited.

About

Mirrored at https://git.sr.ht/~shinyzenith/wayshot | screenshot tool for wlroots based compositors implementing zwlr_screencopy_v1

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Rust 98.6%
  • Other 1.4%