Files
emacs/config/terminal.org

1.7 KiB

Terminal

I've been using eat (Emulate A Terminal) in place of vterm lately as it has better emacs integration without too big of a performance hit. It doesn't handle fancy terminal applications quite as well, but so far has performed well.

(use-package eat
  :ensure (:type git
                 :host codeberg
                 :repo "akib/emacs-eat"
                 :files ("*.el" ("term" "term/*.el") "*.texi"
                         "*.ti" ("terminfo/e" "terminfo/e/*")
                         ("terminfo/65" "terminfo/65/*")
                         ("integration" "integration/*")
                         (:exclude ".dir-locals.el" "*-tests.el")))
  :hook
  (eat-mode-hook . eat-char-mode)
  (eshell-load-hook . eat-eshell-mode)
  (eshell-load-hook . eat-eshell-visual-command-mode)
  :custom
  (eat-kill-buffer-on-exit t)
  :config
  (setopt eat-shell-prompt-annotation-delay 0)
  (setopt eat-very-visible-cursor-type '(t nil nil))
  (setopt eat-default-cursor-type '(t nil nil))
  (setq process-adaptive-read-buffering nil)
  (setq read-process-output-max (* 4 1024 1024))
  ;; Compile terminfo if needed
  (eat-compile-terminfo))

Many of these settings are there to reduce flickering. They may not be needed long term.

Eshell

I eshell quite often. Here are some plugins that can add some missing functionality beyond what eat-shell-mode gives.

eshell-venv

Eshell-venv is an Emacs package providing functions for activating and deactivating Python virtual environments in Eshell.

(use-package eshell-venv
  :ensure
  (:repo "https://git.sr.ht/~struanr/eshell-venv")
  :hook
  (eshell-mode . eshell-venv-mode))