feat(emacs): Eshell stuff

- Fancify prompt
  - Shows success of last command.
  - TRAMP prefix is made distinct.
  - CWD is abbreviated.
- cd to project root (`cdp`).
- Imitate using `C-d` / send-EOF to exit.
- Opening popup shell puts user in insert state.
- Fixes TRAMP customisation.

Nicely done! }:3
This commit is contained in:
Madeleine Sydney
2025-02-16 18:50:00 -07:00
parent a0495c6df3
commit 6c9213d532
8 changed files with 182 additions and 44 deletions

View File

@@ -64,7 +64,11 @@
(native-comp-async-report-warnings-errors 'silent)
;; Don't recenter the view unless >10 lines are scrolled off-screen
;; in a single movement.
(scroll-conservatively 10))
(scroll-conservatively 10)
;; In modes making use of `recenter-top-bottom' (e.g. Comint,
;; Eshell), this will make the command behave more like a plain old
;; `clear` invocation.
(recenter-positions '(top)))
:config
;; Disable the menu bar, scroll bar, and tool bar.
(menu-bar-mode -1)
@@ -75,7 +79,7 @@
:disabled
:unless noninteractive
:commands persp-switch-to-buffer
:hook (on-init-ui . persp-mode)
:hook (on-init-ui-hook . persp-mode)
:config
(setq persp-autokill-buffer-on-remove 'kill-weak
persp-reset-windows-on-nil-window-conf nil
@@ -89,14 +93,15 @@
persp-auto-resume-time -1 ; Don't auto-load on startup
persp-auto-save-opt (if noninteractive 0 1)))
(defun syd-init-ui-hacks ()
(set-popup-rule! "*Backtrace*"
:size #'doom-popup-shrink-to-fit)
(set-popup-rule! "*Messages*"
:ttl nil
:quit t)
(evil-set-initial-state 'debugger-mode 'normal))
(add-hook 'on-init-ui-hook #'syd-init-ui-hacks)
(syd-add-hook 'on-init-ui-hook
(defun syd-init-ui-hacks ()
(set-popup-rule! "*Backtrace*"
:size #'doom-popup-shrink-to-fit)
(set-popup-rule! "*Messages*"
:ttl nil
:quit t)
;; Required for :quit t to do anything.
(evil-set-initial-state 'messages-buffer-mode 'motion)
(evil-set-initial-state 'debugger-mode 'normal)))
(provide 'syd-ui)