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
|
||||
(app-launcher-run-app)
|
||||
(delete-frame)))
|
||||
(defun joe/vterm-scratch ()
|
||||
(interactive)
|
||||
(unwind-protect
|
||||
(joe/vterm-here)))
|
||||
#+end_src
|
||||
** Dirvish/Dired
|
||||
#+begin_src emacs-lisp
|
||||
@ -1762,7 +1758,8 @@ be kept here commented out in case we want to try it again.
|
||||
(require 'vterm)
|
||||
(setq vterm-shell "/bin/fish")
|
||||
(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-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
|
||||
;; (add-hook 'emacs-startup-hook (lambda () (require 'vterm)))
|
||||
#+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
|
||||
#+begin_src emacs-lisp
|
||||
(require 'undo-fu)
|
||||
|
Loading…
x
Reference in New Issue
Block a user