diff options
author | Martin Polden <mpolden@mpolden.no> | 2023-03-02 10:43:42 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2023-03-02 10:45:20 +0100 |
commit | f5b84de6cbac24a5717301006ba254374c318ed1 (patch) | |
tree | cf07fa87933fdb6bbec6b5b46490e117caf9687a /lisp | |
parent | c19eda0bd48c2c4e3ca714700217dfdc2f993af2 (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.el | 34 | ||||
-rw-r--r-- | lisp/init-theme.el | 9 | ||||
-rw-r--r-- | lisp/init-vterm.el | 40 |
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 |