From b3882a4c7cc61533da2aa3a70c13dc5fcd21d574 Mon Sep 17 00:00:00 2001
From: Gregor Grigorjan <gregor.grigorjan@gamesglobal.com>
Date: Fri, 13 Dec 2024 09:56:46 +0200
Subject: [PATCH] feat(emacs): add `gg/cmatrix` interactive command

---
 modules/nixos/programs/emacs/init.el | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/modules/nixos/programs/emacs/init.el b/modules/nixos/programs/emacs/init.el
index a698fb70..aa25c5a9 100644
--- a/modules/nixos/programs/emacs/init.el
+++ b/modules/nixos/programs/emacs/init.el
@@ -669,17 +669,32 @@
   (add-to-list 'display-buffer-alist
                '("\\*vterm*"
                  (display-buffer-at-bottom))))
+
 (use-package vterm-toggle
   :init
   (defun gg/vterm-new ()
     (interactive)
     (vterm-toggle--new))
+  (defun gg/cmatrix ()
+    "Set up terminal emulators in a nice layout."
+    (interactive)
+    (delete-other-windows)
+    (vterm-toggle--new)
+    (delete-other-windows)
+    (evil-window-split)
+    (evil-window-down 1)
+    (vterm-toggle--new)
+    (evil-window-vsplit)
+    (evil-window-right 1)
+    (vterm-toggle--new)
+    (evil-window-up 1))
   :general
   (gg/leader
     "o o" #'vterm-toggle-cd
     "o n" #'gg/vterm-new
     "o j" #'vterm-toggle-forward
-    "o k" #'vterm-toggle-backward))
+    "o k" #'vterm-toggle-backward
+    "w w" #'gg/cmatrix))
 
 ;; Don't make new frame for ediff - why would I want that?!
 (setq ediff-window-setup-function 'ediff-setup-windows-plain)