From bdd90bec5eb815a63dc8eac01713137ee8c26f81 Mon Sep 17 00:00:00 2001 From: "Skylar \"The Cobra\" Widulski" Date: Sat, 13 May 2023 20:38:34 -0400 Subject: [PATCH] Add --no-audio Signed-off-by: Skylar "The Cobra" Widulski --- doc/wf-shadow.1.scd | 7 +++++-- wf-shadow | 19 ++++++++++++++----- 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/doc/wf-shadow.1.scd b/doc/wf-shadow.1.scd index 2a2664d..699f1fa 100644 --- a/doc/wf-shadow.1.scd +++ b/doc/wf-shadow.1.scd @@ -31,9 +31,12 @@ and wofi(1) in order to accomplish the task. End the current instance running on monitor _MONITOR_. *-a, --audio* _DEVICE_ + This option is used in order to set the pulseaudio/pipewire-pulse device + that is recorded by *wf-shadow*. + +*-n, --no-audio* By default, *wf-shadow* enables the -a option of wf-recorder(1). This - option is used in order to set the pulseaudio/pipewire-pulse device that is - recorded by *wf-shadow*. + option disables it. *-V, --video* _DEVICE_ This option is passed directly to wf-recorder(1)'s _-d_ option. diff --git a/wf-shadow b/wf-shadow index 80b9497..ba6ba81 100755 --- a/wf-shadow +++ b/wf-shadow @@ -28,13 +28,18 @@ fi MONITOR=1 AUDIO_DEV="" +NO_AUDIO="" VIDEO_DEV="" VERBOSE="" -WF_SHADOW_DIR="${WF_SHADOW_DIR:-"$HOME"/Videos/wf-shadow}" -WF_SHADOW_FORMAT="${WF_SHADOW_FORMAT:-%Y%m%d_%H:%M:%S}" +: "${WF_SHADOW_DIR:="$HOME"/Videos/wf-shadow}" +: "${WF_SHADOW_FORMAT:=%Y%m%d_%H:%M:%S}" . "$CONFIG" +if [ -n "$NO_AUDIO" ]; then + NO_AUDIO=" " +fi + trap 'kill $(jobs -p) 2>/dev/null' EXIT trap 'exit' INT set -m @@ -73,6 +78,7 @@ OPTIONS: -e, --end [MONITOR] End wf-shadow instance with display number MONITOR. -a, --audio DEVICE Use DEVICE for audio recording. Passed to wf-recorder -a. -V, --video DEVICE Use DEVICE for video encoding. Passed to wf-recorder -d. + -n, --no-audio Disable audio recording. Overrides -a. -v, --verbose Verbose output. -h, --help Show this menu. @@ -106,12 +112,12 @@ record() { start() { local WOFI_STRING="5 seconds\n10 seconds\n15 seconds\n30 seconds\n1 minute\n5 minutes\n10 minutes\nCancel\n" while true; do - for i in /tmp/wf-shadow/tmp{00..10}.mp4; do + for i in /tmp/wf-shadow/"$MONITOR"-{00..10}.mp4; do printf '' >> "$i" if [ -n "$VERBOSE" ]; then - wf-recorder ${VIDEO_DEV:+-d "$VIDEO_DEV"} -a $AUDIO_DEV -f "$i" <<< y$'\n'$MONITOR & + wf-recorder ${VIDEO_DEV:+-d "$VIDEO_DEV"} ${NO_AUDIO:--a} ${AUDIO_DEV:+"${NO_AUDIO:-$AUDIO_DEV}"} -f "$i" <<< y$'\n'$MONITOR & else - wf-recorder ${VIDEO_DEV:+-d "$VIDEO_DEV"} -a $AUDIO_DEV -f "$i" <<< y$'\n'$MONITOR &>/dev/null & + wf-recorder ${VIDEO_DEV:+-d "$VIDEO_DEV"} ${NO_AUDIO:--a} ${AUDIO_DEV:+"${NO_AUDIO:-$AUDIO_DEV}"} -f "$i" <<< y$'\n'$MONITOR &>/dev/null & fi printf "%s" "$!" > "$RUNTIME"/"$MONITOR".pid fg || exit @@ -166,6 +172,9 @@ until [ -z "$1" ]; do '-a' | '--audio') AUDIO_DEV="$2" shift 2 ;; + '-n' | '--no-audio') + NO_AUDIO=1 + shift 1 ;; '-V' | '--video') VIDEO_DEV="$2" shift 2 ;;