1{
2 lib,
3 pkgs,
4 config,
5 ...
6}:
7
8let
9 cfg = config.programs.hyprlock;
10in
11{
12 options.programs.hyprlock = {
13 enable = lib.mkEnableOption "hyprlock, Hyprland's GPU-accelerated screen locking utility";
14 package = lib.mkPackageOption pkgs "hyprlock" { };
15 };
16
17 config = lib.mkIf cfg.enable {
18 environment.systemPackages = [
19 cfg.package
20 ];
21
22 # Hyprlock needs Hypridle systemd service to be running to detect idle time
23 services.hypridle.enable = true;
24
25 # Hyprlock needs PAM access to authenticate, else it fallbacks to su
26 security.pam.services.hyprlock = { };
27 };
28
29 meta.maintainers = lib.teams.hyprland.members;
30}