From 38101c98d3cf374af781fdb886744e1bf1a3427c Mon Sep 17 00:00:00 2001
From: Andrea Ciceri <andrea.ciceri@autistici.org>
Date: Thu, 27 Feb 2025 14:18:12 +0700
Subject: [PATCH] Customize Gptel and bTop floating windows sizes for each host

---
 hmModules/niri/config.kdl  |  4 ++--
 hmModules/niri/default.nix | 19 +++++++++++++++++--
 2 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl
index c0045cd..cfbc2f4 100644
--- a/hmModules/niri/config.kdl
+++ b/hmModules/niri/config.kdl
@@ -351,11 +351,11 @@ binds {
     Mod+B { spawn "firefox"; }
     Mod+RETURN { spawn "emacsclient" "-c" "--eval" "(ccr/start-eshell)"; }
     Mod+M { spawn "emacsclient" "-c" "--eval" "(notmuch-search \"tag:new\")"; }
-    Mod+G { spawn "emacsclient" "-c" "--eval" "(switch-to-buffer (gptel \"*ChatGPT*\"))" "-F" "((name . \"GPTel - Emacs\") (width . 150) (height . 60))'"; }
+    Mod+G { spawn "emacsclient" "-c" "--eval" "(switch-to-buffer (gptel \"*ChatGPT*\"))" "-F" "((name . \"GPTel - Emacs\") (width . $NIRI_GPTEL_COLS) (height . $NIRI_GPTEL_ROWS))'"; }
     Mod+Shift+C { spawn "emacsclient" "-c" "--eval" "(org-roam-dailies-capture-today)"; }
     Mod+Alt+L { spawn "swaylock"; }
     Mod+Space { spawn "rofi" "-show" "menu" "-modi" "menu:rofi-power-menu"; }
-    Mod+Ctrl+b { spawn "foot" "--title='bTop'" "-W" "210x60" "btop";}
+    Mod+Ctrl+b { spawn "foot" "--title='bTop'" "-W" "NIRI_BTOP_COLSx$NIRI_BTOP_ROWS" "btop";}
 
     // Example volume keys mappings for PipeWire & WirePlumber.
     // The allow-when-locked=true property makes them work even when the session is locked.
diff --git a/hmModules/niri/default.nix b/hmModules/niri/default.nix
index 9210926..cbeea6e 100644
--- a/hmModules/niri/default.nix
+++ b/hmModules/niri/default.nix
@@ -33,10 +33,25 @@
     fi
   '';
 
-  home.sessionVariables = {
+  home.sessionVariables = let
+    niriVars = {
+      picard = {
+	NIRI_GPTEL_ROWS = 60;
+	NIRI_GPTEL_COLS = 150;
+	NIRI_BTOP_ROWS = 210;
+	NIRI_BTOP_COLS = 60;
+      };
+      kirk = {
+	NIRI_GPTEL_ROWS = 40;
+	NIRI_GPTEL_COLS = 140;
+	NIRI_BTOP_ROWS = 140;
+	NIRI_BTOP_COLS = 40;
+      };
+    };
+  in {
     DISPLAY = ":0";
     QT_QPA_PLATFORM = "wayland";
-  };
+  } // (niriVars."${config.networking.hostname}" or niriVars.kirk);
 
   programs.rofi = {
     enable = true;