{
  config,
  lib,
  pkgs,
  ...
}:
with lib; let
  cfg = config.local.sys.gtklock;
in {
  options.local.sys.gtklock = {
    enable = mkEnableOption "gtklock settings";
  };
  config = mkIf cfg.enable {
    programs.gtklock = {
      enable = true;
      config = {
        main = {
          idle-hide = true;
          idle-timeout = 1;
          time-format = "%H:%M:%S";
          start-hidden = true;
        };
      };
      style = ''
        /* Main lockscreen window */
        window {
          background-color: black;
          color: #eaeaea;
          font-family: "JetBrainsMono Nerd Font", monospace;
          font-size: 14px;
        }

        /* Container for clock + prompt */
        #main-box {
          background: black;
          border: none;
          border-radius: 0;
          padding: 0;
          margin: 0;
        }

        /* Clock text */
        #clock {
          font-size: 32px;
          font-weight: bold;
          color: #ffffff;
          margin-bottom: 12px;
        }

        /* Date text */
        #date {
          font-size: 14px;
          color: #aaaaaa;
          margin-bottom: 24px;
        }

        /* Password entry */
        entry {
          background-color: black;
          color: #ffffff;
          border: none;
          border-radius: 0;
          padding: 6px 8px;
          font-family: "JetBrains Mono", monospace;
          font-size: 12px;
        }

        /* Hide any extra icons in the entry */
        entry image {
          opacity: 0;
          width: 0;
          height: 0;
        }

        /* Wrong password feedback */
        #auth-failure {
          color: #ff6666;
          font-size: 12px;
          margin-top: 6px;
        }
      '';
    };
  };
}
