1
1
Fork 0
nixos/options/custom/programs/hyprlock.nix

108 lines
3.2 KiB
Nix
Raw Permalink Normal View History

{
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
home-manager.sharedModules = [
{
# https://github.com/hyprwm/hyprlock
programs.hyprlock = {
enable = true;
# 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" = "<span foreground='##d33682'>󰈷</span>";
"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";
}
];
};
};
}
];
};
}