diff options
Diffstat (limited to '.scripts/dmenurecord')
| -rwxr-xr-x | .scripts/dmenurecord | 105 |
1 files changed, 0 insertions, 105 deletions
diff --git a/.scripts/dmenurecord b/.scripts/dmenurecord deleted file mode 100755 index 75a2f4f..0000000 --- a/.scripts/dmenurecord +++ /dev/null @@ -1,105 +0,0 @@ -#!/bin/sh - -# Usage: -# `record`: Ask for recording type via dmenu -# `record screencast`: Record both audio and screen -# `record video`: Record only screen -# `record audio`: Record only audio -# `record kill`: Kill existing recording -# -# If there is already a running instance, user will be prompted to end it. - -updateicon() { \ - echo "$1" > ~/.recordingicon - pkill -RTMIN+9 i3blocks - } - -killrecording() { - recpid="$(cat ~/.recordingpid)" - # kill with SIGTERM, allowing finishing touches. - kill -15 "$recpid" - rm -f ~/.recordingpid - updateicon "" - pkill -RTMIN+9 i3blocks - # even after SIGTERM, ffmpeg may still run, so SIGKILL it. - sleep 3 - kill -9 "$recpid" - exit - } - -screencastpulse() { \ - 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 \ - "$HOME/screencast-$(date '+%y%m%d-%H%M-%S').mkv" & - echo $! > ~/.recordingpid - updateicon "⏺️🎙️" - } - -screencastalsa() { \ - 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 \ - "$HOME/screencast-$(date '+%y%m%d-%H%M-%S').mkv" & - echo $! > ~/.recordingpid - updateicon "⏺️" - } - -video() { ffmpeg \ - -f x11grab \ - -s $(xdpyinfo | grep dimensions | awk '{print $2;}') \ - -i :0.0 \ - -c:v libx264 -qp 0 -r 30 \ - "$HOME/video-$(date '+%y%m%d-%H%M-%S').mkv" & - echo $! > ~/.recordingpid - updateicon "⏺️" - } - -audiopulse() { \ - ffmpeg \ - -f alsa -i default \ - -c:a flac \ - "$HOME/audio-$(date '+%y%m%d-%H%M-%S').flac" & - echo $! > ~/.recordingpid - updateicon "🎙️" - } - -audioalsa() { \ - ffmpeg -y \ - -f alsa -ar 44100 -i hw:1 \ - "$HOME/audio-$(date '+%y%m%d-%H%M-%S').flac" & - echo $! > ~/.recordingpid - updateicon "🎙️" - } - -askrecording() { \ - choice=$(printf "screencast\\nvideo\\naudio" | dmenu -i -p "Select recording style:") - case "$choice" in - screencast) screencastpulse;; - audio) audiopulse;; - video) video;; - esac - } - -asktoend() { \ - response=$(printf "No\\nYes" | dmenu -i -p "Recording still active. End recording?") && - [ "$response" = "Yes" ] && killrecording - } - - -case "$1" in - screencast) screencastpulse;; - audio) audiopulse;; - video) video;; - kill) killrecording;; - *) ([ -f ~/.recordingpid ] && asktoend && exit) || askrecording;; -esac |
