Emacs: WIP vterm scratchpad
This commit is contained in:
parent
8f311d6531
commit
351cf8ce92
@ -1519,10 +1519,6 @@ When called interactively, prompt for BUFFER."
|
|||||||
(unwind-protect
|
(unwind-protect
|
||||||
(app-launcher-run-app)
|
(app-launcher-run-app)
|
||||||
(delete-frame)))
|
(delete-frame)))
|
||||||
(defun joe/vterm-scratch ()
|
|
||||||
(interactive)
|
|
||||||
(unwind-protect
|
|
||||||
(joe/vterm-here)))
|
|
||||||
#+end_src
|
#+end_src
|
||||||
** Dirvish/Dired
|
** Dirvish/Dired
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
@ -1762,7 +1758,8 @@ be kept here commented out in case we want to try it again.
|
|||||||
(require 'vterm)
|
(require 'vterm)
|
||||||
(setq vterm-shell "/bin/fish")
|
(setq vterm-shell "/bin/fish")
|
||||||
(setq vterm-timer-delay 0.01)
|
(setq vterm-timer-delay 0.01)
|
||||||
(setq vterm-buffer-name-string "VTerm - %s")
|
;; (setq vterm-buffer-name-string "VTerm - %s")
|
||||||
|
(setq vterm-buffer-name-string nil)
|
||||||
(setq vterm-max-scrollback 100000)
|
(setq vterm-max-scrollback 100000)
|
||||||
(setq vterm-kill-buffer-on-exit t)
|
(setq vterm-kill-buffer-on-exit t)
|
||||||
|
|
||||||
@ -1804,6 +1801,43 @@ startup. Reason we have to call this is so the vterm fucntion can call `vterm--i
|
|||||||
#+begin_src emacs-lisp :tangle no
|
#+begin_src emacs-lisp :tangle no
|
||||||
;; (add-hook 'emacs-startup-hook (lambda () (require 'vterm)))
|
;; (add-hook 'emacs-startup-hook (lambda () (require 'vterm)))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
This bit of code is to achieve a vterm scratchpad. In order to know I'm closing
|
||||||
|
the right frame, I'm going to use the frame's name to close and remove the hook
|
||||||
|
|
||||||
|
#+begin_src emacs-lisp
|
||||||
|
(defun vterm--set-title (title)
|
||||||
|
"Use TITLE to set the buffer name according to `vterm-buffer-name-string'."
|
||||||
|
(when (and vterm-buffer-name-string (not (equal (buffer-name) "Scratch VTerm")))
|
||||||
|
(rename-buffer (format vterm-buffer-name-string title) t)))
|
||||||
|
|
||||||
|
(defun joe/kill-frame ()
|
||||||
|
(when (equal (buffer-name) "Scratch VTerm")
|
||||||
|
(remove-hook 'kill-buffer-hook #'joe/kill-frame)
|
||||||
|
(remove-function delete-frame-functions #'joe/kill-vterm-scratch)
|
||||||
|
(delete-frame)))
|
||||||
|
|
||||||
|
(defun joe/kill-vterm-scratch ()
|
||||||
|
(let ((kill-buffer-query-functions nil)
|
||||||
|
(frame-name (substring-no-properties (cdr (assoc 'name (frame-parameters))))))
|
||||||
|
(message "Frame Name: %s" frame-name)
|
||||||
|
(when (equal frame-name "emacs-vterm-scratch")
|
||||||
|
(message "VTerm Scratch Buffer? %s" (get-buffer "Scratch VTerm"))
|
||||||
|
(kill-buffer (get-buffer "Scratch VTerm"))
|
||||||
|
(message "Did we kill it? %s" (get-buffer "Scratch VTerm"))
|
||||||
|
(remove-function delete-frame-functions #'joe/kill-vterm-scratch)
|
||||||
|
(remove-hook 'kill-buffer-hook #'joe/kill-frame))))
|
||||||
|
|
||||||
|
(defun joe/vterm-scratch ()
|
||||||
|
(interactive)
|
||||||
|
(let* ((vterm-buf (vterm--internal #'switch-to-buffer "Scratch VTerm")))
|
||||||
|
(with-current-buffer vterm-buf
|
||||||
|
(setq popper-popup-status 'raised)
|
||||||
|
(olivetti-mode)
|
||||||
|
(add-function :before delete-frame-functions #'joe/kill-vterm-scratch)
|
||||||
|
(add-hook 'kill-buffer-hook #'joe/kill-frame))))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
** Undo Fu
|
** Undo Fu
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(require 'undo-fu)
|
(require 'undo-fu)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user