{ config, ... }: { config = { services.swayidle = { enable = true; systemdTarget = "sway-session.target"; timeouts = [ { timeout = 90; command = "${config.programs.swaylock.package}/bin/swaylock -f"; } { timeout = 95; command = "${config.wayland.windowManager.sway.package}/bin/swaymsg 'output * power off'"; resumeCommand = "${config.wayland.windowManager.sway.package}/bin/swaymsg 'output * power on'"; } ]; events = [ { event = "before-sleep"; # Invoke swaylock instantaneously and without animations that inhibit sleep. command = "${config.programs.swaylock.package}/bin/swaylock -f --grace 0 --fade-in 0"; } ]; }; }; }