{
  config,
  lib,
  ...
}: let
  cfg = config.marleyos.programs.hyprlock;
in {
  options.marleyos.programs.hyprlock.enable = lib.mkEnableOption "hyprlock";

  config = lib.mkIf cfg.enable {
    programs.hyprlock = {
      enable = true;

      settings = {
        general = {
          disable_loading_bar = true;
          grace = 10;
          hide_cursor = true;
          no_fade_in = false;
        };

        background = [
          {
            path = "${../../../wayland/hyprland/wallpaper.png}";
            blur_passes = 3;
            blur_size = 8;
          }
        ];

        input-field = [
          {
            size = "200, 50";
            position = "0, -80";
            monitor = "";
            dots_center = true;
            fade_on_empty = false;
            # FIXME: Don't hardcode these.
            font_color = "rgb(191724)";
            inner_color = "rgb(ebbcba)";
            outer_color = "rgb(191724)";
            outline_thickness = 5;
            placeholder_text = "password...";
            shadow_passes = 2;
          }
        ];
      };
    };
  };
}