diff --git a/modules/home/workstation/hyprland/components/default.nix b/modules/home/workstation/hyprland/components/default.nix index 2c2bbee..493b34a 100644 --- a/modules/home/workstation/hyprland/components/default.nix +++ b/modules/home/workstation/hyprland/components/default.nix @@ -1,6 +1,7 @@ { imports = [ ./rofi.nix + ./hyprcapture.nix ./mako.nix ./tools.nix ./waybar.nix diff --git a/modules/home/workstation/hyprland/components/hyprcapture.nix b/modules/home/workstation/hyprland/components/hyprcapture.nix new file mode 100644 index 0000000..a554578 --- /dev/null +++ b/modules/home/workstation/hyprland/components/hyprcapture.nix @@ -0,0 +1,35 @@ +{ + lib, + osConfig, + config, + inputs', + ... +}: let + inherit (lib) mkIf; + inherit (osConfig.ooknet.workstation) environment; + inherit (inputs') hyprland-contrib; +in { + config = mkIf (environment == "hyprland") { + home.packages = [ + # Screenshot tool + hyprland-contrib.packages.grimblast + # Screen recording tool + ]; + + # Add XDG user directories that the scripts use + xdg.userDirs.extraConfig = { + XDG_RECORDINGS_DIR = "${config.xdg.userDirs.videos}/Recordings"; + XDG_SCREENSHOTS_DIR = "${config.xdg.userDirs.pictures}/Screenshots"; + }; + + wayland.windowManager.hyprland.settings.bind = [ + # Screenshot binds + ", Print, exec, grimblast --notify --cursor copysave area" + "SUPER, Print, exec, grimblast --notify --cursor copysave screen" + # Recording binds + "SUPER, r, exec, hyprrecord -a -w video screen copysave" + "SUPER CTRL, r, exec, hyprrecord -a -w video area copysave" + "SUPER ALT, r, exec, hyprrecord -w gif area copysave" + ]; + }; +}