summaryrefslogtreecommitdiffstats
path: root/lisp/init-vterm.el
blob: f0ebc552b35b99b8d65dfbb3ecd0b5a9802dd868 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
;;; init-vterm.el --- configure vterm  -*- lexical-binding:t -*-
;;; Commentary:
;;; Code:

(defun mpolden/vterm-change-theme (theme)
  "Change the theme in all Vterm buffers to THEME."
  (mapcar (lambda (buf)
            (with-current-buffer buf
              (vterm-send-string (concat "export VTERM_THEME=" theme "\n"))))
          (seq-filter (lambda (buf) (string-prefix-p "vterm: " (buffer-name buf)))
                      (buffer-list))))

(defun mpolden/vterm-set-theme (theme)
  "Set the default Vterm theme to THEME."
  (let ((new-var (concat "VTERM_THEME=" theme)))
    (setq vterm-environment
          (seq-filter (lambda (var)
                        (unless (string-prefix-p "VTERM_THEME=" var)))
                      vterm-environment))
    (add-to-list 'vterm-environment new-var t)))

(use-package vterm
  :ensure t
  :init
  ;; include current directory in buffer name
  (setq vterm-buffer-name-string "vterm: %s")
  :config
  ;; set theme
  (when (fboundp 'mpolden/current-theme)
    (mpolden/vterm-set-theme (mpolden/current-theme))))

(provide 'init-vterm)

;;; init-vterm.el ends here