{ pkgs, ... }: { services.swayidle = let lock-command = "${pkgs.lib.getExe' pkgs.systemd "loginctl"} lock-session"; in { enable = true; systemdTargets = [ "graphical-session.target" ]; timeouts = [ { timeout = 30; command = lock-command; } { timeout = 60 * 10; command = "${pkgs.lib.getExe' pkgs.systemd "systemctl"} suspend"; } ]; events = { before-sleep = "${pkgs.lib.getExe pkgs.playerctl} pause; ${lock-command}"; }; }; }