aboutsummaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorArpit Chakladar <arpitchakladar@proton.me>2026-03-20 16:24:43 +0530
committerArpit Chakladar <arpitchakladar@proton.me>2026-03-20 16:24:43 +0530
commit8dd89742bc0eef583a3bbabc6a9748f15546ab4e (patch)
treeca3f38e4bbdc8807a4db8f2943fc063eb1322fb9 /modules
parent0172c785d4a14efb5a9e95696d1943f3050bff63 (diff)
downloadhome-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.nix18
-rw-r--r--modules/scripts/default.nix3
-rw-r--r--modules/scripts/screen-recording.sh18
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