doomemacs/modules/term/vterm/config.el
Henrik Lissner 0407621aff
refactor: deprecate EMACS2[89]+, NATIVECOMP, MODULES
To reduce redundancy, remove the maintenance hassle that version
constants would impose later on, and rely on built-in
facilities (featurep) more over global variables or doomisms, these
global constants have been deprecated in favor of Emacs "features":

- EMACS28+   -- replace with (> emacs-major-version 27)
- EMACS29+   -- replace with (> emacs-major-version 28)
- NATIVECOMP -- replace with (featurep 'native-compile)
- MODULES    -- replace with (featurep 'dynamic-modules)

(These constants will be formally removed when v3 is released. The IS-*
constants are likely next, but I haven't decided on their substitutes
yet)

I also decided to follow native-compile's example and provide features
for Emacs' system features (since system-configuration-features' docs
outs itself as a poor method to detect features):

- dynamic-modules
- jansson
- native-compile -- this one already exists, but will instead be removed
  if it's non-functional; i.e. (native-comp-available-p) returns nil.

These are now detectable using featurep, which is fast and built-in.
2022-08-14 20:43:35 +02:00

31 lines
1.1 KiB
EmacsLisp

;;; term/vterm/config.el -*- lexical-binding: t; -*-
(use-package! vterm
:when (featurep 'dynamic-modules)
: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)
;; 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))