# ─────────────────────────────────────────────────────────────────────────────
# hyprlock — lock screen
#
# Tokyo Night Moon, matching quickshell/config/Theme.qml:
#   accent  #82aaff    fg  #c8d3f5    dim  #828bb8    bg  #222436    red #ff757f
#
# hyprlang syntax, not Lua — hyprlock is a separate project from Hyprland.
# ─────────────────────────────────────────────────────────────────────────────

general {
    hide_cursor = true

    # 2 = auto. Matters at the 1.5x fractional scale this display runs.
    fractional_scaling = 2

    # 0 = GPU-accelerated screencopy. 1 is a CPU fallback and is very slow at
    # 4500x3000.
    screencopy_mode = 0

    fail_timeout = 2000
}

auth {
    pam:enabled = true
    pam:module = hyprlock
}

# ── Background ──────────────────────────────────────────────────────────────
# `path = screenshot` grabs the desktop at lock time and blurs it in place,
# which is what GNOME does.
#
# Caveat: this uses screencopy. If the desktop is ever switched to full-time
# HDR (see hypr/overrides.lua), this background may come back black — that is
# the same upstream screencopy bug, not a hyprlock misconfiguration.
background {
    monitor =
    path = screenshot

    blur_passes = 3
    blur_size = 8
    noise = 0.0117
    contrast = 0.9
    brightness = 0.8
    vibrancy = 0.17
    vibrancy_darkness = 0.05

    # Shown if the screenshot is unavailable.
    color = rgba(34, 36, 54, 1.0)

    zindex = -1
}

# ── Clock ───────────────────────────────────────────────────────────────────
label {
    monitor =
    text = cmd[update:1000] date +"%-I:%M"
    color = rgba(200, 211, 245, 1.0)
    font_size = 120
    font_family = Adwaita Sans Light
    position = 0, 260
    halign = center
    valign = center
}

label {
    monitor =
    text = cmd[update:60000] date +"%A, %B %-d"
    color = rgba(130, 139, 184, 1.0)
    font_size = 24
    font_family = Adwaita Sans
    position = 0, 160
    halign = center
    valign = center
}

# ── Password field ──────────────────────────────────────────────────────────
input-field {
    monitor =
    size = 340, 52
    position = 0, -40
    halign = center
    valign = center

    outline_thickness = 2
    rounding = 26

    outer_color = rgba(130, 170, 255, 0.9)
    inner_color = rgba(46, 47, 61, 0.85)
    font_color = rgba(200, 211, 245, 1.0)
    check_color = rgba(130, 170, 255, 1.0)
    fail_color = rgba(255, 117, 127, 1.0)

    dots_size = 0.25
    dots_spacing = 0.3
    dots_center = true

    placeholder_text = <span foreground="##828bb8"><i>Password</i></span>
    fail_text = <span foreground="##ff757f"><i>$FAIL ($ATTEMPTS)</i></span>

    fade_on_empty = false
    hide_input = false
}

# ── User ────────────────────────────────────────────────────────────────────
label {
    monitor =
    text = $USER
    color = rgba(200, 211, 245, 0.9)
    font_size = 16
    font_family = Adwaita Sans
    position = 0, -110
    halign = center
    valign = center
}
