From 5b5f051b13633cec58e7daa0399085ffcdb1e430 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Wed, 31 Oct 2018 10:29:49 +0100 Subject: 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. --- init/term-setup.el | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) (limited to 'init/term-setup.el') 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) -- cgit 1.4.1