diff --git a/nix/configuration/roles/sway/default.nix b/nix/configuration/roles/sway/default.nix index 666e868..c7ba2a9 100644 --- a/nix/configuration/roles/sway/default.nix +++ b/nix/configuration/roles/sway/default.nix @@ -261,6 +261,7 @@ in ./iso.nix ./rofimoji.nix ./lockscreen.nix + ./screenshot.nix ]; options.me.swayIncludes = lib.mkOption { diff --git a/nix/configuration/roles/sway/screenshot.nix b/nix/configuration/roles/sway/screenshot.nix new file mode 100644 index 0000000..c1e55c8 --- /dev/null +++ b/nix/configuration/roles/sway/screenshot.nix @@ -0,0 +1,42 @@ +{ + config, + lib, + pkgs, + ... +}: + +let + screenshot_sway_config = pkgs.writeTextFile { + name = "screenshot.conf"; + text = + builtins.replaceStrings + [ "@grim@" "@wl-screenrec@" "@pactl@" "@grep@" "@slurp@" ] + [ + "${pkgs.grim}/bin/grim" + "${pkgs.wl-screenrec}/bin/wl-screenrec" + "${pkgs.pulseaudio}/bin/pactl" + "${pkgs.gnugrep}/bin/grep" + "${pkgs.slurp}/bin/slurp" + ] + '' + # Screenshots + #bindsym $mod+print exec @slurp@ | @grim@ -g - $(xdg-user-dir PICTURES)/$(date +'screenshot_%Y-%m-%d-%H%M%S.png') + bindsym $mod+print exec @slurp@ | @grim@ -g - "$HOME/$(date +'screenshot_%Y-%m-%d-%H%M%S.png')" + bindsym print exec @grim@ "$HOME/$(date +'screenshot_%Y-%m-%d-%H%M%S.png')" + # Maybe add --audio flag? can optionally specify specific device name from `@pactl@ list sources | @grep@ Name` + bindsym $mod+Shift+print exec @wl-screenrec@ -g "$(@slurp@)" --codec av1 -f "$HOME/$(date +'screencast_%Y-%m-%d-%H%M%S.mkv')" + bindsym Shift+print exec @wl-screenrec@ --codec av1 -f "$HOME/$(date +'screencast_%Y-%m-%d-%H%M%S.mkv')" + bindsym $mod+ctrl+Shift+print exec pkill -SIGINT @wl-screenrec@ + # Need to make a hotkey to end the recording + ''; + }; +in +{ + imports = [ ]; + + config = lib.mkIf config.me.graphical { + me.swayIncludes = [ + screenshot_sway_config + ]; + }; +}