{
pkgs,
lib,
config,
...
}: let
# displayOn = ''${pkgs.sway}/bin/swaymsg "output * dpms on"'';
# displayOff = ''${pkgs.sway}/bin/swaymsg "output * dpms off"'';
displayLock = "${pkgs.swaylock-effects}/bin/swaylock -f -c 000000";
cfg = config.dotfiles.gui.swayidle;
in {
options.dotfiles.gui.swayidle.enable = lib.mkEnableOption "Enable swayidle, configured to work with hyprland or sway.";
config = lib.mkIf cfg.enable {
systemd.user.services.swayidle = {
Unit = {
Description = "Sway Idle Manager";
Documentation = "man:swayidle(1)";
PartOf = ["graphical-session.target"];
};
Install = {WantedBy = ["graphical-session.target"];};
Service = {
# ExecStart = ''
# ${pkgs.swayidle}/bin/swayidle -w \
# timeout 240 '${displayOff}' \
# resume '${displayOn}' \
# timeout 180 '${displayLock}' \
# resume 'swaymsg "${displayOn}"' \
# timeout 1200 'systemctl suspend'\
# resume 'swaymsg "${displayOn}"' \
# before-sleep '${displayLock}'
# '';
ExecStart = ''
${pkgs.swayidle}/bin/swayidle -w \
timeout 180 '${displayLock}' \
timeout 1200 'systemctl suspend'\
before-sleep '${displayLock}'
'';
};
};
};
}