Files
nixconfig/modules/home/wayland/apps/lockscreen/default.nix
2026-06-16 20:04:00 +02:00

114 lines
4.3 KiB
Nix
Executable File

{ lib, pkgs, config, ... }: {
config = lib.mkIf (config.usercfg.wm == "Wayland") {
programs.hyprlock = {
enable = true;
settings = {
general = {
grace = 5; # grace=5
no_fade_in = false; # fade-in=0.2 (handled dynamically)
ignore_empty_input = true; # ignore-empty-password
};
background = [
# 1. OLED MONITOR (Pure Black)
{
monitor = "desc:LG Electronics LG ULTRAGEAR+ 511NTDVGC194";
color = "rgba(0,0,0,1.0)"; # Pure black OLED protection
path = ""; # Explicitly no screenshot
zindex = 0;
}
# 2. ALL OTHER MONITORS (Pixelated Screenshot)
{
monitor = "";
path = "screenshot"; # screenshots
blur_passes = 3; # effect-pixelate=5 approximation
blur_size = 8;
noise = 0.01;
zindex = -1;
}
];
input-field = {
monitor = "";
placeholder_text = "";
fail_text = "";
size = "200, 200"; # Custom sizing matching indicator-radius
outline_thickness = 30; # indicator-thickness=30
dots_size = 0.33;
dots_spacing = 0.15;
dots_center = true;
fade_on_empty = true;
hide_input = true;
dots_text_format = "*";
font_family = "IBM Plex Mono"; # font=IBM Plex Mono
# --- Outer Rings / Outline Colors ---
# key-hl-color, bs-hl-color, caps-lock-key-hl-color
check_color = "rgb(${config.colorScheme.palette.base0C})"; # key-hl
fail_color = "rgb(${config.colorScheme.palette.base0F})"; # inside-wrong
capslock_color = "rgb(${config.colorScheme.palette.base09})"; # caps-lock-key-hl
# --- Inner/Outer Core Colors ---
# Replicating your transparent rings with solid action states
outer_color = "rgba(${config.colorScheme.palette.base00}00)"; # ring-color (Transparent)
inner_color = "rgba(${config.colorScheme.palette.base0C}00)"; # inside-color (Transparent)
font_color = "rgba(${config.colorScheme.palette.base00}00)"; # text-color (Transparent)
fail_transition = 300;
};
};
};
xdg.configFile."swaylock/config".text = ''
screenshots
grace-no-mouse
grace-no-touch
grace=5
effect-pixelate=5
fade-in=0.2
ignore-empty-password
font=IBM Plex Mono
color=${config.colorScheme.palette.base00}00
indicator-radius=100
indicator-thickness=30
separator-color=${config.colorScheme.palette.base00}00
inside-color=${config.colorScheme.palette.base0C}00
inside-clear-color=${config.colorScheme.palette.base08}FF
inside-caps-lock-color=${config.colorScheme.palette.base09}00
inside-ver-color=${config.colorScheme.palette.base0C}FF
inside-wrong-color=${config.colorScheme.palette.base0F}FF
ring-color=${config.colorScheme.palette.base00}00
ring-clear-color=${config.colorScheme.palette.base00}00
ring-caps-lock-color=${config.colorScheme.palette.base00}00
ring-ver-color=${config.colorScheme.palette.base00}00
ring-wrong-color=${config.colorScheme.palette.base00}00
line-color=${config.colorScheme.palette.base00}00
line-clear-color=${config.colorScheme.palette.base00}00
line-caps-lock-color=${config.colorScheme.palette.base00}00
line-ver-color=${config.colorScheme.palette.base00}00
line-wrong-color=${config.colorScheme.palette.base00}00
text-color=${config.colorScheme.palette.base00}00
text-clear-color=${config.colorScheme.palette.base00}00
text-caps-lock-color=${config.colorScheme.palette.base00}00
text-ver-color=${config.colorScheme.palette.base00}00
text-wrong-color=${config.colorScheme.palette.base00}00
key-hl-color=${config.colorScheme.palette.base0C}FF
bs-hl-color=${config.colorScheme.palette.base08}FF
caps-lock-key-hl-color=${config.colorScheme.palette.base09}FF
caps-lock-bs-hl-color=${config.colorScheme.palette.base09}FF
'';
};
}