diff options
author | jao <jao@gnu.org> | 2021-11-15 21:40:57 +0000 |
---|---|---|
committer | jao <jao@gnu.org> | 2021-11-15 21:40:57 +0000 |
commit | 0af6989d4d638f109e4cd7beb6ff37a4e97e426a (patch) | |
tree | 529c4addeaaf9cabda2a3a15fb69d4e2f4409b6c /init.org | |
parent | 657a272347e96dcd4fcd825178b0f86124da32a1 (diff) | |
download | elibs-0af6989d4d638f109e4cd7beb6ff37a4e97e426a.tar.gz elibs-0af6989d4d638f109e4cd7beb6ff37a4e97e426a.tar.bz2 |
jao-eshell-here: new nih lib
Diffstat (limited to 'init.org')
-rw-r--r-- | init.org | 56 |
1 files changed, 7 insertions, 49 deletions
@@ -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 |