blob: 47b0ca652eefd6c0664b418411947f2a1f3ec84b (
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
35
36
37
38
39
40
|
;;; init-vterm.el --- configure vterm -*- lexical-binding:t -*-
;;; Commentary:
;;; Code:
(defun mpolden/theme-env-var (theme)
"Return the environment variable setting given THEME."
(concat "VTERM_THEME=" (if (symbolp theme)
(symbol-name theme)
theme)))
(defun mpolden/vterm-change-theme (theme)
"Change the theme in all Vterm buffers to THEME."
(let ((export-cmd (concat "export " (mpolden/theme-env-var theme) "\n")))
(mapcar (lambda (buf) (with-current-buffer buf
(vterm-send-string export-cmd)))
(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 (mpolden/theme-env-var 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
|