47 lines
1.2 KiB
Bash
Executable File
47 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
set -x
|
|
|
|
pid=`pgrep wf-recorder`
|
|
status=$?
|
|
|
|
gif=false
|
|
|
|
countdown() {
|
|
notify "Recording in 3 seconds" -t 1000
|
|
sleep 1
|
|
notify "Recording in 2 seconds" -t 1000
|
|
sleep 1
|
|
notify "Recording in 1 seconds" -t 1000
|
|
sleep 1
|
|
}
|
|
|
|
notify() {
|
|
line=$1
|
|
shift
|
|
notify-send "Recording" "${line}" -i /usr/share/icons/Papirus-Dark/32x32/devices/camera-video.svg $*;
|
|
}
|
|
|
|
if [ $status != 0 ]
|
|
then
|
|
target_path=$(xdg-user-dir VIDEOS)
|
|
timestamp=$(date +'recording_%Y%m%d-%H%M%S')
|
|
|
|
notify "Select a region to record" -t 1000
|
|
area=$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | slurp)
|
|
|
|
countdown
|
|
(sleep 0.5 && pkill -RTMIN+8 waybar) &
|
|
|
|
if [ "$1" == "-a" ]; then
|
|
file="$target_path/$timestamp.mp4"
|
|
wf-recorder --audio -g "$area" --file="$file"
|
|
else
|
|
file="$target_path/$timestamp.webm"
|
|
wf-recorder -g "$area" -c libvpx --codec-param="qmin=0" --codec-param="qmax=25" --codec-param="crf=4" --codec-param="b:v=1M" --file="$file"
|
|
fi
|
|
|
|
pkill -RTMIN+8 waybar && notify "Finished recording ${file}"
|
|
else
|
|
pkill --signal SIGINT wf-recorder
|
|
pkill -RTMIN+8 waybar
|
|
fi |