#!/bin/sh # This script records a screencast with audio and video. # It runs an appropriate record script for either ALSA and Pulseaudio. # It also names files smartly to prevent overwrites. # Picks a file name for the output file based on availability: while [ -f "$HOME/screencast$n.mkv" ] do n=$((n+1)) done filename="$HOME/screencast$n.mkv" ffmpeg -y \ -f x11grab \ -framerate 60 \ -s "$(xdpyinfo | grep dimensions | awk '{print $2;}')" \ -i :0.0 \ -f alsa -i default \ -r 30 \ -c:v libx264rgb -crf 0 -preset ultrafast -c:a flac "$filename" & # PID outputted for use by the killrecording script echo $! > ~/.recordingpid # Updating i3blocks recording icon: echo ⏺️ > ~/.recordingicon && pkill -RTMIN+9 i3blocks