{ pkgs, config, lib, self, theme, inputs, ... }: let cfg = config.my.graphical.wayland.hyprlock; in { options.my.graphical.wayland.hyprlock = { enable = lib.mkEnableOption null; }; config = lib.mkIf cfg.enable { programs.hyprlock = { enable = true; package = inputs.hyprlock.packages.${pkgs.system}.hyprlock; settings = let c = builtins.mapAttrs (_: t: "0xFF${t}") theme; commaVals = x: y: "${builtins.toString x}, ${builtins.toString y}"; in { general = { hide_cursor = true; }; background = lib.singleton { path = "screenshot"; blur_size = 15; blur_passes = 3; }; input-field = lib.singleton { fade_on_empty = false; placeholder_text = ""; size = commaVals 350 70; dots_size= 0.33; outline_thickness = 5; position = commaVals 0 (-100); outer_color = c.mauve; inner_color = c.crust; font_color = c.text; check_color = c.blue; fail_color = c.red; capslock_color = c.yellow; numlock_color = c.yellow; bothlock_color = c.yellow; }; image = lib.singleton { path = "${self}/assets/quag-head.png"; size = 180; border_size = 5; position = commaVals 0 80; border_color = c.mauve; }; }; }; my.graphical.wayland = { ydotool.enable = true; swayidle.lockCommand = "${config.programs.hyprlock.package}/bin/hyprlock --no-fade-in & sleep 0.3"; hyprland.lockBinary = "hyprlock"; }; wayland.windowManager.hyprland.settings.misc.allow_session_lock_restore = true; }; }