{ 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             = "d65d0e";   #d65d0e     # 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         = "fe8019";   #fe8019     # 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       = "3c383699"; #3c383699   # Sets the color of the inside of the indicator when verifying.
      # WRONG    
      ring-wrong-color       = "fb4934";     #fb4934   #  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     = "3c383699";   #3c383699 #  Sets the color of the inside of the indicator when invalid.
      # CAPS-LOCK
      ring-caps-lock-color   = "d65d0e";     #d65d0e     # Sets the color of the ring of the indicator when Caps Lock is active.
      line-caps-lock-color   = "d65d0e00";   #d65d0e00   # Sets the color of the line between the inside and ring when Caps Lock is active.
      text-caps-lock-color   = "d65d0e00";   #d65d0e00   # Sets the color of the text when Caps Lock is active.
      inside-caps-lock-color = "3c383699";   #3c383699   # 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     = "3c383699";  #3c383699   # Sets the color of the inside of the indicator when cleared.

    };
  };
}