ferrishot.mp4
Run by typing 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 and dragging
- Move the region around by dragging in the center
The selected region is surrounded by buttons, each with their own keybinding. Most notably:
Enter
copies screenshot to clipboardCtrl s
saves screenshot to a file. You can choose any valid extension like.png
,.webp
,.jpg
Ctrl u
uploads the screenshot to the internet
Hold Shift
while resizing to have much more granular control over the size of the region.
You get a link and a QR Code, so you can easily send it to another device!
In the bottom-right corner, is a small box showing the height and width of the selection. You can manually edit it to set a specific size.
Ferrishot can be fully keyboard controlled, with no mouse! You can select any region on the screen in just
8 keystrokes. Pick a top-left corner by typing t
, and pick a bottom-right corner by typing b
:
instant-shot.mp4
We also have vim motions! There is a cheatsheet available by pressing ?
to view the motions:
You can see all of the keybindings declared in the default config file default.kdl
Ferrishot is very customizable! You have full control over the UI, color scheme and keybindings.
Create the default config file ferrishot.kdl
by doing ferrishot --dump-default-config
.
For reference, see the default config file (default.kdl
) which contains comments describing each option.
Ferrishot is fantastic for usage in scripts. It can be fully controlled without launching a UI.
A powerful screenshot app
Usage: ferrishot [OPTIONS]
-
-r
,--region <WxH+X+Y>
β Open with a region pre-selectedFormat:
<width>x<height>+<top-left-x>+<top-left-y>
Each value can be absolute.
- 550 for
x
means top-left corner starts after 550px - 100 for
height
means it will be 100px tall
Each can also be relative to the height (for
y
andheight
) or width (forwidth
andx
)- 0.2 for
width
means it region takes up 20% of the width of the image. - 0.5 for
y
means the top-left corner will be at the vertical center
The format can also end with 1 or 2 percentages, which shifts the region relative to the region's size
- If
width
is250
, end region with+30%
to move right by 75px or-40%
to move left by 100px - Supplying 2 percentage at the end like
+30%-10%
, the 1st affects x-offset and the 2nd affects y-offset
With the above syntax, you can create all the regions you want.
100x1.0+0.5+0-50%
: Create a 100px wide, full height, horizontally centered region1.0x1.0+0+0
: Create a region that spans the full screen. You can use aliasfull
for this
- 550 for
-
-l
,--last-region
β Use last region -
-a
,--accept-on-select <ACTION>
β Accept capture and perform the action as soon as a selection is madeIf holding
ctrl
while you are releasing the left mouse button on the first selection, the behavior is cancelledIt's quite useful to run ferrishot, select a region and have it instantly be copied to the clipboard for example. In 90% of situations you won't want to do much post-processing of the region and this makes that experience twice as fast. You can always opt-out with
ctrl
Using this option with
--region
or--last-region
will run ferrishot in 'headless mode', without making a new window.Possible values:
copy
: Copy image to the clipboardsave
: Save image to a fileupload
: Upload image to the internet
-
-d
,--delay <MILLISECONDS>
β Wait this long before launch -
-s
,--save-path <PATH>
β Instead of opening a file picker to save the screenshot, save it to this path instead -
-D
,--dump-default-config
β Write contents of the default config to /home/e/.config/ferrishot.kdl -
-C
,--config-file <FILE.KDL>
β Use the provided config fileDefault value:
/home/e/.config/ferrishot.kdl
-
-S
,--silent
β Run in silent mode. Do not print anything -
-j
,--json
β Print in JSON format
- Windows
- MacOS
- Linux (X11)
- Linux (Wayland)
Ferrishot is under heavy development! At the moment the goal is to implement all the features that flameshot has, including more than that.
- Draw shapes on the image
- Square
- Circle
- Arrow
- Pen
- Draw text on the image
- Other effects
- Blur / pixelate
- Numbered circles
- Pin screenshot
- Color picker
- In-app tool editing
brew install nik-rev/tap/ferrishot
powershell -ExecutionPolicy Bypass -c "irm https://github.com/nik-rev/ferrishot/releases/latest/download/ferrishot-installer.ps1 | iex"
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/nik-rev/ferrishot/releases/latest/download/ferrishot-installer.sh | sh
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
yay -S ferrishot-bin
If you use Linux, see CONTRIBUTING.md
for details on which dependencies you will need.
cargo install ferrishot
See CONTRIBUTING.md