pinwheel: Turn on DPMS after idle when screen is locked with swaylock
This commit is contained in:
@@ -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"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user