From 0af6989d4d638f109e4cd7beb6ff37a4e97e426a Mon Sep 17 00:00:00 2001 From: jao Date: Mon, 15 Nov 2021 21:40:57 +0000 Subject: jao-eshell-here: new nih lib --- init.org | 56 +++++++------------------------------------------------- 1 file changed, 7 insertions(+), 49 deletions(-) (limited to 'init.org') diff --git a/init.org b/init.org index 6d984fe..025bd53 100644 --- a/init.org +++ b/init.org @@ -1949,55 +1949,13 @@ #+END_SRC ***** Toggle #+begin_src emacs-lisp - (defun jao-eshell-here--find-window (b) - (when-let (w (seq-find (lambda (w) (eq (window-buffer w) b)) - (window-list))) - (select-window w))) - - (defun jao-eshell-frame-buffer (&optional b) - (let ((p 'jao-eshell-buffer)) - (if b (set-frame-parameter nil p b) (frame-parameter nil p)))) - - (defun jao-eshell--cd-here (&optional dir) - (eshell-kill-input) - (eshell/cd (or dir default-directory)) - (insert "\n") - (eshell-send-input)) - - (defun jao-eshell-here (&optional stay) - (interactive "p") - (message "%s" stay) - (let ((b (jao-eshell-frame-buffer)) - (dir (cond ((> stay 4) default-directory) - ((> stay 1) - (project-root - (or (project-current) - `(transient . ,default-directory))))))) - (jao-with-attached-buffer "^\\*eshell" 30 - (if (buffer-live-p b) - (progn (pop-to-buffer b nil t) - (eshell-save-some-history) - (when dir (jao-eshell--cd-here dir))) - (let ((default-directory (or dir default-directory))) - (eshell)) - (jao-eshell-frame-buffer (current-buffer)))))) - - (defun eshell/x () - (when (derived-mode-p 'eshell-mode) - (when (fboundp 'eshell-autojump-save) - (eshell-autojump-save)) - (eshell-save-some-history) - (if (> (frame-height) (window-height)) - (delete-window) - (bury-buffer)))) - - (defun jao-eshell-here-toggle (stay) - (interactive "p") - (if (eq (current-buffer) (jao-eshell-frame-buffer)) - (eshell/x) - (jao-eshell-here stay))) - - (global-set-key [(f1)] #'jao-eshell-here-toggle) + + (use-package jao-eshell-here + :demand t + :config (jao-define-attached-buffer "^\\*eshell" 0.5) + :bind (("" . jao-eshell-here-toggle) + ("C-" . jao-eshell-here-toggle-new))) + #+end_src ***** Workarounds #+begin_src emacs-lisp -- cgit v1.2.3