summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--attic/misc.org112
-rw-r--r--exwm.org6
-rw-r--r--init.org89
3 files changed, 88 insertions, 119 deletions
diff --git a/attic/misc.org b/attic/misc.org
index b468c7b..c3df4b7 100644
--- a/attic/misc.org
+++ b/attic/misc.org
@@ -537,55 +537,85 @@
#+end_src
* vterm
- #+begin_src emacs-lisp
+*** vterm
+ #+begin_src emacs-lisp :tangle no
+ (use-package vterm-toggle
+ :ensure t
+ :config
+ (defun jao-vterm--toggle (cd)
+ (interactive "P")
+ (if cd (vterm-toggle-cd) (vterm-toggle)))
+ :bind (("C-<f3>" . jao-vterm--toggle)))
+
(use-package vterm
:ensure t
- :init
- (setq vterm-kill-buffer-on-exit t
- vterm-copy-exclude-prompt t
- vterm-use-vterm-prompt-detection-method t
- vterm-buffer-name-string nil)
:config
- (define-key vterm-mode-map [(f1)] nil)
- :bind (:map vterm-mode-map (("C-c C-c" . vterm-send-C-c))))
-
- (defun jao-exec-in-vterm (cmd &optional name)
- (vterm)
- (when name (vterm-send-string "unset PROMPT_COMMAND\n"))
- (vterm-send-string cmd)
- (vterm-send-return)
- (when name (rename-buffer name)))
-
- (defun jao-exec-in-vterm (cmd &optional name)
- (ansi-term cmd name))
-
- (defvar-local jao-vterm--cmd nil)
-
- (defun jao-vterm--find (cmd)
- (seq-find (lambda (b)
- (and (eq (buffer-local-value 'major-mode b) 'vterm-mode)
- (string= (or (buffer-local-value 'jao-vterm--cmd b) "")
- cmd)))
- (buffer-list)))
-
- (defmacro jao-def-exec-in-vterm (name cmd &rest prelude)
- `(defun ,(intern (format "jao-vterm-%s" name)) ()
- (interactive)
- ,@prelude
- (if-let ((b (jao-vterm--find ,cmd)))
- (pop-to-buffer b)
- (jao-exec-in-vterm (format "%s; exit" ,cmd)
- ,(when name (format "%s" name)))
- (setq-local jao-vterm--cmd ,cmd))))
-
- (jao-def-exec-in-vterm aptitude "aptitude" (jao-afio--goto-scratch))
- (jao-def-exec-in-vterm htop "htop" (jao-afio--goto-scratch))
- #+end_src
+ :custom ((vterm-kill-buffer-on-exit t)))
+
+ (use-package eshell-vterm
+ :ensure t
+ :config (eshell-vterm-mode))
+
+ (defun jao-exec-in-vterm (cmd bname)
+ (if (string-blank-p (or cmd ""))
+ (vterm)
+ (let ((vterm-shell cmd)
+ (vterm-kill-buffer-on-exit t)
+ (buff (generate-new-buffer bname)))
+ (switch-to-buffer buff)
+ (vterm-mode))))
+
+ #+end_src
*** Vterm repls
#+begin_src emacs-lisp
(use-package jao-vterm-repl)
(jao-define-attached-buffer "^\\* vrepl - .+ \\*.*")
#+end_src
+* eshell here
+ #+begin_src emacs-lisp
+ (defun jao-shell-here--find-window (b)
+ (when-let (w (seq-find (lambda (w) (eq (window-buffer w) b))
+ (window-list)))
+ (select-window w)))
+
+ (defun jao-shell-frame-buffer (&optional b)
+ (let ((p 'jao-eshell-buffer))
+ (if b (set-frame-parameter nil p b) (frame-parameter nil p))))
+
+ (defun jao-shell--cd-here (dir)
+ (eshell-kill-input)
+ (eshell/cd dir)
+ (insert "\n")
+ (eshell-send-input))
+
+ (defun jao-shell-here (&optional stay)
+ (interactive)
+ (let* ((dir default-directory)
+ (b (jao-shell-frame-buffer)))
+ (jao-with-attached-buffer "^\\*eshell" 35
+ (if (buffer-live-p b)
+ (pop-to-buffer b nil t)
+ (eshell)
+ (jao-shell-frame-buffer (current-buffer))))
+ (eshell-save-some-history)
+ (unless stay (jao-shell--cd-here dir))))
+
+ (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-shell-here-toggle ()
+ (interactive)
+ (if (eq (current-buffer) (jao-shell-frame-buffer))
+ (eshell/x)
+ (jao-shell-here t)))
+
+ (global-set-key (kbd "C-!") #'jao-shell-here)
+ (global-set-key [(f1)] #'jao-shell-here-toggle)
+ #+end_src
* scrolling
#+begin_src emacs-lisp
(use-package iscroll
diff --git a/exwm.org b/exwm.org
index d2fd5e8..93bddcb 100644
--- a/exwm.org
+++ b/exwm.org
@@ -499,10 +499,10 @@
("d" "go to doc" jao-exwm-select-pdf)
("D" "open to doc" jao-open-doc)]
["Packages"
- ("a" "aptitude" jao-term-aptitude)
+ ("a" "aptitude" jao-exwm-aptitude)
("l" "packages" jao-exwm-packages)]
["Monitors"
- ("p" "htop" jao-term-htop)
+ ("p" "htop" jao-exwm-htop)
("x" "restart xmobar" jao-exwm-xmobar)
("X" "kill xmobar" jao-exwm-kill-xmobar)]
["Network"
@@ -559,7 +559,7 @@
([?\s-p] . jao-prev-window)
([?\s-r] . app-launcher-run-app)
([?\s-s] . jao-transient-spotify)
- ([?\s-t] . vterm)
+ ([?\s-t] . jao-exwm-xterm)
([?\s-w] . jao-transient-exwm)
([?\s-z] . jao-transient-sleep)
([XF86AudioMute] . jao-mixer-master-toggle)
diff --git a/init.org b/init.org
index bde6120..a3577e8 100644
--- a/init.org
+++ b/init.org
@@ -1751,39 +1751,10 @@
(autoload 'ansi-color-for-comint-mode-on "ansi-color" nil t)
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)
#+end_src
-*** vterm
- #+begin_src emacs-lisp
- (use-package vterm-toggle
- :ensure t
- :config
- (defun jao-vterm--toggle (cd)
- (interactive "P")
- (if cd (vterm-toggle-cd) (vterm-toggle)))
- :bind (("C-<f3>" . jao-vterm--toggle)))
-
- (use-package vterm
- :ensure t
- :config
- :custom ((vterm-kill-buffer-on-exit t)))
-
- (use-package eshell-vterm
- :ensure t
- :config (eshell-vterm-mode))
-
- (defun jao-exec-in-vterm (cmd bname)
- (if (string-blank-p (or cmd ""))
- (vterm)
- (let ((vterm-shell cmd)
- (vterm-kill-buffer-on-exit t)
- (buff (generate-new-buffer bname)))
- (switch-to-buffer buff)
- (vterm-mode))))
-
- #+end_src
*** term
#+begin_src emacs-lisp
(defvar-local jao-term--cmd nil)
- (defvar jao-use-vterm t)
+ (defvar jao-use-vterm nil)
(defun jao-term--find (cmd)
(seq-find (lambda (b)
@@ -1951,6 +1922,19 @@
#+BEGIN_SRC emacs-lisp
(add-hook 'eshell-expand-input-functions #'eshell-expand-history-references)
#+END_SRC
+***** Toggle
+ #+begin_src emacs-lisp
+ (use-package eshell-toggle
+ :ensure t
+ :demand t)
+
+ (defun jao-eshell-toggle (git-root)
+ (interactive "P")
+ (let ((eshell-toggle-use-git-root git-root))
+ (eshell-toggle)))
+
+ (global-set-key (kbd "<f1>") #'jao-eshell-toggle)
+ #+end_src
***** Workarounds
#+begin_src emacs-lisp
;; at some point, bash completion started insertig the TAB
@@ -1972,51 +1956,6 @@
(jao-eshell--kbds)
(add-hook 'eshell-mode-hook #'jao-eshell--kbds))
#+end_src
-*** shell here
- #+begin_src emacs-lisp
- (defun jao-shell-here--find-window (b)
- (when-let (w (seq-find (lambda (w) (eq (window-buffer w) b))
- (window-list)))
- (select-window w)))
-
- (defun jao-shell-frame-buffer (&optional b)
- (let ((p 'jao-eshell-buffer))
- (if b (set-frame-parameter nil p b) (frame-parameter nil p))))
-
- (defun jao-shell--cd-here (dir)
- (eshell-kill-input)
- (eshell/cd dir)
- (insert "\n")
- (eshell-send-input))
-
- (defun jao-shell-here (&optional stay)
- (interactive)
- (let* ((dir default-directory)
- (b (jao-shell-frame-buffer)))
- (jao-with-attached-buffer "^\\*eshell" 35
- (if (buffer-live-p b)
- (pop-to-buffer b nil t)
- (eshell)
- (jao-shell-frame-buffer (current-buffer))))
- (eshell-save-some-history)
- (unless stay (jao-shell--cd-here dir))))
-
- (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-shell-here-toggle ()
- (interactive)
- (if (eq (current-buffer) (jao-shell-frame-buffer))
- (eshell/x)
- (jao-shell-here t)))
-
- (global-set-key (kbd "C-!") #'jao-shell-here)
- (global-set-key [(f1)] #'jao-shell-here-toggle)
- #+end_src
* Version control and CI
*** General options
#+BEGIN_SRC emacs-lisp