summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorLibravatar Terin Stock <terinjokes@gmail.com>2024-02-01 00:54:40 +0100
committerLibravatar Terin Stock <terinjokes@gmail.com>2024-02-01 00:54:40 +0100
commitacebf76b5b6088358d64d6dfa8f020bfd87e353a (patch)
tree387ee81df01748a173e891004a635bb839832d52 /modules
parentadd module for eat (diff)
downloaddoom-emacs-acebf76b5b6088358d64d6dfa8f020bfd87e353a.tar.xz
feat(term/eat): set titles
Set the terminal's title on the modeline and one a created frame.
Diffstat (limited to 'modules')
-rw-r--r--modules/term/eat/autoload.el13
-rw-r--r--modules/term/eat/config.el5
2 files changed, 15 insertions, 3 deletions
diff --git a/modules/term/eat/autoload.el b/modules/term/eat/autoload.el
index d7107e6..1c078b3 100644
--- a/modules/term/eat/autoload.el
+++ b/modules/term/eat/autoload.el
@@ -13,9 +13,9 @@
;;;###autoload
(defvar +eat-frame-parameters
- `((name . "eat")
- (width . 110)
+ `((width . 110)
(height . 35)
+ (minibuffer . nil)
(transient . t)
,@(when IS-LINUX
`((window-system . ,(if (boundp 'pgtk-initialized) 'pgtk 'x))
@@ -35,7 +35,14 @@
(switch-to-buffer (doom-fallback-buffer))
(let* ((eat-kill-buffer-on-exit 't)
(default-directory "~")
- (eat-mode-hook (cons (lambda () (add-hook 'eat-exit-hook (lambda (_process) (delete-frame)) 91 t)) eat-mode-hook)))
+ (eat-mode-hook (cons (lambda ()
+ (add-hook 'eat-exit-hook (lambda (_process) (delete-frame)) 91 t)
+ ;; Disabling the modeline causes emacs to stop calling this function.
+ ;; Replace with advising eat--t-set-title instead.
+ (add-to-list 'mode-line-process '(:eval (when-let* ((eat-terminal)
+ (title (eat-term-title eat-terminal)))
+ (modify-frame-parameters nil `((name . ,title)))
+ "")))) eat-mode-hook)))
(eat nil t)))))
;; These clobber vterm bindings, so will need to pick alternatives.
diff --git a/modules/term/eat/config.el b/modules/term/eat/config.el
index eac9649..2447a47 100644
--- a/modules/term/eat/config.el
+++ b/modules/term/eat/config.el
@@ -2,6 +2,11 @@
(use-package! eat
:config
+ (add-hook 'eat-mode-hook (lambda ()
+ (add-to-list 'mode-line-process '(:eval (when-let* ((eat-terminal)
+ (title (eat-term-title eat-terminal))
+ ((not (string-empty-p title))))
+ (format "(%s)" (string-replace "%" "%%%%" title)))))))
(when (modulep! :editor evil)
(evil-set-initial-state 'eat-mode 'emacs)))