Lazy-load vterm & refactor config
This commit is contained in:
parent
002914c912
commit
483f2a492c
1 changed files with 13 additions and 20 deletions
|
@ -1,27 +1,25 @@
|
||||||
;;; tools/vterm/config.el -*- lexical-binding: t; -*-
|
;;; tools/vterm/config.el -*- lexical-binding: t; -*-
|
||||||
|
|
||||||
(def-package! vterm
|
(def-package! vterm
|
||||||
:load-path (lambda () (list (concat doom-packages-dir "/quelpa/build/vterm")))
|
:when (fboundp 'module-load)
|
||||||
:init
|
:defer t
|
||||||
(unless (file-executable-p (concat
|
:init (setq vterm-install t)
|
||||||
(file-name-directory (locate-library "vterm"))
|
|
||||||
"vterm-module.so"))
|
|
||||||
;; let vterm compile `vterm-modules.so'
|
|
||||||
(setq-default vterm-install t))
|
|
||||||
:when (and (string-match-p "MODULES" system-configuration-features)
|
|
||||||
(display-graphic-p))
|
|
||||||
:config
|
:config
|
||||||
(set-env! "SHELL")
|
(set-env! "SHELL")
|
||||||
|
(set-popup-rule! "^vterm" :size 0.25 :vslot -4 :select t :quit nil :ttl 0)
|
||||||
|
|
||||||
(add-hook 'vterm-mode-hook #'doom|mark-buffer-as-real)
|
(add-hook 'vterm-mode-hook #'doom|mark-buffer-as-real)
|
||||||
;; Automatically kill buffer when vterm exits.
|
;; Automatically kill buffer when vterm exits.
|
||||||
(add-hook 'vterm-exit-functions #'(lambda (buffer)
|
(add-to-list 'vterm-exit-functions (lambda (buffer) (if buffer (kill-buffer buffer))))
|
||||||
(when buffer (kill-buffer buffer))))
|
|
||||||
(when (featurep! :ui popup +defaults)
|
|
||||||
(set-popup-rule! "^vterm" :size 0.25 :vslot -4 :select t :quit nil :ttl 0))
|
|
||||||
(when (featurep! :feature evil)
|
(when (featurep! :feature evil)
|
||||||
(evil-set-initial-state 'vterm-mode 'insert)
|
(evil-set-initial-state 'vterm-mode 'insert)
|
||||||
|
;; Go back to normal state but don't move cursor backwards. Moving cursor
|
||||||
|
;; backwards is the default Vim behavior but it is not appropriate in some
|
||||||
|
;; cases like terminals.
|
||||||
|
(setq-hook! 'vterm-mode-hook evil-move-cursor-back nil)
|
||||||
;; Those keys are commonly needed by terminals.
|
;; Those keys are commonly needed by terminals.
|
||||||
(evil-define-key 'insert vterm-mode-map
|
(evil-define-key* 'insert vterm-mode-map
|
||||||
(kbd "C-a") #'vterm--self-insert
|
(kbd "C-a") #'vterm--self-insert
|
||||||
(kbd "C-b") #'vterm--self-insert ; Should not be necessary.
|
(kbd "C-b") #'vterm--self-insert ; Should not be necessary.
|
||||||
(kbd "C-d") #'vterm--self-insert
|
(kbd "C-d") #'vterm--self-insert
|
||||||
|
@ -40,9 +38,4 @@
|
||||||
(kbd "C-v") #'vterm--self-insert ; Should not be necessary.
|
(kbd "C-v") #'vterm--self-insert ; Should not be necessary.
|
||||||
(kbd "C-w") #'vterm--self-insert
|
(kbd "C-w") #'vterm--self-insert
|
||||||
(kbd "C-y") #'vterm--self-insert
|
(kbd "C-y") #'vterm--self-insert
|
||||||
(kbd "C-z") #'vterm--self-insert)
|
(kbd "C-z") #'vterm--self-insert)))
|
||||||
;; Go back to normal state but don't move cursor backwards.
|
|
||||||
;; Moving cursor backwards is the default Vim behavior but
|
|
||||||
;; it is not appropriate in some cases like terminals.
|
|
||||||
(add-hook 'vterm-mode-hook #'(lambda ()
|
|
||||||
(setq-local evil-move-cursor-back nil)))))
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue