Crates.io | hacksaw |
lib.rs | hacksaw |
version | 1.0.4 |
source | src |
created_at | 2020-03-28 13:53:11.895922 |
updated_at | 2020-04-01 16:55:20.064921 |
description | Lightweight selection tool for usage in screenshot scripts etc. |
homepage | https://github.com/neXromancers/hacksaw |
repository | https://github.com/neXromancers/hacksaw.git |
max_upload_size | |
id | 223819 |
size | 55,521 |
(on x11)
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
Simply run cargo install hacksaw
to install from crates.io.
Clone this repo, cd
into it, and run cargo install --path .
selection=$(hacksaw) # add hacksaw arguments inside as you wish
shotgun -g "$selection" - | xclip -t 'image/png' -selection clipboard
selection=$(hacksaw) # add hacksaw arguments inside as you wish
shotgun -g "$selection" screenshot.png
#!/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"
}
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]