diff --git a/modules/tools/vterm/autoload.el b/modules/tools/vterm/autoload.el index d3b36d73a..2ea2f3c6c 100644 --- a/modules/tools/vterm/autoload.el +++ b/modules/tools/vterm/autoload.el @@ -7,11 +7,15 @@ non-nil, cd into the current project's root." (interactive "P") (unless (fboundp 'module-load) (user-error "Your build of Emacs lacks dynamic modules support and cannot load vterm")) + ;; This hack forces vterm to redraw, fixing strange artefacting in the tty. + ;; Don't ask me why it works. + (save-window-excursion + (pop-to-buffer "*scratch*")) (let ((default-directory (if arg (or (doom-project-root) default-directory) default-directory))) - (switch-to-buffer (save-window-excursion (vterm))))) + (vterm))) ;;;###autoload (defun +vterm/open-popup (arg) @@ -24,7 +28,7 @@ non-nil, cd into the current project's root." (if arg (or (doom-project-root) default-directory) default-directory))) - (pop-to-buffer (save-window-excursion (vterm))))) + (vterm-other-window))) ;;;###autoload (defun +vterm/open-popup-in-project () diff --git a/modules/tools/vterm/config.el b/modules/tools/vterm/config.el index 1c0514137..3323f6574 100644 --- a/modules/tools/vterm/config.el +++ b/modules/tools/vterm/config.el @@ -10,6 +10,10 @@ (add-hook 'vterm-mode-hook #'doom|mark-buffer-as-real) ;; Automatically kill buffer when vterm exits. (add-to-list 'vterm-exit-functions (lambda (buffer) (if buffer (kill-buffer buffer)))) + ;; Modeline serves no purpose in vterm + (add-hook 'vterm-mode-hook #'hide-mode-line-mode) + ;; Don't prompt about processes when killing vterm + (setq-hook! 'vterm-mode-hook confirm-kill-processes nil) (when (featurep! :editor evil) (evil-set-initial-state 'vterm-mode 'insert) diff --git a/modules/ui/doom/config.el b/modules/ui/doom/config.el index 26082e7e8..7b5c9c980 100644 --- a/modules/ui/doom/config.el +++ b/modules/ui/doom/config.el @@ -47,7 +47,11 @@ (defun +doom|solaire-mode-swap-bg-maybe () (when-let* ((rule (assq doom-theme +doom-solaire-themes))) (require 'solaire-mode) - (if (cdr rule) (solaire-mode-swap-bg)))) + (when (cdr rule) + (solaire-mode-swap-bg) + (with-eval-after-load 'ansi-color + (when-let* ((color (face-background 'default))) + (setf (aref ansi-color-names-vector 0) color)))))) (add-hook 'doom-load-theme-hook #'+doom|solaire-mode-swap-bg-maybe t) :config ;; fringe can become unstyled when deleting or focusing frames