# ─────────────────────────────────────────────────────────────────────────────
# hyprlock — lock screen.
#
# GENERATED FILE. Edit hyprlock.conf.template and re-run
# quickshell/scripts/panama-theme-apps; editing this copy is overwritten on the
# next color scheme change.
#
# The colors here follow the desktop's light/dark setting. They used to be
# hardcoded Tokyo Night Moon, which meant the one screen you see most often
# stayed dark when everything else went light.
#
# hyprlock takes rgba(r, g, b, a) in DECIMAL rather than hex, which is why the
# template carries "R, G, B" triples where the rest of Panama uses hex. The two
# Pango markup values are the exception and want ##rrggbb.
#
# 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(@BG@, 1.0)

    zindex = -1
}

# ── Clock ───────────────────────────────────────────────────────────────────
label {
    monitor =
    text = cmd[update:1000] date +"%-I:%M"
    color = rgba(@FG@, 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(@MUTED@, 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(@ACCENT@, 0.9)
    inner_color = rgba(@FIELD@, 0.85)
    font_color = rgba(@FG@, 1.0)
    check_color = rgba(@ACCENT@, 1.0)
    fail_color = rgba(@ERROR@, 1.0)

    dots_size = 0.25
    dots_spacing = 0.3
    dots_center = true

    placeholder_text = <span foreground="##@MUTED_HEX@"><i>Password</i></span>
    fail_text = <span foreground="##@ERROR_HEX@"><i>$FAIL ($ATTEMPTS)</i></span>

    fade_on_empty = false
    hide_input = false
}

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