Hypridle: check if swaylock is running before lock

Fixes issue where 10 sec DPMS timeout detects background swaylock
process
This commit is contained in:
NullBite 2024-03-26 23:20:21 -04:00
parent eb45ae25a1
commit bfb04eaa67
Signed by: nullbite
GPG Key ID: 6C4D545385D4925A

View File

@ -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}";
};