38 lines
890 B
Nix

{ ... }:
let
# Time in seconds
lockAfter = 1200;
suspendAfter = 7200;
in
{
services.hypridle = {
enable = true;
settings = {
general = {
before_sleep_cmd = "loginctl lock-session";
after_sleep_cmd = "hyprctl dispatch dpms on";
lock_cmd = "pidof hyprlock || hyprlock"; # Avoid running multiple instances of hyprlock
};
listener = [
# Lock
{
timeout = lockAfter;
on-timeout = "loginctl lock-session";
}
# Turn off screens TODO buggy main monitor, turns off and on after resume
# {
# timeout = 120;
# on-timeout = "hyprctl dispatch dpms off";
# on-resume = "hyprctl dispatch dpms on";
# }
# Suspend
{
timeout = suspendAfter;
on-timeout = "systemctl suspend"; # suspend pc
}
];
};
};
}