{ pkgs, ... }: { services.swayidle = { enable = true; systemdTarget = "graphical-session.target"; events = [ { event = "before-sleep"; command = "${pkgs.swaylock}/bin/swaylock -fF"; } ]; timeouts = [ { timeout = 300; command = "${pkgs.swaylock}/bin/swaylock -fF"; } { timeout = 301; command = "${pkgs.niri}/bin/niri msg action power-off-monitors && ${pkgs.systemd}/bin/systemctl hibernate"; } ]; }; }