onionshot 0.3.1

Screenshot utility for Hyprland
Documentation
# OnionShot: Yet Another Screenshot Utility For Hyprland

`hyprshot` and `wlshot` doesn't do what I want to do so I wrote my own one.

## Compilation

Just `cargo build --release` and you're ready to go.

You can also install it using `cargo install --release`

## Dependencies

- `hyprland`
- `hyprpicker`
- `grim`
- `slurp`
- `wl-copy`
- `notify-send`

We check for every dependency's existence before running, so make sure you run onionshot at least once to see if some dependencies are missing. If so, the program will list out all missing programs and just install them and making sure they're accessible from `$PATH`.

Please make sure these dependencies are up-to-date (compared to the version in the Arch Linux Repository). I don't guarantee it will work on older packages.

## Environemnt Variables

`ONIONSHOT_DIR` is where we put the screenshots in (if the storage mode is `filesystem-only` or `both`). If this variable doesn't exist, then we will check for `$XDG_PICTURES_DIR`, and then `$HOME/Pictures`.

## Usage

The help (onionshot --help) is quite self-explanatory. We currently provides three modes (Fullscreen, region and active window) to screenshot with, and three storage modes (store to filesystem/clipboard only, or both). `-f` or `--freeze` can be use to freeze the screen in region mode and doesn't apply to fullscreen/active window mode because these two modes take screenshots instantly.

## Credits

This implementation is inspired by following projects.

- [hyprshot]https://github.com/Gustash/Hyprshot by @Gustash
- [wlshot]https://github.com/binarylinuxx/wlshot by @binarylinuxx

Great thanks to them.

(Actually I'm just hating writing or modifying shell scripts too much that I decided to rewrite them entirely in Rust)