{ user ? throw "user argument is required", home ? throw "home argument is required", }: { config, lib, pkgs, ... }: { home-manager.users.${user} = { home = { packages = with pkgs; [ hyprshot swappy ]; sessionVariables.HYPRSHOT_DIR = "Pictures/screenshots"; }; wayland.windowManager.hyprland.settings.bind = let hyprshot = lib.meta.getExe pkgs.hyprshot; date = "${pkgs.coreutils}/bin/date"; filename = "\"$(${date} +'%Y-%m-%d-%H%M%S.png')\""; swappyWrapper = lib.meta.getExe ( pkgs.writeShellApplication { name = "swappy-wrapper"; runtimeInputs = with pkgs; [ swappy ]; text = "exec swappy -f \"$1\""; } ); in [ ", Print, exec, ${hyprshot} -m output -m active -f ${filename}" "Shift, Print, exec, ${hyprshot} -m output -m active -f ${filename} -- ${swappyWrapper}" ", XF86SelectiveScreenshot, exec, ${hyprshot} -m region -z -f ${filename}" "Shift, XF86SelectiveScreenshot, exec, ${hyprshot} -m region -z -f ${filename} -- ${swappyWrapper}" ]; }; }