50 lines
1.5 KiB
Nix
50 lines
1.5 KiB
Nix
{
|
|
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}"
|
|
"Ctrl, Print, exec, ${hyprshot} -m output -m active -f ${filename} -- ${swappyWrapper}"
|
|
|
|
"$mod, s, exec, ${hyprshot} -m output -m active -f ${filename}"
|
|
"$mod_Ctrl, s, exec, ${hyprshot} -m output -m active -f ${filename} -- ${swappyWrapper}"
|
|
|
|
", XF86SelectiveScreenshot, exec, ${hyprshot} -m region -z -f ${filename}"
|
|
"Ctrl, XF86SelectiveScreenshot, exec, ${hyprshot} -m region -z -f ${filename} -- ${swappyWrapper}"
|
|
|
|
"$mod_Shift, S, exec, ${hyprshot} -m region -z -f ${filename}"
|
|
"$mod_Shift_Ctrl, S, exec, ${hyprshot} -m region -z -f ${filename} -- ${swappyWrapper}"
|
|
];
|
|
};
|
|
}
|