38 lines
927 B
Nix
38 lines
927 B
Nix
{ pkgs, config, lib, ... }:
|
|
with lib;
|
|
{
|
|
options.components.gui.suspend.enable = mkOption {
|
|
type = lib.types.bool;
|
|
default = config.components.gui.enable;
|
|
};
|
|
|
|
config = mkIf (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";
|
|
|
|
};
|
|
}
|