{ povSelf, config, lib, pkgs, ... }: let inherit (lib) types; cfg = lib.getAttrFromPath povSelf config; in { options.enable = { type = types.bool; default = false; }; config = lib.mkIf cfg.enable { security.pam.services.gtklock = { }; services.systemd-lock-handler.enable = true; home-manager.sharedModules = [ { systemd.user.services = { gtklock = lib.mkDefault { Unit.OnSuccess = [ "unlock.target" ]; Unit.PartOf = [ "lock.target" ]; Unit.After = [ "lock.target" ]; Install.WantedBy = [ "lock.target" ]; Service.ExecStart = lib.getExe pkgs.gtklock; Service.Restart = "on-failure"; Service.RestartSec = 0; }; }; } ]; }; }