From bfb04eaa67ca816e5734b41c4e16a4077355b0b7 Mon Sep 17 00:00:00 2001 From: NullBite Date: Tue, 26 Mar 2024 23:20:21 -0400 Subject: [PATCH] Hypridle: check if swaylock is running before lock Fixes issue where 10 sec DPMS timeout detects background swaylock process --- home/programs/hypridle.nix | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/home/programs/hypridle.nix b/home/programs/hypridle.nix index a016e0e..f500aae 100644 --- a/home/programs/hypridle.nix +++ b/home/programs/hypridle.nix @@ -43,14 +43,18 @@ in }; config = lib.mkMerge [ (lib.mkIf cfg.enable { - services.hypridle = { + services.hypridle = let + lock = pkgs.writeShellScript "lock-once" '' + ${pkgs.procps}/bin/pgrep -x swaylock > /dev/null || "${config.programs.swaylock.package}/bin/swaylock" + ''; + in { enable = true; listeners = let dpms-wrapped = pkgs.writeShellScript "dpms-wrapped" '' exec ${cfg.commands.dpms-off} ''; lock-dpms = pkgs.writeShellScript "lock-dpms" '' - ${pkgs.procps}/bin/pgrep swaylock > /dev/null && "${dpms-wrapped}" + ${pkgs.procps}/bin/pgrep -x swaylock > /dev/null && "${dpms-wrapped}" ''; in [ @@ -66,7 +70,7 @@ in } { timeout = cfg.timeouts.lock; - onTimeout = "${config.programs.swaylock.package}/bin/swaylock"; + onTimeout = "${lock}"; } { timeout = cfg.timeouts.lock + cfg.timeouts.locked-dpms; @@ -75,7 +79,7 @@ in } ]; - lockCmd = "${config.programs.swaylock.package}"; + lockCmd = "${lock}"; unlockCmd = "${pkgs.procps}/bin/pkill -x -USR1 swaylock"; beforeSleepCmd = "${config.programs.swaylock.package}"; };