{ pkgs, config, lib, ... }: { 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"; }