diff --git a/options/custom/programs/hyprlock.nix b/options/custom/programs/hyprlock.nix
index e004bf9..68cc410 100644
--- a/options/custom/programs/hyprlock.nix
+++ b/options/custom/programs/hyprlock.nix
@@ -6,95 +6,102 @@
with lib; let
cfg = config.custom.programs.hyprlock;
in {
- options.custom.programs.hyprlock.enable = mkOption {default = false;};
+ options.custom.programs.hyprlock = {
+ enable = mkOption {default = false;};
+ };
config = mkIf cfg.enable {
programs.hyprlock.enable = true; # Grant PAM access
- # https://github.com/hyprwm/hyprlock
- home-manager.users.${config.custom.username}.programs.hyprlock = {
- enable = true;
+ home-manager.sharedModules = [
+ {
+ # https://github.com/hyprwm/hyprlock
+ programs.hyprlock = {
+ enable = true;
- # https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
- # https://wiki.hyprland.org/Hypr-Ecosystem/hyprlang/#comments
- settings = {
- general = {
- disable_loading_bar = true;
- enable_fingerprint = true; # Enter not required
- fingerprint_present_message = "";
- fingerprint_ready_message = "";
- #// grace = 60; # Seconds
- #// hide_cursor = true;
- #// ignore_empty_input = true;
- immediate_render = true;
- no_fade_in = true; # Fix suspend interrupting animation
+ # https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock
+ settings = {
+ # https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#general
+ general = {
+ disable_loading_bar = true;
+ #// grace = 60; # Seconds
+ #// hide_cursor = true;
+ #// ignore_empty_input = true;
+ immediate_render = true;
+ };
+
+ # https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#authentication
+ auth = {
+ "fingerprint:enabled" = true;
+ "fingerprint:present_message" = "";
+ "fingerprint:ready_message" = "";
+ };
+
+ # https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#background
+ background = {
+ blur_passes = 5;
+ color = "rgb(073642)"; # Fallback
+ path = mkIf config.custom.wallpaper "/tmp/wallpaper.png";
+ };
+
+ # https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#input-field
+ input-field = {
+ capslock_color = "rgb(cb4b16)";
+ check_color = "rgb(859900)";
+ fade_on_empty = false;
+ fade_timeout = 0;
+ fail_color = "rgb(dc322f)";
+ fail_text = "";
+ font_color = "rgb(eee8d5)";
+ inner_color = "rgb(002b36)";
+ outer_color = "rgb(d33682)";
+ outline_thickness = 3;
+ placeholder_text = "";
+ position = "0, 0";
+ size = "500, 50";
+ };
+
+ # https://wiki.hyprland.org/Hypr-Ecosystem/hyprlock/#label
+ label = [
+ {
+ # Time
+ color = "rgb(fdf6e3)";
+ font_family = "monospace";
+ font_size = 64;
+ halign = "center";
+ position = "0, 200";
+ text = "$TIME12";
+ text_align = "center";
+ valign = "center";
+ }
+
+ {
+ # Date
+ color = "rgb(eee8d5)";
+ font_family = "monospace";
+ font_size = 32;
+ halign = "center";
+ position = "0, 100";
+ text = ''cmd[update:60000] echo "$(date +'%a %b %d')"''; # Sun Jan 01
+ text_align = "center";
+ valign = "center";
+ }
+
+ {
+ # Fingerprint
+ color = "rgb(eee8d5)";
+ font_family = "monospace";
+ font_size = 42;
+ halign = "center";
+ position = "0, -100";
+ text = "$FPRINTPROMPT";
+ text_align = "center";
+ valign = "center";
+ }
+ ];
+ };
};
-
- background = {
- blur_passes = 5;
- color = "rgb(073642)"; # Fallback
- path = mkIf config.custom.wallpaper "/tmp/wallpaper.png";
- };
-
- input-field = {
- capslock_color = "rgb(cb4b16)";
- check_color = "rgb(859900)";
- fade_on_empty = false;
- fade_timeout = 0;
- fail_color = "rgb(dc322f)";
- fail_text = "";
- font_color = "rgb(93a1a1)";
- inner_color = "rgb(002b36)";
- outer_color = "rgb(d33682)";
- outline_thickness = 3;
- placeholder_text = "";
- position = "0, 0";
- size = "500, 50";
- };
-
- label = [
- # Time
- {
- color = "rgb(93a1a1)";
- font_family = config.custom.settings.fonts.sans-serif;
- font_size = 64;
- halign = "center";
- position = "0, 200";
-
- # BUG: Noon displayed as 00:00, fixed > v0.5.0
- # https://github.com/hyprwm/hyprlock/issues/552
- #// text = "$TIME12";
- text = ''cmd[update:1000] echo "$(date +'%I:%M %p')"''; # 12:00 AM
-
- text_align = "center";
- valign = "center";
- }
-
- # Date
- {
- color = "rgb(93a1a1)";
- font_family = config.custom.settings.fonts.sans-serif;
- font_size = 32;
- halign = "center";
- position = "0, 100";
- text = ''cmd[update:60000] echo "$(date +'%a %b %d')"''; # Sun Jan 01
- text_align = "center";
- valign = "center";
- }
-
- # Fingerprint
- {
- color = "rgb(93a1a1)";
- font_family = config.custom.settings.fonts.monospace;
- font_size = 42;
- halign = "center";
- position = "0, -100";
- text = "$FPRINTMESSAGE";
- text_align = "center";
- valign = "center";
- }
- ];
- };
- };
+ }
+ ];
};
}