#!/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