{ config, lib, ... }: let text = "rgb(${config.theme.colors.text})"; base = "rgb(${config.theme.colors.base})"; error = "rgb(${config.theme.colors.error})"; trans = "rgba(0,0,0,0)"; inherit (lib) mkIf; cfg = config.apps; in { config = mkIf cfg.hyprlock { default.lockScreen = lib.mkDefault "hyprlock"; home-manager.users.${config.user} = { programs.hyprlock = { enable = true; settings = { auth = { "pam:enabled" = true; "fingerprint:enabled" = config.fingerprint; }; background = { path = config.theme.lockscreen; color = base; blur_passes = 0; blur_size = 2; noise = 0; contrast = 0; brightness = 0; vibrancy = 0; vibrancy_darkness = 0.0; }; # Password Input input-field = { size = "300, 50"; outline_thickness = 0; dots_size = 0.25; dots_spacing = 0.55; dots_center = true; dots_rounding = -1; outer_color = trans; inner_color = trans; font_color = text; fade_on_empty = false; placeholder_text = "Enter Password"; hide_input = false; check_color = error; fail_color = error; capslock_color = trans; numlock_color = trans; bothlock_color = trans; invert_numlock = false; swap_font_color = false; font_family = config.theme.font.regular; position = "0, 50"; halign = "center"; valign = "bottom"; }; label = [ # Date { text = "cmd[update:1000] echo \"$(date +\"%A, %B %d\")\""; color = text; font_size = 20; font_family = config.theme.font.header; position = "0, -100"; halign = "center"; valign = "top"; } # Clock { text = "cmd[update:1000] echo \"$(date +\"%k:%M:%S\")\""; color = text; font_size = 90; font_family = config.theme.font.header; position = "0, -130"; halign = "center"; valign = "top"; } ]; }; }; }; }; }