summaryrefslogtreecommitdiffhomepage
path: root/init.org
diff options
context:
space:
mode:
authorjao <jao@gnu.org>2021-11-15 21:40:57 +0000
committerjao <jao@gnu.org>2021-11-15 21:40:57 +0000
commit0af6989d4d638f109e4cd7beb6ff37a4e97e426a (patch)
tree529c4addeaaf9cabda2a3a15fb69d4e2f4409b6c /init.org
parent657a272347e96dcd4fcd825178b0f86124da32a1 (diff)
downloadelibs-0af6989d4d638f109e4cd7beb6ff37a4e97e426a.tar.gz
elibs-0af6989d4d638f109e4cd7beb6ff37a4e97e426a.tar.bz2
jao-eshell-here: new nih lib
Diffstat (limited to 'init.org')
-rw-r--r--init.org56
1 files changed, 7 insertions, 49 deletions
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 (("<f1>" . jao-eshell-here-toggle)
+ ("C-<f1>" . jao-eshell-here-toggle-new)))
+
#+end_src
***** Workarounds
#+begin_src emacs-lisp