dotfiles

Luke's GNU/Linux dotfiles for i3, vim, ranger, bash, mpd, etc.
git clone git@git.lukesmith.xyz:dotfiles
Log | Files | Refs | README | LICENSE

commit c243fe1fb80c0fdcdca599fff2fb998936b946ee
parent c5029f934a3fad94ef2d03d3ce62ad98b5e596e0
Author: Luke Smith <luke@lukesmith.xyz>
Date:   Sat,  8 Sep 2018 22:43:47 -0400

recording scripts now more robust

Diffstat:
M.scripts/audio | 17+++++------------
M.scripts/killrecording | 2+-
M.scripts/screencast | 24++++++------------------
M.scripts/video | 10++++++----
4 files changed, 18 insertions(+), 35 deletions(-)

diff --git a/.scripts/audio b/.scripts/audio @@ -1,29 +1,22 @@ -#!/bin/bash +#!/bin/sh # This script records audio. # 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/audio$n.flac ]] +while [ -f "$HOME/audio$n.flac" ] do n=$((n+1)) done filename="$HOME/audio$n.flac" -# For Pulseaudio with ALSA: -record_pulse() { \ ffmpeg \ -f alsa -i default \ -c:a flac \ -$filename ;} +"$filename" & -# For ALSA: -record_alsa() { \ -ffmpeg -y \ --f alsa -ar 44100 -i hw:1 \ -$filename ;} - -if [[ $(pgrep -x pulseaudio) ]]; then record_pulse; else record_alsa; fi & +# PID outputted for use by the killrecording script +echo $! > ~/.recordingpid # Updating i3blocks recording icon: echo 🎙️ > ~/.recordingicon && pkill -RTMIN+9 i3blocks diff --git a/.scripts/killrecording b/.scripts/killrecording @@ -1,6 +1,6 @@ #!/bin/sh -killall -e screencast audio video +kill -9 "$(cat ~/.recordingpid)" # Update i3bar. echo "" > ~/.recordingicon diff --git a/.scripts/screencast b/.scripts/screencast @@ -1,38 +1,26 @@ -#!/bin/bash +#!/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 ]] +while [ -f "$HOME/screencast$n.mkv" ] do n=$((n+1)) done filename="$HOME/screencast$n.mkv" -# For Pulseaudio with ALSA: -record_pulse() { \ ffmpeg -y \ -f x11grab \ -framerate 60 \ --s $(xdpyinfo | grep dimensions | awk '{print $2;}') \ +-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 ;} + -c:v libx264rgb -crf 0 -preset ultrafast -c:a flac "$filename" & -# For ALSA: -record_alsa() { \ -ffmpeg -y \ --f x11grab \ --s $(xdpyinfo | grep dimensions | awk '{print $2;}') \ --i :0.0 \ --thread_queue_size 1024 \ - -f alsa -ar 44100 -i hw:1 \ - -c:v libx264 -r 30 -c:a flac $filename ;} - - -if [[ $(pgrep -x pulseaudio) ]]; then record_pulse; else record_alsa; fi & +# PID outputted for use by the killrecording script +echo $! > ~/.recordingpid # Updating i3blocks recording icon: echo ⏺️ > ~/.recordingicon && pkill -RTMIN+9 i3blocks diff --git a/.scripts/video b/.scripts/video @@ -1,10 +1,10 @@ -#!/bin/bash +#!/bin/sh # This script records video. # It also names files smartly to prevent overwrites. # Picks a file name for the output file based on availability: -while [[ -f $HOME/video$n.mkv ]] +while [ -f "$HOME/video$n.mkv" ] do n=$((n+1)) done @@ -13,9 +13,11 @@ filename="$HOME/video$n.mkv" # The actual ffmpeg command: ffmpeg \ -f x11grab \ --s $(xdpyinfo | grep dimensions | awk '{print $2;}') \ +-s "$(xdpyinfo | grep dimensions | awk '{print $2;}')" \ -i :0.0 \ - -c:v libx264 -qp 0 -r 30 $filename & + -c:v libx264 -qp 0 -r 30 "$filename" & +# PID outputted for use by the killrecording script +echo $! > ~/.recordingpid # Updating i3blocks recording icon: echo ⏺️ > ~/.recordingicon && pkill -RTMIN+9 i3blocks