{ config, lib, ... }: with lib; let cfg = config.custom.programs.hyprlock; in { options.custom.programs.hyprlock.enable = mkOption { default = false; }; config = mkIf cfg.enable { programs.hyprlock.enable = true; # Grant PAM access # https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock # https://github.com/hyprwm/hyprlock home-manager.users.${config.custom.username}.programs.hyprlock = { enable = true; settings = { general = { grace = 5 * 60; # Seconds hide_cursor = true; immediate_render = true; no_fade_in = true; # Fix suspend interrupting animation }; background = { blur_passes = 5; color = "rgb(073642)"; path = "/tmp/wallpaper.png"; }; input-field = { capslock_color = "rgb(cb4b16)"; check_color = "rgb(859900)"; fade_timeout = 0; fail_color = "rgb(dc322f)"; fail_text = ""; font_color = "rgb(fdf6e3)"; inner_color = "rgb(002b36)"; outer_color = "rgb(fdf6e3)"; outline_thickness = 0; placeholder_text = ""; position = "0, 0"; shadow_passes = 1; shadow_size = 2; size = "300, 50"; }; label = { color = "rgb(fdf6e3)"; font_family = "monospace"; font_size = 48; halign = "center"; position = "0, 200"; text_align = "center"; valign = "center"; # 12:00 AM # Sunday, January 01 text = "cmd[update:1000] echo \"$(date +'%I:%M %p
%A, %B %d')
\""; }; }; }; }; }