NixOS/home/modules/hyprland/hyprshot.nix

41 lines
1.3 KiB
Nix

{
config,
lib,
pkgs,
...
}:
let
cfg = config.profile.hyprland;
saveDir = "${config.home.homeDirectory}/Pictures/screenshots";
in
{
config = lib.mkIf cfg.enable {
home.packages = with pkgs; [
hyprshot
satty
];
home.activation.sattyDirCreate =
lib.hm.dag.entryAfter [ "writeBoundary" ] # sh
''
mkdir -p "${saveDir}"
chown ${config.home.username} "${saveDir}"
'';
wayland.windowManager.hyprland.settings.bind =
let
filename = "$(date +%Y-%m-%d_%H%M%S).png";
sattyFilename = "${saveDir}/${filename}";
sattySaveCommand = ''satty --save-after-copy --filename - --fullscreen --output-filename ${sattyFilename}'';
in
[
"$mod, PRINT, exec, hyprshot -m window --filename ${filename} --output-folder ${saveDir}"
"$mod SHIFT, PRINT, exec, hyprshot -m window --raw | ${sattySaveCommand}"
", PRINT, exec, hyprshot -m region --filename ${filename} --output-folder ${saveDir}"
"SHIFT, PRINT, exec, hyprshot -m region --raw | ${sattySaveCommand}"
"ALT, PRINT, exec, hyprshot -m output --filename ${filename} --output-folder ${saveDir}"
"ALT SHIFT, PRINT, exec, hyprshot -m output --raw | ${sattySaveCommand}"
];
};
}