mirror of
https://github.com/doomemacs/doomemacs.git
synced 2026-03-09 00:01:45 -07:00
Way back, I added these three pseudo-features: (featurep 'dynamic-modules) (featurep 'harfbuzz) (featurep 'jansson) Why? Because some build features have pseudo features (like `tty-child-frames`, `pgtk`, and `threads`), but others don't, and I wanted more consistency around build feature detection. Years later, I realized it wasn't used much internally and only ended up confusing readers who didn't realize these were Doom's additions and not built into Emacs. Emacs' idiosyncrasies may not be nice or elegant, but they're less surprising to elisp beginners and veterans alike.
33 lines
1.2 KiB
EmacsLisp
33 lines
1.2 KiB
EmacsLisp
;;; term/vterm/config.el -*- lexical-binding: t; -*-
|
|
|
|
(use-package! vterm
|
|
:when (bound-and-true-p module-file-suffix) ; requires dynamic-modules support
|
|
:commands vterm-mode
|
|
:hook (vterm-mode . doom-mark-buffer-as-real-h)
|
|
:hook (vterm-mode . hide-mode-line-mode) ; modeline serves no purpose in vterm
|
|
:preface
|
|
;; HACK Because vterm clusmily forces vterm-module.so's compilation on us when
|
|
;; the package is loaded, this is necessary to prevent it when
|
|
;; byte-compiling this file (`use-package' blocks eagerly loads packages
|
|
;; when compiled).
|
|
(when noninteractive
|
|
(advice-add #'vterm-module-compile :override #'ignore)
|
|
(provide 'vterm-module))
|
|
|
|
:config
|
|
(set-popup-rule! "^\\*vterm" :size 0.25 :vslot -4 :select t :quit nil :ttl 0)
|
|
|
|
(map! :map vterm-mode-map "C-q" #'vterm-send-next-key)
|
|
|
|
;; Once vterm is dead, the vterm buffer is useless. Why keep it around? We can
|
|
;; spawn another if want one.
|
|
(setq vterm-kill-buffer-on-exit t)
|
|
|
|
;; 5000 lines of scrollback, instead of 1000
|
|
(setq vterm-max-scrollback 5000)
|
|
|
|
(setq-hook! 'vterm-mode-hook
|
|
;; Don't prompt about dying processes when killing vterm
|
|
confirm-kill-processes nil
|
|
;; Prevent premature horizontal scrolling
|
|
hscroll-margin 0))
|