From 8dd89742bc0eef583a3bbabc6a9748f15546ab4e Mon Sep 17 00:00:00 2001 From: Arpit Chakladar Date: Fri, 20 Mar 2026 16:24:43 +0530 Subject: Moving the screen recording from i3 shortcut to a shell script --- modules/scripts/default.nix | 3 +++ modules/scripts/screen-recording.sh | 18 ++++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 modules/scripts/screen-recording.sh (limited to 'modules/scripts') 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 -- cgit v1.2.3