diff options
Diffstat (limited to 'modules/scripts')
| -rw-r--r-- | modules/scripts/default.nix | 3 | ||||
| -rw-r--r-- | modules/scripts/screen-recording.sh | 18 |
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 |
