{ config, lib, ... }:

{
  services.hypridle = {
    enable = lib.mkDefault config.nomarchy.toggles.idle;
    settings = lib.mkDefault {
      general = {
        lock_cmd = "nomarchy-lock-screen";
        before_sleep_cmd = "loginctl lock-session";
        after_sleep_cmd = "sleep 1 && hyprctl dispatch dpms on";
        inhibit_sleep = 3;
      };

      listener = [
        {
          timeout = 150;
          on-timeout = "pidof hyprlock || nomarchy-launch-screensaver";
        }
        {
          timeout = 151;
          on-timeout = "loginctl lock-session";
        }
        {
          timeout = 330;
          on-timeout = "brightnessctl -sd '*::kbd_backlight' set 0";
          on-resume = "brightnessctl -rd '*::kbd_backlight'";
        }
        {
          timeout = 330;
          on-timeout = "hyprctl dispatch dpms off";
          on-resume = "hyprctl dispatch dpms on && brightnessctl -r";
        }
      ];
    };
  };
}
