{ pkgs, ... }: {
  programs.swaylock = {
    enable = true;
    # swaylock-effects has extra effects like image blur and stuff.
    package = pkgs.swaylock-effects;
    settings = { 
      # All <color> options are of the form <rrggbb[aa]>.
      font-size = 96;
      show-failed-attempts = true;
      effect-blur = "20x8";
      screenshots = true;
      font = "JetBrainsMono Nerd Font";

      clock = true;
      timestr = "%R";
      datestr = "%a, %b %d";
      grace = 5;

      indicator = true;
      indicator-radius = "130";
      indicator-thickness = "12";
      indicator-caps-lock = true;
      disable-caps-lock-text = false;
  
      # OTHER
      key-hl-color           = "b8bb26";   #b8bb26     # Sets the color of the key press highlight segments.
      separator-color        = "ebdbb200";   #ebdbb200 # Sets the color of the lines that separate highlight segments.
      bs-hl-color            = "d79921";   #d79921     # Sets the color of backspace highlight segments.
      # DEFAULT       
      ring-color             = "2a9b34";   #2a9b34     # Sets the color of the ring of the indicator.
      line-color             = "ebdbb200";   #ebdbb200 # Sets the color of the line between the inside and ring.
      text-color             = "83a598";   #83a598     # Sets the color of the text.
      inside-color           = "1d202199"; #1d202199   # Sets the color of the inside of the indicator.
      # VERIFYING       
      ring-ver-color         = "41ff58";   #41ff58     # Sets the color of the ring of the indicator when verifying.
      line-ver-color         = "ebdbb200"; #ebdbb200   # Sets the color of the line between the inside and ring when verifying.
      text-ver-color         = "83a59800"; #83a59800   # Sets the color of the text when verifying.
      inside-ver-color       = "1e1e1e99"; #1e1e1e99   # Sets the color of the inside of the indicator when verifying.
      # WRONG    
      ring-wrong-color       = "da6a6a";     #da6a6a   #  Sets the color of the ring of the indicator when invalid.
      line-wrong-color       = "ebdbb200";   #ebdbb200 #  Sets the color of the line between the inside and ring when invalid.
      text-wrong-color       = "83a59800";   #83a59800 #  Sets the color of the text when invalid.
      inside-wrong-color     = "1e1e1e99";   #1e1e1e99 #  Sets the color of the inside of the indicator when invalid.
      # CAPS-LOCK
      ring-caps-lock-color   = "2a9b34";     #2a9b34     # Sets the color of the ring of the indicator when Caps Lock is active.
      line-caps-lock-color   = "2a9b3400";   #2a9b3400   # Sets the color of the line between the inside and ring when Caps Lock is active.
      text-caps-lock-color   = "2a9b3400";   #2a9b3400   # Sets the color of the text when Caps Lock is active.
      inside-caps-lock-color = "1e1e1e99";   #1e1e1e99   # Sets the color of the inside of the indicator when Caps Lock is active.
      # CLEAR
      ring-clear-color       = "bdae93";    #bdae93     # Sets the color of the ring of the indicator when cleared.
      line-clear-color       = "92837400";  #92837400   # Sets the color of the line between the inside and ring when cleared.
      text-clear-color       = "92837400";  #92837400   # Sets the color of the text when cleared.
      inside-clear-color     = "1e1e1e99";  #1e1e1e99   # Sets the color of the inside of the indicator when cleared.

    };
  };
}