summaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2023-03-02 10:43:42 +0100
committerMartin Polden <mpolden@mpolden.no>2023-03-02 10:45:20 +0100
commitf5b84de6cbac24a5717301006ba254374c318ed1 (patch)
treecf07fa87933fdb6bbec6b5b46490e117caf9687a /lisp
parentc19eda0bd48c2c4e3ca714700217dfdc2f993af2 (diff)
project: use eshell instead of vterm
vterm requires compilation of native module. Eshell works better over Tramp and has good integration in project.el.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/init-project.el34
-rw-r--r--lisp/init-theme.el9
-rw-r--r--lisp/init-vterm.el40
3 files changed, 5 insertions, 78 deletions
diff --git a/lisp/init-project.el b/lisp/init-project.el
index 6ff22a7..755d9fd 100644
--- a/lisp/init-project.el
+++ b/lisp/init-project.el
@@ -10,34 +10,6 @@
(when (and module-root (not is-vc-root))
(cons 'transient module-root))))
-(defun mpolden/project-vterm ()
- "Start Vterm in the current project's root directory.
-If a buffer already exists for any directory in the current
-project, switch to it.
-
-With \\[universal-argument] prefix arg, always create a new
-buffer even if one already exists for the current project, or if
-there is no project in `default-directory'."
- (interactive)
- (let* ((project (project-current (not current-prefix-arg)))
- (default-directory (if project
- (project-root project)
- default-directory))
- ;; find a vterm buffer which has its current directory in the project
- ;; root or any sub-directory of the root
- (vterm-buf
- (car (seq-filter
- (lambda (buf)
- (let* ((buf-prefix "vterm: ")
- (buf-name (buffer-name buf))
- (buf-dir (string-remove-prefix buf-prefix buf-name)))
- (and (string-prefix-p buf-prefix buf-name)
- (file-in-directory-p buf-dir default-directory))))
- (buffer-list)))))
- (if (and vterm-buf (not current-prefix-arg))
- (pop-to-buffer vterm-buf)
- (vterm-other-window))))
-
(use-package project
:init
;; commands to show when switching projects
@@ -45,15 +17,15 @@ there is no project in `default-directory'."
(project-dired "Dired" ?d)
(mpolden/grep "Grep" ?g)
(magit-project-status "Magit" ?m)
- (mpolden/project-vterm "Vterm" ?v)))
+ (project-eshell "Eshell" ?e)))
;; configure how projects are detected
(setq project-find-functions '(mpolden/project-try-go project-try-vc))
:bind (;; C-x f finds file in project
("C-x f" . project-find-file)
;; C-c p switches project
("C-c p" . project-switch-project)
- ;; C-c v starts vterm in project
- ("C-c v" . mpolden/project-vterm)))
+ ;; C-c e starts eshell in project
+ ("C-c e" . project-eshell)))
(provide 'init-project)
diff --git a/lisp/init-theme.el b/lisp/init-theme.el
index 1232f64..7358d28 100644
--- a/lisp/init-theme.el
+++ b/lisp/init-theme.el
@@ -31,13 +31,8 @@ The variables `mpolden/theme-light' and `mpolden/theme-dark'
decides the themes to toggle between."
(interactive)
(let* ((is-light (eq (mpolden/current-theme) 'light))
- (new-theme (if is-light mpolden/theme-dark mpolden/theme-light))
- (new-vterm-theme (if is-light "dark" "light")))
- (mpolden/switch-theme new-theme)
- (when (fboundp 'mpolden/vterm-change-theme)
- (mpolden/vterm-change-theme new-vterm-theme))
- (when (fboundp 'mpolden/vterm-set-theme)
- (mpolden/vterm-set-theme new-vterm-theme))))
+ (new-theme (if is-light mpolden/theme-dark mpolden/theme-light)))
+ (mpolden/switch-theme new-theme)))
(use-package doom-themes
:ensure t
diff --git a/lisp/init-vterm.el b/lisp/init-vterm.el
deleted file mode 100644
index 47b0ca6..0000000
--- a/lisp/init-vterm.el
+++ /dev/null
@@ -1,40 +0,0 @@
-;;; 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