{ lib, config, pkgs, ... }: let inherit (lib) mkEnableOption mkIf; cfg = config.marleyos.services.screen-locker; hasXorg = config.xsession.enable; hasI3 = config.xsession.windowManager.i3.enable; in { options.marleyos.services.screen-locker.enable = mkEnableOption "screen-locker"; config = mkIf (cfg.enable && hasXorg) { services.screen-locker = { enable = true; inactiveInterval = 20; # exec xss-lock {xss-lock.extraOptions} -- {lockCmd} xss-lock.extraOptions = [ "--transfer-sleep-lock" ]; lockCmd = if hasI3 then "${pkgs.i3lock}/bin/i3lock --nofork" else ""; }; }; }