{config, ...}: let
  c = config.lib.stylix.colors;
  fontSans = config.stylix.fonts.sansSerif.name;
in {
  xdg.configFile."hypr/hyprlock.conf".text = ''
    general {
      hide_cursor = true
      grace = 0
    }

    background {
      monitor =
      color = rgba(${c."base00-rgb-r"}, ${c."base00-rgb-g"}, ${c."base00-rgb-b"}, 0.90)
      blur_passes = 2
      blur_size = 8
      noise = 0.01
    }

    label {
      monitor =
      text = cmd[update:1000] date +"%A, %d %B %Y"
      color = rgba(${c."base05-rgb-r"}, ${c."base05-rgb-g"}, ${c."base05-rgb-b"}, 1.0)
      font_size = 30
      font_family = "${fontSans}"
      position = 0, 140
      halign = center
      valign = center
    }

    label {
      monitor =
      text = cmd[update:1000] date +"%H:%M"
      color = rgba(${c."base0D-rgb-r"}, ${c."base0D-rgb-g"}, ${c."base0D-rgb-b"}, 1.0)
      font_size = 54
      font_family = "${fontSans}"
      position = 0, 60
      halign = center
      valign = center
    }

    input-field {
      monitor =
      size = 320, 52
      outline_thickness = 2
      outer_color = rgba(${c."base03-rgb-r"}, ${c."base03-rgb-g"}, ${c."base03-rgb-b"}, 0.60)
      inner_color = rgba(${c."base01-rgb-r"}, ${c."base01-rgb-g"}, ${c."base01-rgb-b"}, 0.92)
      font_color = rgba(${c."base05-rgb-r"}, ${c."base05-rgb-g"}, ${c."base05-rgb-b"}, 1.0)
      fail_color = rgba(${c."base08-rgb-r"}, ${c."base08-rgb-g"}, ${c."base08-rgb-b"}, 1.0)
      check_color = rgba(${c."base0B-rgb-r"}, ${c."base0B-rgb-g"}, ${c."base0B-rgb-b"}, 1.0)
      dots_spacing = 0.3
      dots_center = true
      hide_input = false
      position = 0, -20
      halign = center
      valign = center
    }
  '';
}
