diff options
| author | Arpit Chakladar <arpitchakladar@proton.me> | 2026-03-20 16:24:43 +0530 |
|---|---|---|
| committer | Arpit Chakladar <arpitchakladar@proton.me> | 2026-03-20 16:24:43 +0530 |
| commit | 8dd89742bc0eef583a3bbabc6a9748f15546ab4e (patch) | |
| tree | ca3f38e4bbdc8807a4db8f2943fc063eb1322fb9 /modules | |
| parent | 0172c785d4a14efb5a9e95696d1943f3050bff63 (diff) | |
| download | home-manager-config-8dd89742bc0eef583a3bbabc6a9748f15546ab4e.tar.gz home-manager-config-8dd89742bc0eef583a3bbabc6a9748f15546ab4e.zip | |
Moving the screen recording from i3 shortcut to a shell script
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/desktop/i3/keybindings.nix | 18 | ||||
| -rw-r--r-- | modules/scripts/default.nix | 3 | ||||
| -rw-r--r-- | modules/scripts/screen-recording.sh | 18 |
3 files changed, 21 insertions, 18 deletions
diff --git a/modules/desktop/i3/keybindings.nix b/modules/desktop/i3/keybindings.nix index 5b16a05..9d6e668 100644 --- a/modules/desktop/i3/keybindings.nix +++ b/modules/desktop/i3/keybindings.nix @@ -84,22 +84,4 @@ in lib.mkIf config.tools.maim.enable "exec \"${lib.getExe pkgs.maim} -s | xclip -selection clipboard -t image/png\""; "${mod}+Shift+p" = lib.mkIf config.tools.maim.enable "exec \"mkdir -p ~/Pictures/Screenshots && ${lib.getExe pkgs.maim} -s ~/Pictures/Screenshots/screenshot-$(date +%Y%m%d-%H%M%S).png\""; - - # --- Screen Recordings --- - "${mod}+Mod1+r" = lib.mkIf config.tools.ffmpeg.enable ( - let - pidFile = "/tmp/ffmpeg-screenrecord.pid"; - outDir = "~/Videos/Recordings"; - in - "exec \"" - + "if [ -f ${pidFile} ]; then " - + "kill $(cat ${pidFile}) && rm ${pidFile}; " - + "else " - + "mkdir -p ${outDir} && " - + "${lib.getExe pkgs.ffmpeg-full} -f x11grab -i $DISPLAY " - + "-framerate 30 -c:v libx264 -preset ultrafast -crf 23 " - + "${outDir}/recording-$(date +%Y%m%d-%H%M%S).mp4 " - + "& echo $! > ${pidFile}; " - + "fi\"" - ); } 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 |
