aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--modules/desktop/i3/keybindings.nix18
-rw-r--r--modules/tools/default.nix1
-rw-r--r--modules/tools/ffmpeg/default.nix18
-rw-r--r--users/arpit.nix1
4 files changed, 38 insertions, 0 deletions
diff --git a/modules/desktop/i3/keybindings.nix b/modules/desktop/i3/keybindings.nix
index 9d6e668..5b16a05 100644
--- a/modules/desktop/i3/keybindings.nix
+++ b/modules/desktop/i3/keybindings.nix
@@ -84,4 +84,22 @@ 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/tools/default.nix b/modules/tools/default.nix
index f4af918..4708803 100644
--- a/modules/tools/default.nix
+++ b/modules/tools/default.nix
@@ -11,6 +11,7 @@
./devenv
./fastfetch
./feh
+ ./ffmpeg
./fzf
./git
./htop
diff --git a/modules/tools/ffmpeg/default.nix b/modules/tools/ffmpeg/default.nix
new file mode 100644
index 0000000..1add1d3
--- /dev/null
+++ b/modules/tools/ffmpeg/default.nix
@@ -0,0 +1,18 @@
+{
+ config,
+ pkgs,
+ lib,
+ ...
+}:
+
+{
+ options.tools.ffmpeg = {
+ enable = lib.mkEnableOption "Enables ffmpeg.";
+ };
+
+ config = lib.mkIf config.tools.ffmpeg.enable {
+ home.packages = with pkgs; [
+ ffmpeg-full
+ ];
+ };
+}
diff --git a/users/arpit.nix b/users/arpit.nix
index 78def6d..fd5b57e 100644
--- a/users/arpit.nix
+++ b/users/arpit.nix
@@ -20,6 +20,7 @@
tools.devenv.enable = true;
tools.fastfetch.enable = true;
tools.feh.enable = true;
+ tools.ffmpeg.enable = true;
tools.fzf.enable = true;
tools.git.enable = true;
tools.git.username = "Arpit Chakladar";