{ pkgs, lib, config, ... }: with lib; mkIf config.passthrough.gui { services.swayidle = let sway = config.wayland.windowManager.sway.package; swaymsg = "${sway}/bin/swaymsg"; swaylock = "${config.programs.swaylock.package}/bin/swaylock"; in { enable = true; systemdTarget = "sway-session.target"; timeouts = [ { timeout = 600; command = "${swaymsg} 'output * dpms off'"; resumeCommand = "${swaymsg} 'output * dpms on'"; } ]; events = [ { event = "before-sleep"; command = "${swaylock} -f --grace 0"; } ]; }; # fullscreen as simple idle inhibitor shortcut wayland.windowManager.sway.config.window.commands = [ { criteria.shell = ".*"; command = "inhibit_idle fullscreen"; } ]; }