about summary refs log tree commit diff
path: root/init/term-setup.el
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2018-10-31T09·29+0100
committerVincent Ambo <github@tazj.in>2019-02-10T20·43+0100
commit5b5f051b13633cec58e7daa0399085ffcdb1e430 (patch)
tree88c6ae48a8aeae1cd844caf4eea909cee7850d5a /init/term-setup.el
parent2c5946163c03dfa9b12f9bc83697c593965d08cd (diff)
refactor: Reutilise multi-term commands for Alacritty buffers
In practice I never use multi-term, but it's nice to have the same
buffer selection functionality for Alacritty buffers.
Diffstat (limited to 'init/term-setup.el')
-rw-r--r--init/term-setup.el37
1 files changed, 21 insertions, 16 deletions
diff --git a/init/term-setup.el b/init/term-setup.el
index ea58a53bbf04..a2a71be9eeba 100644
--- a/init/term-setup.el
+++ b/init/term-setup.el
@@ -1,32 +1,37 @@
-;; Utilities for term-mode
+;; Utilities for Alacritty buffers.
 
-(defun open-or-create-term-buffer (buffer-name)
+(defun open-or-create-alacritty-buffer (buffer-name)
   "Switch to the buffer with BUFFER-NAME or create a
-  new (multi-)term-mode buffer."
+  new buffer running Alacritty."
   (let ((buffer (get-buffer buffer-name)))
     (if (not buffer)
-        (multi-term)
+        (run-external-command "alacritty")
       (switch-to-buffer buffer))))
 
-(defun counsel-switch-to-term ()
+(defun is-alacritty-buffer (buffer)
+  "Determine whether BUFFER runs Alacritty."
+  (and (equal 'exwm-mode (buffer-local-value 'major-mode buffer))
+       (s-starts-with? "Alacritty" (buffer-name buffer))))
+
+(defun counsel-switch-to-alacritty ()
   "Switch to a (multi-)term buffer or create one."
   (interactive)
-  (let ((terms (counsel-list-buffers-with-mode 'term-mode)))
+  (let ((terms (-map #'buffer-name
+                     (-filter #'is-alacritty-buffer (buffer-list)))))
     (if terms
-        (ivy-read "Switch to term buffer: "
+        (ivy-read "Switch to Alacritty buffer: "
                   (cons "New terminal" terms)
-                  :caller 'counsel-switch-to-term
+                  :caller 'counsel-switch-to-alacritty
                   :require-match t
-                  :action #'open-or-create-term-buffer)
-      (multi-term))))
+                  :action #'open-or-create-alacritty-buffer)
+      (run-external-command "alacritty"))))
 
-(defun term-rename ()
+(defun alacritty-rename ()
   "Rename the current terminal buffer."
   (interactive)
-  (let* ((buffer (get-buffer (buffer-name)))
-         (mode (buffer-local-value 'major-mode buffer)))
-    (if (equal 'term-mode mode)
-        (rename-buffer (format "*terminal<%s>*" (read-string "New terminal name: ")))
-      (error "This function is only intended to rename terminal buffers."))))
+  (let* ((buffer (get-buffer (buffer-name))))
+    (if (is-alacritty-buffer buffer)
+        (rename-buffer (format "Alacritty<%s>" (read-string "New terminal name: ")))
+      (error "This function is only intended to rename Alacritty buffers."))))
 
 (provide 'term-setup)