{ pkgs, lib, config, inputs, ... }: 
{
  programs.swaylock = {
    enable = true;
    package = pkgs.swaylock-effects;
    settings = {
      clock = true;
      datestr = "";
      screenshots = true;
      
      indicator = true;
      indicator-radius = 100;
      indicator-thickness = 7;
      
      
      effect-blur = "7x5";
      effect-vignette = "0.5:0.5";
      
      color="1e1e2e";
      bs-hl-color="f5e0dc";
      caps-lock-bs-hl-color="f5e0dc";
      caps-lock-key-hl-color="a6e3a1";
      ring-color="b4befe";
      ring-clear-color="f5e0dc";
      ring-caps-lock-color="fab387";
      ring-ver-color="89b4fa";
      ring-wrong-color="eba0ac";
      text-color="cdd6f4";
      text-clear-color="f5e0dc";
      text-caps-lock-color="fab387";
      text-ver-color="89b4fa";
      text-wrong-color="eba0ac";

      inside-color="00000000";
      inside-clear-color="00000000";
      inside-caps-lock-color="00000000";
      inside-ver-color="00000000";
      inside-wrong-color="00000000";
      key-hl-color="a6e3a1";
      layout-bg-color="00000000";
      layout-border-color="00000000";
      layout-text-color="cdd6f4";
      line-color="00000000";
      line-clear-color="00000000";
      line-caps-lock-color="00000000";
      line-ver-color="00000000";
      line-wrong-color="00000000";
      separator-color="00000000";
    };
  };

  services.swayidle = {
    enable = true;
    events = [
      {
        event = "before-sleep";
        command = "${pkgs.swaylock-effects}/bin/swaylock -fF";
      }
      {
        event = "lock";
        command = "${pkgs.swaylock-effects}/bin/swaylock -fF";
      }
    ];
    timeouts = [
      {
        timeout = 90;
        command = "swaylock";
      }
      {
        timeout = 300;
        command = "systemctl suspend";
      }
      # {
      #   timeout = 180;
      #   command = "systemctl suspend";
      #   # command = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl dispatch dpms off";
      #   # resumeCommand = "${config.wayland.windowManager.hyprland.package}/bin/hyprctl dispatch dpms on";
      # }
    ];
  };

  systemd.user.services.swayidle.Install.WantedBy = lib.mkForce ["hyprland-session.target"];
}