From d645ace45cbc09d8d11f1c840e51824cd0e1944e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Geoffrey=20=E2=80=9CFrogeye=E2=80=9D=20Preud=27homme?= Date: Thu, 29 May 2025 22:49:23 +0200 Subject: [PATCH] sway: Lock before sleeping --- hm/desktop/sway/default.nix | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/hm/desktop/sway/default.nix b/hm/desktop/sway/default.nix index d2f91a3..81d73a3 100644 --- a/hm/desktop/sway/default.nix +++ b/hm/desktop/sway/default.nix @@ -264,21 +264,26 @@ in ''; }; }; - frogeye.desktop.i3.bindmodes = { - "[L] Vérouillage [E] Déconnexion [S] Veille [H] Hibernation [R] Redémarrage [P] Extinction" = { - bindings = { - "l" = "exec --no-startup-id ${pkgs.procps}/bin/pkill -USR1 swayidle, mode default"; - "e" = "exit, mode default"; - # TODO Sometimes, exit gets stuck on terminal. Restarting greetd helps. - "s" = - "exec --no-startup-id ${pkgs.systemd}/bin/systemctl suspend --check-inhibitors=no, mode default"; - "h" = "exec --no-startup-id ${pkgs.systemd}/bin/systemctl hibernate, mode default"; - "r" = "exec --no-startup-id ${pkgs.systemd}/bin/systemctl reboot, mode default"; - "p" = "exec --no-startup-id ${pkgs.systemd}/bin/systemctl poweroff -i, mode default"; + frogeye.desktop.i3.bindmodes = + let + lock = "${pkgs.procps}/bin/pkill -USR1 swayidle"; + in + { + "[L] Vérouillage [E] Déconnexion [S] Veille [H] Hibernation [R] Redémarrage [P] Extinction" = { + bindings = { + "l" = "exec --no-startup-id ${lock}, mode default"; + "e" = "exit, mode default"; + # TODO Sometimes, exit gets stuck on terminal. Restarting greetd helps. + "s" = + "exec --no-startup-id ${lock}, exec --no-startup-id ${pkgs.systemd}/bin/systemctl suspend --check-inhibitors=no, mode default"; + "h" = + "exec --no-startup-id ${lock}, exec --no-startup-id ${pkgs.systemd}/bin/systemctl hibernate, mode default"; + "r" = "exec --no-startup-id ${pkgs.systemd}/bin/systemctl reboot, mode default"; + "p" = "exec --no-startup-id ${pkgs.systemd}/bin/systemctl poweroff -i, mode default"; + }; + mod_enter = "Escape"; }; - mod_enter = "Escape"; }; - }; }; options = { frogeye.desktop.i3.bindmodes = lib.mkOption {