Hypridle: check if swaylock is running before lock
Fixes issue where 10 sec DPMS timeout detects background swaylock process
This commit is contained in:
parent
eb45ae25a1
commit
bfb04eaa67
@ -43,14 +43,18 @@ in
|
|||||||
};
|
};
|
||||||
config = lib.mkMerge [
|
config = lib.mkMerge [
|
||||||
(lib.mkIf cfg.enable {
|
(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;
|
enable = true;
|
||||||
listeners = let
|
listeners = let
|
||||||
dpms-wrapped = pkgs.writeShellScript "dpms-wrapped" ''
|
dpms-wrapped = pkgs.writeShellScript "dpms-wrapped" ''
|
||||||
exec ${cfg.commands.dpms-off}
|
exec ${cfg.commands.dpms-off}
|
||||||
'';
|
'';
|
||||||
lock-dpms = pkgs.writeShellScript "lock-dpms" ''
|
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 [
|
in [
|
||||||
@ -66,7 +70,7 @@ in
|
|||||||
}
|
}
|
||||||
{
|
{
|
||||||
timeout = cfg.timeouts.lock;
|
timeout = cfg.timeouts.lock;
|
||||||
onTimeout = "${config.programs.swaylock.package}/bin/swaylock";
|
onTimeout = "${lock}";
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
timeout = cfg.timeouts.lock + cfg.timeouts.locked-dpms;
|
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";
|
unlockCmd = "${pkgs.procps}/bin/pkill -x -USR1 swaylock";
|
||||||
beforeSleepCmd = "${config.programs.swaylock.package}";
|
beforeSleepCmd = "${config.programs.swaylock.package}";
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user