{ config, lib, pkgs, ... }: let isEnabled = config.my.home.wm.windowManager == "sway"; in { config = lib.mkIf isEnabled { xdg.configFile."swaylock/config" = { source = ./config; }; # https://github.com/nix-community/home-manager/pull/2610 # won't be needed for ever systemd.user.services.swayidle = { Unit.PartOf = [ "sway-session.target" ]; Install.WantedBy = [ "sway-session.target" ]; Service = { Environment = "PATH=${pkgs.bash}/bin:${config.wayland.windowManager.sway.package}/bin"; ExecStart = '' ${pkgs.swayidle}/bin/swayidle -w \ timeout 300 "${pkgs.swaylock}/bin/swaylock" \ timeout 300 'swaymsg "output * dpms off"' \ resume 'swaymsg "output * dpms on"' \ before-sleep "${pkgs.swaylock}/bin/swaylock" ''; Restart = "on-failure"; }; }; }; }