{ config, pkgs, lib, ... }: let # Your variables text_color = "rgba(FFDAD6FF)"; entry_background_color = "rgba(41000311)"; entry_border_color = "rgba(896E6C55)"; entry_color = "rgba(FFDAD6FF)"; font_family = "Rubik Light"; font_family_clock = "Rubik Light"; font_material_symbols = "Material Symbols Rounded"; in { programs.hyprlock = { enable = true; settings = { background = { color = "rgba(181818FF)"; }; "input-field" = { size = "250, 50"; outline_thickness = 2; dots_size = 0.1; dots_spacing = 0.3; outer_color = entry_border_color; inner_color = entry_background_color; font_color = entry_color; fade_on_empty = true; position = "0, 20"; halign = "center"; valign = "center"; }; label = [ { text = "$LAYOUT"; color = text_color; font_size = 14; font_family = font_family; position = "-30, 30"; halign = "right"; valign = "bottom"; } { text = lib.strings.escapeNixString "cmd[update:250] ${config.xdg.configHome}/hypr/hyprlock/check-capslock.sh"; color = text_color; font_size = 13; font_family = font_family; position = "0, -25"; halign = "center"; valign = "center"; } { text = "$TIME"; color = text_color; font_size = 65; font_family = font_family_clock; position = "0, 300"; halign = "center"; valign = "center"; } { text = lib.strings.escapeNixString "cmd[update:5000] date +\"%A, %B %d\""; color = text_color; font_size = 17; font_family = font_family_clock; position = "0, 240"; halign = "center"; valign = "center"; } { text = " $USER"; color = text_color; outline_thickness = 2; dots_size = 0.2; dots_spacing = 0.2; dots_center = true; font_size = 20; font_family = font_family; position = "0, 50"; halign = "center"; valign = "bottom"; } { text = lib.strings.escapeNixString "cmd[update:5000] ${config.xdg.configHome}/hypr/hyprlock/status.sh"; color = text_color; font_size = 14; font_family = font_family; position = "30, -30"; halign = "left"; valign = "top"; } ]; }; }; home.packages = [ pkgs.hyprlock ]; home.file = { ".config/hypr/hyprlock/check-capslock.sh".source = builtins.path { path = ./check-capslock.sh; executable = true; # This line ensures the file is executable }; ".config/hypr/hyprlock/status.sh".source = builtins.path { path = ./status.sh; executable = true; # This line ensures the file is executable }; }; }