Files
custum-hyprpanel/services/screen_record.sh
Hristo Karamanliev 88bdcbe806 Fix record screen selection popup not displaying (#217)
* fix record screen selection popup not displaying

* fix hard coded file manager that opens the dir

* fix hard coded file manger in snapshot.sh
2024-09-03 01:52:30 -07:00

71 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
outputDir="$HOME/Videos/Screencasts"
checkRecording() {
if pgrep -f "gpu-screen-recorder" >/dev/null; then
return 0
else
return 1
fi
}
startRecording() {
if checkRecording; then
echo "A recording is already in progress."
exit 1
fi
target="$2"
outputFile="recording_$(date +%Y-%m-%d_%H-%M-%S).mkv"
outputPath="$outputDir/$outputFile"
mkdir -p "$outputDir"
if [ -z "$target" ]; then
echo "Usage: $0 start screen [screen_name]"
exit 1
fi
gpu-screen-recorder -w "$target" -f 60 -a "$(pactl get-default-sink).monitor" -o "$outputPath" &
echo "Recording started. Output will be saved to $outputPath"
}
stopRecording() {
if ! checkRecording; then
echo "No recording is in progress."
exit 1
fi
pkill -f gpu-screen-recorder
recentFile=$(ls -t "$outputDir"/recording_*.mkv | head -n 1)
notify-send "Recording stopped" "Your recording has been saved." \
-i video-x-generic \
-a "Screen Recorder" \
-t 10000 \
-u normal \
--action="scriptAction:-xdg-open $outputDir=Directory" \
--action="scriptAction:-xdg-open $recentFile=Play"
}
case "$1" in
start)
startRecording "$@"
;;
stop)
stopRecording
;;
status)
if checkRecording; then
echo "recording"
else
echo "not recording"
fi
;;
*)
echo "Usage: $0 {start [screen_name|window_id]|stop|status}"
exit 1
;;
esac