Commit | Line | Data |
---|---|---|
cdfb443f SK |
1 | #!/bin/bash |
2 | ||
3 | set -e | |
4 | set -o pipefail | |
5 | ||
6 | DIR=~/arc/vid/screencasts | |
7 | EXT=mkv | |
8 | #EXT=ogv # Low quality for some reason | |
9 | ||
10 | main() { | |
1c381847 SK |
11 | local response |
12 | printf 'Proceed? (Y/n)\n' | |
13 | read -rsn 1 response | |
14 | case "$response" in | |
15 | '' | y | Y ) | |
16 | true;; | |
17 | *) | |
18 | exit 1;; | |
19 | esac | |
20 | ||
cdfb443f SK |
21 | local -r timestamp=$(date +'%Y-%m-%d--%H-%M-%S') || exit 1 |
22 | local -r file_name="screen--${timestamp}.$EXT" | |
23 | local -r file_path="$DIR"/"$file_name" | |
24 | local -r slop=$(slop -f '%x %y %w %h') || exit 1 | |
25 | ||
26 | mkdir -p "$DIR" | |
27 | read -r X Y W H <<< "$slop" | |
28 | ffmpeg -f x11grab -s "$W"x"$H" -i :0.0+"$X","$Y" -f pulse -ac 2 -i default "$file_path" | |
29 | } | |
30 | ||
31 | main "$@" |