diff options
| author | Arpit Chakladar <arpitchakladar@proton.me> | 2026-03-20 02:19:30 +0530 |
|---|---|---|
| committer | Arpit Chakladar <arpitchakladar@proton.me> | 2026-03-20 02:19:30 +0530 |
| commit | 805501fb3f0cb06816871fdcad5f53445f48ac95 (patch) | |
| tree | a3eb37ad341437b6c8eb838aa3422e8d493842ab | |
| parent | 1bf29502faf018284ff603c4d31970415742bec1 (diff) | |
| download | home-manager-config-805501fb3f0cb06816871fdcad5f53445f48ac95.tar.gz home-manager-config-805501fb3f0cb06816871fdcad5f53445f48ac95.zip | |
Added screen capture with ffmpeg
| -rw-r--r-- | modules/desktop/i3/keybindings.nix | 18 | ||||
| -rw-r--r-- | modules/tools/default.nix | 1 | ||||
| -rw-r--r-- | modules/tools/ffmpeg/default.nix | 18 | ||||
| -rw-r--r-- | users/arpit.nix | 1 |
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"; |
