dotfiles/.config/waybar/scripts/wlrecord.sh

36 lines
1.2 KiB
Bash

#!/bin/sh
active=$(pacmd list-sources | awk 'c&&!--c;/* index*/{c=1}' | awk '{gsub(/<|>/,"",$0); print $NF}')
filename=$(date +%F_%T.mkv)
echo active sink: $active
echo $filename
if [ -z $(pgrep wf-recorder) ];
then notify-send "Recording Started ($active)"
if [ "$1" == "-s" ]
then wf-recorder -f $HOME/Videos/wf-recorder/$filename -a "$active" -g "$(slurp -c "#FFFFFF")" >/dev/null 2>&1 &
sleep 2
while [ ! -z $(pgrep -x slurp) ]; do wait; done
pkill -RTMIN+8 waybar
else if [ "$1" == "-w" ]
then wf-recorder -f $HOME/Videos/wf-recorder/$filename -a "$active" -g "$(swaymsg -t get_tree | jq -r '.. | select(.pid? and .visible?) | .rect | "\(.x),\(.y) \(.width)x\(.height)"' | slurp -c "#FFFFFF" )" >/dev/null 2>&1 &
sleep 2
while [ ! -z $(pgrep -x slurp) ]; do wait; done
pkill -RTMIN+8 waybar
else
wf-recorder -f $HOME/Videos/wf-recorder/$filename -a "$active" >/dev/null 2>&1 &
pkill -RTMIN+8 waybar
fi
fi
else
killall -s SIGINT wf-recorder
notify-send "Recording Complete"
while [ ! -z $(pgrep -x wf-recorder) ]; do wait; done
pkill -RTMIN+8 waybar
name="$(zenity --entry --text "enter a filename")"
perl-rename "s/\.(mkv|mp4)$/ $name $&/" $(ls -d $HOME/Videos/wf-recorder/* -t | head -n1)
fi