aboutsummaryrefslogtreecommitdiffstats
path: root/modules/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'modules/scripts')
-rw-r--r--modules/scripts/default.nix3
-rw-r--r--modules/scripts/screen-recording.sh18
2 files changed, 21 insertions, 0 deletions
diff --git a/modules/scripts/default.nix b/modules/scripts/default.nix
index 927b36c..734243f 100644
--- a/modules/scripts/default.nix
+++ b/modules/scripts/default.nix
@@ -24,6 +24,9 @@
in
{
"scripts/deep-clean" = shellScript ./deep-clean.sh;
+ "scripts/screen-recording" = lib.mkIf config.tools.ffmpeg.enable (
+ shellScript ./screen-recording.sh
+ );
"scripts/system-monitor" = lib.mkIf (
config.tools.bottom.enable
&& config.tools.nvtop.enable
diff --git a/modules/scripts/screen-recording.sh b/modules/scripts/screen-recording.sh
new file mode 100644
index 0000000..a5968a1
--- /dev/null
+++ b/modules/scripts/screen-recording.sh
@@ -0,0 +1,18 @@
+PID_FILE="/tmp/ffmpeg-screenrecord.pid"
+OUT_DIR="$HOME/Videos/Recordings"
+
+if [ -f "$PID_FILE" ]; then
+ kill -INT "$(cat "$PID_FILE")" && rm "$PID_FILE"
+ echo "Stopping screen recording"
+else
+ mkdir -p "$OUT_DIR"
+ echo "Starting screen recording"
+ ffmpeg \
+ -f x11grab \
+ -i "$DISPLAY" \
+ -framerate 30 \
+ -c:v libx264 \
+ -preset ultrafast \
+ -crf 23 \
+ "$OUT_DIR/recording-$(date +%Y%m%d-%H%M%S).mp4"
+fi