swaydots

my dotfiles
git clone https://git.awy.one/swaydots.git
Log | Files | Refs | README | LICENSE

commit 7a6c5377d72068eafce35e2f30371188b979421f
parent 1d8f55d4da357d0ee1286077664f2598bd5aeaeb
Author: awy <awy@awy.one>
Date:   Sun, 15 Jun 2025 02:21:53 +0300

fix spacing and add video selected option to dmenurecord script

Diffstat:
M.local/bin/dmenurecord | 145+++++++++++++++++++++++++++++++++++++------------------------------------------
1 file changed, 68 insertions(+), 77 deletions(-)

diff --git a/.local/bin/dmenurecord b/.local/bin/dmenurecord @@ -10,113 +10,104 @@ # If there is already a running instance, user will be prompted to end it. getdim() { - screens=$(swaymsg -t get_outputs | grep name | awk -F'"' '{print $4}') - choice=$(printf "$screens\nExit\n" | bemenu) - [ "${choice}" != "Exit" ] || [ -z "${choice}" ] || exit && - echo $choice + screens=$(swaymsg -t get_outputs | grep name | awk -F'"' '{print $4}') + choice=$(printf "$screens\nExit\n" | wmenu) + [ "${choice}" != "Exit" ] || [ -z "${choice}" ] || exit && + echo $choice } updateicon() { \ - echo "$1" > /tmp/recordingicon - pkill -RTMIN+9 "${STATUSBAR:-i3blocks}" + echo "$1" > /tmp/recordingicon + pkill -RTMIN+9 "${STATUSBAR:-i3blocks}" } killrecording() { - recpid="$(cat /tmp/recordingpid)" - echo $recpid - kill -2 "$recpid" - rm -f /tmp/recordingpid - updateicon "" - pkill -RTMIN+9 "${STATUSBAR:-i3blocks}" + recpid="$(cat /tmp/recordingpid)" + echo $recpid + kill -2 "$recpid" + rm -f /tmp/recordingpid + updateicon "" + pkill -RTMIN+9 "${STATUSBAR:-i3blocks}" } screencast() { gpu-screen-recorder \ - -w "$(getdim)" \ - -f 60 \ - -a default_output \ - -a default_input \ - -o "$HOME/screencast-$(date '+%y%m%d-%H%M-%S').mp4" & - echo $! > /tmp/recordingpid - updateicon "⏺️🎙️" + -w "$(getdim)" \ + -f 60 \ + -a default_output \ + -a default_input \ + -o "$HOME/screencast-$(date '+%y%m%d-%H%M-%S').mp4" & + echo $! > /tmp/recordingpid + updateicon "⏺️🎙️" } video() { gpu-screen-recorder \ - -w "$(getdim)" \ - -f 60 \ - -o "$HOME/video-$(date '+%y%m%d-%H%M-%S').mkv" & - echo $! > /tmp/recordingpid - updateicon "⏺️" + -w "$(getdim)" \ + -f 60 \ + -o "$HOME/video-$(date '+%y%m%d-%H%M-%S').mkv" & + echo $! > /tmp/recordingpid + updateicon "⏺️" } webcamhidef() { ffmpeg \ - -f v4l2 \ - -i /dev/video0 \ - -video_size 1920x1080 \ - "$HOME/webcam-$(date '+%y%m%d-%H%M-%S').mkv" & - echo $! > /tmp/recordingpid - updateicon "🎥" + -f v4l2 \ + -i /dev/video0 \ + -video_size 1920x1080 \ + "$HOME/webcam-$(date '+%y%m%d-%H%M-%S').mkv" & + echo $! > /tmp/recordingpid + updateicon "🎥" } webcam() { ffmpeg \ - -f v4l2 \ - -i /dev/video0 \ - -video_size 640x480 \ - "$HOME/webcam-$(date '+%y%m%d-%H%M-%S').mkv" & - echo $! > /tmp/recordingpid - updateicon "🎥" + -f v4l2 \ + -i /dev/video0 \ + -video_size 640x480 \ + "$HOME/webcam-$(date '+%y%m%d-%H%M-%S').mkv" & + echo $! > /tmp/recordingpid + updateicon "🎥" } audio() { \ - ffmpeg \ - -f alsa -i default \ - -c:a flac \ - "$HOME/audio-$(date '+%y%m%d-%H%M-%S').flac" & - echo $! > /tmp/recordingpid - updateicon "🎙️" + ffmpeg \ + -f alsa -i default \ + -c:a flac \ + "$HOME/audio-$(date '+%y%m%d-%H%M-%S').flac" & + echo $! > /tmp/recordingpid + updateicon "🎙️" } askrecording() { \ - choice=$(printf "screencast\\nvideo\\nvideo selected\\naudio\\nwebcam\\nwebcam (hi-def)" | bemenu -i -p "Select recording style:") - case "$choice" in - screencast) screencast;; - audio) audio;; - video) video;; - *selected) videoselected;; - webcam) webcam;; - "webcam (hi-def)") webcamhidef;; - esac + choice=$(printf "screencast\\nvideo\\nvideo selected\\naudio\\nwebcam\\nwebcam (hi-def)" | wmenu -i -p "Select recording style:") + case "$choice" in + screencast) screencast;; + audio) audio;; + video) video;; + *selected) videoselected;; + webcam) webcam;; + "webcam (hi-def)") webcamhidef;; + esac } asktoend() { \ - response=$(printf "No\\nYes" | bemenu -i -p "Recording still active. End recording?") && - [ "$response" = "Yes" ] && killrecording + response=$(printf "No\\nYes" | wmenu -i -p "Recording still active. End recording?") && + [ "$response" = "Yes" ] && killrecording } -# needs rewrite and support by gpu-screen-recorder - -# videoselected() -# { -# slop -f "%x %y %w %h" > /tmp/slop -# read -r X Y W H < /tmp/slop -# rm /tmp/slop -# -# ffmpeg \ -# -f x11grab \ -# -framerate 30 \ -# -video_size "$W"x"$H" \ -# -i :0.0+"$X,$Y" \ -# -c:v libx264 -qp 0 -r 30 \ -# "$HOME/box-$(date '+%y%m%d-%H%M-%S').mkv" & -# echo $! > /tmp/recordingpid -# updateicon "⏺️" -# } +videoselected() +{ + gpu-screen-recorder \ + -w region -region $(slurp -f "%wx%h+%x+%y") \ + -f 60 \ + -o "$HOME/box-$(date '+%y%m%d-%H%M-%S').mkv" & + echo $! > /tmp/recordingpid + updateicon "⏺️" +} case "$1" in - screencast) screencast;; - audio) audio;; - video) video;; - # *selected) videoselected;; - kill) killrecording;; - *) ([ -f /tmp/recordingpid ] && asktoend && exit) || askrecording;; + screencast) screencast;; + audio) audio;; + video) video;; + *selected) videoselected;; + kill) killrecording;; + *) ([ -f /tmp/recordingpid ] && asktoend && exit) || askrecording;; esac