From fccbf30dd366180dc25755ede753412adcab5715 Mon Sep 17 00:00:00 2001 From: Andrea Ciceri 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 | 6 ++++-- hmModules/niri/default.nix | 39 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 2 deletions(-) diff --git a/hmModules/niri/config.kdl b/hmModules/niri/config.kdl index c0045cd..d06c32d 100644 --- a/hmModules/niri/config.kdl +++ b/hmModules/niri/config.kdl @@ -351,11 +351,13 @@ 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+G { spawn "run-floating-gptel"; } 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";} + Mod+Ctrl+b { spawn "run-floating-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..ded045b 100644 --- a/hmModules/niri/default.nix +++ b/hmModules/niri/default.nix @@ -2,13 +2,52 @@ pkgs, lib, config, + hostname, ... }: +let + niriVars = + { + picard = { + floating-gptel = { + rows = "60"; + cols = "150"; + }; + floating-btop = { + rows = "210"; + cols = "60"; + }; + }; + kirk = { + floating-gptel = { + rows = "40"; + cols = "140"; + }; + floating-btop = { + rows = "40"; + cols = "140"; + }; + }; + } + ."${hostname}" or niriVars.kirk; + run-floating-gptel = + with niriVars.floating-gptel; + pkgs.writeScriptBin "run-floating-gptel" '' + emacsclient -c --eval '(switch-to-buffer (gptel "*GptEl*"))' -F '((name . "GPTel - Emacs") (width . ${cols}) (height . ${rows}))' + ''; + run-floating-btop = + with niriVars.floating-btop; + pkgs.writeScriptBin "run-floating-btop" '' + foot --title='bTop' -W ${rows}x${cols} btop + ''; +in { home.packages = with pkgs; [ niri waypaper xwayland-satellite + run-floating-gptel + run-floating-btop ]; systemd.user.targets.niri-session = { Unit = {