mirror of
https://github.com/end-4/dots-hyprland.git
synced 2026-06-05 14:59:27 -05:00
43 lines
1.6 KiB
Bash
Executable File
43 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
getdate() {
|
|
date '+%Y-%m-%d_%H.%M.%S'
|
|
}
|
|
getaudiooutput() {
|
|
pactl list sources | grep 'Name' | grep 'monitor' | cut -d ' ' -f2
|
|
}
|
|
getactivemonitor() {
|
|
hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .name'
|
|
}
|
|
|
|
xdgvideo="$(xdg-user-dir VIDEOS)"
|
|
if [[ $xdgvideo = "$HOME" ]]; then
|
|
unset xdgvideo
|
|
fi
|
|
mkdir -p "${xdgvideo:-$HOME/Videos}"
|
|
cd "${xdgvideo:-$HOME/Videos}" || exit
|
|
|
|
if pgrep wf-recorder > /dev/null; then
|
|
notify-send "Recording Stopped" "Stopped" -a 'Recorder' &
|
|
pkill wf-recorder &
|
|
else
|
|
if [[ "$1" == "--fullscreen-sound" ]]; then
|
|
notify-send "Starting recording" 'recording_'"$(getdate)"'.mp4' -a 'Recorder' & disown
|
|
wf-recorder -o "$(getactivemonitor)" --pixel-format yuv420p -f './recording_'"$(getdate)"'.mp4' -t --audio="$(getaudiooutput)"
|
|
elif [[ "$1" == "--fullscreen" ]]; then
|
|
notify-send "Starting recording" 'recording_'"$(getdate)"'.mp4' -a 'Recorder' & disown
|
|
wf-recorder -o "$(getactivemonitor)" --pixel-format yuv420p -f './recording_'"$(getdate)"'.mp4' -t
|
|
else
|
|
if ! region="$(slurp 2>&1)"; then
|
|
notify-send "Recording cancelled" "Selection was cancelled" -a 'Recorder' & disown
|
|
exit 1
|
|
fi
|
|
notify-send "Starting recording" 'recording_'"$(getdate)"'.mp4' -a 'Recorder' & disown
|
|
if [[ "$1" == "--sound" ]]; then
|
|
wf-recorder --pixel-format yuv420p -f './recording_'"$(getdate)"'.mp4' -t --geometry "$region" --audio="$(getaudiooutput)"
|
|
else
|
|
wf-recorder --pixel-format yuv420p -f './recording_'"$(getdate)"'.mp4' -t --geometry "$region"
|
|
fi
|
|
fi
|
|
fi
|