pinwheel: Turn on DPMS after idle when screen is locked with swaylock

This commit is contained in:
Alexander Heldt
2023-11-06 22:37:52 +01:00
parent 0160715332
commit 1835737617

View File

@@ -7,6 +7,12 @@ in
options = { options = {
mod.swaylock = { mod.swaylock = {
enable = lib.mkEnableOption "enable swaylock module"; enable = lib.mkEnableOption "enable swaylock module";
dpmsTimeout = lib.mkOption {
description = "timeout in seconds before DPMS is turned on";
type = lib.types.str;
default = "10";
};
}; };
}; };
@@ -24,10 +30,22 @@ in
wayland.windowManager.hyprland = lib.mkIf hyprlandEnabled { wayland.windowManager.hyprland = lib.mkIf hyprlandEnabled {
settings = { settings = {
bind = [ bind = let
"$mod SHIFT, x, exec, ${pkgs.swaylock}/bin/swaylock -f && systemctl suspend" pause-music = "${pkgs.playerctl}/bin/playerctl -p spotify pause";
"$mod, x, exec, ${pkgs.playerctl}/bin/playerctl -p spotify pause; ${pkgs.swaylock}/bin/swaylock"
]; dpmsTimeout = config.mod.swaylock.dpmsTimeout;
dpms-lock = pkgs.writeShellScript "dpms-lock" ''
${pkgs.swayidle}/bin/swayidle \
timeout ${dpmsTimeout} "${pkgs.hyprland}/bin/hyprctl dispatch dpms off" \
resume "${pkgs.hyprland}/bin/hyprctl dispatch dpms on" &
${pkgs.swaylock}/bin/swaylock && pkill swayidle
'';
in
[
"$mod, x, exec, ${pause-music}; ${dpms-lock}"
"$mod SHIFT, x, exec, ${pause-music}; ${pkgs.swaylock}/bin/swaylock -f; systemctl suspend"
];
}; };
}; };
}; };