nixos-config/nixos/components/gui/suspend.nix
2023-02-17 00:59:29 +01:00

38 lines
935 B
Nix

{ pkgs, config, lib, ... }:
with lib;
{
options.components.gui.suspend.enable = mkOption {
type = lib.types.bool;
default = true;
};
config = mkIf (config.components.gui.enable && config.components.gui.suspend.enable) {
systemd.services.screenlock = {
before = [ "sleep.target" ];
requiredBy = [ "sleep.target" ];
environment =
let
display =
if (config.services.xserver.display != null) then
config.services.xserver.display
else
0;
in
{ DISPLAY = ":${toString display}"; };
script = ''
${pkgs.xlockmore}/bin/xlock -mode life1d -size 1 &
sleep 1
'';
serviceConfig = {
SyslogIdentifier = "screenlock";
#Type = "simple";
Type = "forking";
User = config.users.users.mainUser.name;
};
};
services.logind.lidSwitch = "suspend";
};
}