ferrishot is both an executable binary that can be run, and a library that can be used in Rust programs.
Installing the command-line executable
Assuming you have Rust/Cargo installed , run this command in a terminal:
cargo install ferrishot
It will make the ferrishot command available in your PATH if you've allowed the PATH to be modified when installing Rust . cargo uninstall ferrishot uninstalls.
Adding ferrishot library as a dependency
Run this command in a terminal, in your project's directory:
cargo add ferrishot
To add it manually, edit your project's Cargo.toml file and add to the [dependencies] section:
ferrishot = "0.2.0"
The ferrishot library will be automatically available globally.
Read the ferrishot library documentation .
Back to the crate overview .
Readme
ferrishot
Screenshot app written in Rust, inspired by flameshot .
Showcase
https://github.com/user-attachments/assets/ebbbfe85-b81e-4f26-9453-545dd1b2ce38
Features
Run by writing ferrishot on the command line.
Select a region on the screen by left clicking and dragging
Resize the region by dragging on any of the sides or corners and dragging
Move the region around by dragging in the center
Enter copies screenshot region to clipboard
Ctrl s saves screenshot region as a file
F11 selects the entire monitor
Instantly copy region to clipboard with --instant flag
Holding Shift while resizing or dragging will resize or move the selection 10 times slower
Size indicator allows setting an absolute width and height for the screenshot
Esc exits
This project is under heavy development, and we have a lot of plans. A list of planned features can be found in TODO.md .
Installation
Homebrew
brew install nik-rev/tap/ferrishot
PowerShell
powershell - ExecutionPolicy Bypass - c " irm https://github.com/nik-rev/countryfetch/releases/latest/download/ferrishot-installer.ps1 | iex"
Shell
curl -- proto ' =https' -- tlsv1 .2 - LsSf https://github.com/nik-rev/countryfetch/releases/latest/download/ferrishot-installer.sh | sh
Nix
Add it to your flake. nix :
# add it to your inputs
inputs. ferrishot. url = " github:nik-rev/ferrishot/main" ;
# then use it in home- manager for example
inputs. ferrishot. packages. $ { pkgs. system} . default
Cargo
If you use Linux, see CONTRIBUTING.md for details on which dependencies you will need.
cargo install ferrishot