From ea914e9821404e28f8e5251dc61e7091503e899e Mon Sep 17 00:00:00 2001
From: Antoine Martin <antoine@alarsyo.net>
Date: Sun, 16 Feb 2025 18:04:36 +0100
Subject: [PATCH] talos: home: logout mode in sway

---
 hosts/talos/home.nix | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/hosts/talos/home.nix b/hosts/talos/home.nix
index c1bec26..abfd952 100644
--- a/hosts/talos/home.nix
+++ b/hosts/talos/home.nix
@@ -40,7 +40,9 @@ in {
         ;
     };
 
-    wayland.windowManager.sway = {
+    wayland.windowManager.sway = let
+      logoutMode = "[L]ogout, [S]uspend, [P]oweroff, [R]eboot";
+    in {
       enable = true;
       swaynag.enable = true;
       wrapperFeatures.gtk = true;
@@ -70,8 +72,20 @@ in {
         bars = [];
 
         keybindings = mkOptionDefault {
+          "Mod4+Shift+e" = ''mode "${logoutMode}"'';
           "Mod4+i" = "exec emacsclient --create-frame";
         };
+
+        modes = mkOptionDefault {
+          "${logoutMode}" = {
+            "l" = "exec --no-startup-id swaymsg exit, mode default";
+            #"s" = "exec --no-startup-id betterlockscreen --suspend, mode default";
+            "p" = "exec --no-startup-id systemctl poweroff, mode default";
+            "r" = "exec --no-startup-id systemctl reboot, mode default";
+            "Escape" = "mode default";
+            "Return" = "mode default";
+          };
+        };
         startup = [
           {command = "waybar";}
         ];