nix-dotfiles/modules/desktop/hyprlock.nix
2024-05-23 16:09:26 -07:00

81 lines
2.1 KiB
Nix

{ lib, config, pkgs, inputs, system, ... }:
with lib;
let
cfg = config.modules.desktop.hyprlock;
in {
options.modules.desktop.hyprlock = {
enable = mkEnableOption "Enable hyprlock, a simple, fast, multithreaded screen lock for hyprland";
package = mkOption {
type = types.package;
default = inputs.hyprlock.packages.${system}.hyprlock;
example = "pkgs.hyprlock";
};
};
config = mkIf cfg.enable {
security.pam.services.hyprlock.text = "auth include login";
hm.programs.hyprlock = with config.colorScheme.palette; {
enable = true;
package = cfg.package;
settings = {
general = {
hide_cursor = false;
no_fade_in = true;
no_fade_out = true;
};
background = [
{
path = toString ../../assets/lockscreen.png;
blur_passes = 3;
blur_size = 6;
}
];
label = [
{
text = "cmd[update:1000] echo \"$(date +'%H:%M')\"";
font_size = 58;
color = "rgb(${base05})";
font_family = config.modules.desktop.fonts.fonts.sansSerif.family;
position = "0, 30";
halign = "center";
valign = "center";
}
{
text = "cmd[update:1000] echo \"$(date +'%A %B %e')\"";
font_size = 14;
color = "rgb(${base05})";
font_family = config.modules.desktop.fonts.fonts.sansSerif.family;
position = "0, 10";
halign = "center";
valign = "center";
}
];
input-field = [
{
size = "300, 28";
outline_thickness = 2;
dots_size = 0.2;
fade_on_empty = false;
placeholder_text = "";
outer_color = "rgb(${base0E})";
inner_color = "rgb(${base00})";
font_color = "rgb(${base05})";
check_color = "rgb(${base02})";
fail_color = "rgb(${base08})";
capslock_color = "rgb(${base09})";
position = "0, -30";
halign = "center";
valign = "center";
}
];
};
};
};
}