* Terminal I've been using [[https://codeberg.org/akib/emacs-eat][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. #+begin_src emacs-lisp (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)) #+end_src 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 [[https://git.sr.ht/~struanr/eshell-venv][Eshell-venv]] is an Emacs package providing functions for activating and deactivating Python virtual environments in Eshell. #+begin_src emacs-lisp (use-package eshell-venv :ensure (:repo "https://git.sr.ht/~struanr/eshell-venv") :hook (eshell-mode . eshell-venv-mode)) #+end_src