1 stable release
1.0.5 | Sep 15, 2021 |
---|
#681 in Unix APIs
30KB
683 lines
hacksaw lets you select areas of your screen
(on x11)
Installation
Dependencies
Before installing, make sure you have the following libraries installed (this list is non-exhaustive):
xcb-shape
xcb-xkb
On systems with apt
, you should be able to run:
apt install libxcb-shape0-dev libxcb-xkb-dev
Once you have the dependencies
Simply run cargo install hacksaw
to install from crates.io.
Manual installation alternative
Clone this repo, cd
into it, and run cargo install --path .
Nixpkgs
hacksaw is in the NUR under nexromancers
as nur.repos.nexromancers.pkgs.hacksaw
.
Examples
Take a screenshot (with shotgun) of a selection/window and copy to clipboard
selection=$(hacksaw) # add hacksaw arguments inside as you wish
shotgun -g "$selection" - | xclip -t 'image/png' -selection clipboard
Take a screenshot of a selection/window and save to a file
selection=$(hacksaw) # add hacksaw arguments inside as you wish
shotgun -g "$selection" screenshot.png
Record an area of the screen with ffmpeg
#!/bin/sh
#
# record - record an area of the screen
dir=~/medias/videos/records
current=$(date +%F_%H-%M-%S)
mkdir -p "$dir"
hacksaw -n | {
IFS=+x read -r w h x y
w=$((w + w % 2))
h=$((h + h % 2))
ffmpeg \
-v 16 \
-r 30 \
-f x11grab \
-s "${w}x${h}" \
-i ":0.0+$x,$y" \
-preset slow \
-c:v h264 \
-pix_fmt yuv420p \
-crf 20 \
"$dir/$current.mp4"
}
Also: open a terminal with the selected size and shape (on bspwm)
Features
- Guide Lines to check precise positions and line up before you start a selection
- just like the popular Guides shader for slop
- doesn't instantly quit on first keypress
- keep typing like a pro while you screenshot your memes
- (tiling wm exclusive) you can still navigate windows while in hacksaw
- select with any mouse button, not just left click!
- except right click, that's cancel
- restart selection by scrolling scrollwheel
- you can customise the colour and width of the lines
- and you can customise the width of selection and guide lines separately!
- did i mention it's written in RUST
- lightweight and fast
- not that i've actually run any performance comparisons to slop
- one of Thor's favorites
- built for the most advanced and cutting edge platform of today, X11
Stability
- Main functionality is all there and pretty solid
- You may experience bugs when invoking hacksaw while a popup is open
Usage
USAGE:
hacksaw [FLAGS] [OPTIONS]
FLAGS:
-h, --help Prints help information
-n, --no-guides Disable fighter pilot guide lines
-V, --version Prints version information
OPTIONS:
-f, --format <format>
Output format. You can use:
%x for x-coordinate,
%y for y-coordinate,
%w for width,
%h for height,
%i for selected window id,
%g as a shorthand for %wx%h+%x+%y (X geometry),
%% for a literal '%'.
Other %-codes will cause an error. [default: %g]
-g, --guide-thickness <guide-thickness> Thickness of fighter pilot guide lines [default: 1]
-c, --colour <line-colour>
Hex colour of the lines (RGB or RGBA), '#' optional [default: #7f7f7f]
-r, --remove-decorations <remove-decorations>
Number of (nested) window manager frames to try and remove [default: 0]
-s, --select-thickness <select-thickness> Thickness of selection box lines [default: 1]
Dependencies
~6.5MB
~121K SLoC