Shrust is a very minimal, Wayland-native screenshot tool I wrote in Rust.
the idea
There are a lot of really great tools that make up shrust, grim
takes screenshots, slurp selects regions, wl-copy
handles the clipboard, swappy does annotation, and
dunst shows notifications. Each does one thing well on their own, but
chaining them togther into a "select → capture → copy → notify
→ edit" workflow results in a batteries included screenshot tool.
how it works
The whole run is a short pipeline driven from main:
1. load config (~/.config/shrust/config.toml, with defaults)
2. build a save path (timestamped filename in your pictures dir)
3. slurp (drag to select a region)
4. grim (capture that region to the path)
5. wl-copy (read the file, pipe it to the clipboard as image/png)
6. dunstify (notify; offer an "Edit" action)
7. swappy (if you click the notification, open it for markup)
configuration
Config is a TOML file at ~/.config/shrust/config.toml. Every
field is optional so if the file is missing or a field is missing, shrust falls back to
sensible defaults
using it
Bind it to a key in your Sway config and it behaves like a native screenshot shortcut:
bindsym $mod+Shift+s exec shrust
exec_always dunst
Hit Super+Shift+S, drag a box, and the shot is saved, copied, and waiting in a notification you can click to annotate.
what i took away
I learned about all sorts of different utilties which I probably wouldn't have had the chance to learn as well as brushed up on my Rust abilities. In return I got a cool fun screenshoot tool out of it.