Commit Diff


commit - f41347ec0de85df4fc80ddb0432b06c2214f0a48
commit + 8f26110ad8a0b1c336e3fd0edefbde9ab3d60761
blob - d5b0b75b9f0514001a2f0aa3afbd79c9c36a6302
blob + c9f524b494ebd627a410726376e383f657330684
--- init.el
+++ init.el
@@ -84,7 +84,6 @@
 (elpaca-queue
  (elpaca undo-fu-session)
  (elpaca vundo)
- (elpaca clipetty)
  (elpaca evil)
  (elpaca evil-collection)
  (elpaca evil-surround)
@@ -112,7 +111,7 @@
  (elpaca sly-quicklisp)
  (elpaca magit)
  (elpaca diff-hl)
- (elpaca eat)
+ (elpaca vterm)
  (elpaca denote-journal)
  (elpaca denote-org)
  (elpaca gptel)
@@ -123,6 +122,7 @@
  (elpaca ef-themes)
  (elpaca fontaine)
  (elpaca pilish)
+ (elpaca popper)
  (elpaca (tramp-rpc :host github :repo "ArthurHeymans/emacs-tramp-rpc"
                     :files ("lisp/*.el")))
  (elpaca (janet-ts-mode :host github :repo "sogaiu/janet-ts-mode"))
@@ -133,7 +133,7 @@
 (defconst mine-modules
   '(setup-core setup-ui setup-evil setup-cmp setup-search setup-treesitter setup-prog
                setup-eglot setup-git setup-shell setup-term-sessions setup-tramp-rpc
-               setup-notes setup-remind setup-gptel setup-pilish setup-keys)
+               setup-notes setup-remind setup-gptel setup-pilish setup-popper setup-keys)
   "Configuration libraries loaded during startup.")
 
 (dolist (module mine-modules)
blob - 866ec7b9a47268b46c7a35406ab3db5dece6eea0
blob + 1a40ca0a0444e97c80361001b335b4733ae798d6
--- lisp/setup-core.el
+++ lisp/setup-core.el
@@ -107,10 +107,6 @@ mirrored path as relative; its parent directories are 
         select-enable-primary t
         save-interprogram-text-before-kill t)
 
-(use-package clipetty
-  :if (not (display-graphic-p))
-  :hook (after-init . clipetty-mode))
-
 (require 'server)
 
 (unless (or noninteractive (server-running-p))
blob - 0223230f8d277d7d39d4b7256b3ecd4d331ab8fe
blob + 6e18cc90a812083a3fd782d3041a57593797377a
--- lisp/setup-evil.el
+++ lisp/setup-evil.el
@@ -39,7 +39,8 @@
   :config
   (evil-mode 1)
   (add-hook 'git-commit-setup-hook #'evil-insert-state)
-  (evil-set-initial-state 'eat-mode 'emacs)
+  (evil-set-initial-state 'term-mode 'emacs)
+  (evil-set-initial-state 'vterm-mode 'emacs)
 
   (evil-define-key '(normal visual) 'global
                    (kbd "SPC") mine-evil-leader-map
blob - 3b460187a61b651da4b920512cea2367e6c4d6d8
blob + 3bcb4b3f6fcddc8d102b5d98860e42a5009c511f
--- lisp/setup-pilish.el
+++ lisp/setup-pilish.el
@@ -10,6 +10,8 @@
 (use-package pilish
   :custom
   (pilish-executable '("pisol" "pi" "--offline"))
+  :custom-face
+  (pilish-model-name ((t (:inherit mode-line-buffer-id))))
   :config
   (require 'pilish-evil nil t))
 
blob - /dev/null
blob + dd0e043f8823468d774fd3aecca95b0cf04ba59c (mode 644)
--- /dev/null
+++ lisp/setup-popper.el
@@ -0,0 +1,43 @@
+;;; setup-popper.el --- Popup buffers that rotate between shells and Pilish  -*- lexical-binding: t; -*-
+
+;;; Commentary:
+
+;; Popper keeps shell and Pilish buffers out of the way until summoned.
+;; `popper-cycle' rotates between them.
+
+;;; Code:
+
+(declare-function popper-toggle "popper" ())
+(declare-function popper-cycle "popper" ())
+(declare-function popper-toggle-type "popper" ())
+(declare-function popper-mode "popper" (&optional arg))
+(defvar mine-evil-leader-map)
+
+(use-package popper
+  :bind (("C-`" . popper-toggle)
+         ("M-`" . popper-cycle)
+         ("C-M-`" . popper-toggle-type))
+  :custom
+  (popper-group-function nil)
+  (popper-reference-buffers
+   '("\\*eshell\\*"
+     eshell-mode
+     "\\*terminal\\*"
+     term-mode
+     "\\*vterm\\*"
+     vterm-mode
+     "\\*pilish-.*\\*"
+     pilish-chat-mode
+     pilish-input-mode))
+  :config
+  (popper-mode 1)
+  (require 'popper-echo nil t)
+  (when (fboundp 'popper-echo-mode)
+    (popper-echo-mode 1)))
+
+(with-eval-after-load 'evil
+  (keymap-set mine-evil-leader-map "t p" #'popper-toggle)
+  (keymap-set mine-evil-leader-map "t n" #'popper-cycle))
+
+(provide 'setup-popper)
+;;; setup-popper.el ends here
blob - 0413a4bc6071a03902e00d5cb6b0655a88dbeec3
blob + 4b8fc6aafc37333cdc80bef5b9b3a2f7666d6617
--- lisp/setup-shell.el
+++ lisp/setup-shell.el
@@ -2,27 +2,22 @@
 
 ;;; Commentary:
 
-;; Configure Eshell, Eat, and Tramp.
+;; Configure Eshell, Shell, and Tramp.
 
 ;;; Code:
 
 (declare-function consult-history "consult" (&optional history-elements))
-(declare-function eat-eshell-mode "eat" (&optional arg))
-(declare-function eat-eshell-visual-command-mode "eat" (&optional arg))
 
 (defun mine-eshell-setup ()
   "Bind `C-r' to `consult-history' in Eshell."
   (keymap-set (current-local-map) "C-r" #'consult-history))
 
-(add-hook 'eshell-mode-hook #'mine-eshell-setup)
+(use-package eshell
+  :ensure nil
+  :hook (eshell-mode . mine-eshell-setup))
 
-(use-package eat
-  :after eshell
-  :custom
-  (eat-term-name "xterm-256color")
-  :config
-  (eat-eshell-mode)
-  (eat-eshell-visual-command-mode))
+(use-package vterm
+  :commands vterm)
 
 (use-package tramp
   :ensure nil
blob - 910be71028e94678fe43194a1b8664ab942c6d4f
blob + 9630ddbf41a8738609e6b7ecd6d2156016a7f66d
--- lisp/setup-term-sessions.el
+++ lisp/setup-term-sessions.el
@@ -2,7 +2,7 @@
 
 ;;; Commentary:
 
-;; Persistent terminal sessions backed by zmx, attached through Eat.
+;; Persistent terminal sessions backed by zmx, attached through Vterm.
 
 ;;; Code:
 
@@ -10,9 +10,8 @@
   (require 'use-package))
 
 (use-package term-sessions
-  :after eat
   :custom
-  (term-sessions-preferred-frontend 'eat))
+  (term-sessions-preferred-frontend 'vterm))
 
 (provide 'setup-term-sessions)
 ;;; setup-term-sessions.el ends here