Can't swap cl-flet with flet ... gotta use cl-left instead
Oh, and I swapped in the use of a hook
This commit is contained in:
parent
f25a76f696
commit
f36edaff09
1 changed files with 15 additions and 20 deletions
|
@ -190,29 +190,24 @@ Using =emacsclient=, the operating system or other applications can trigger a ca
|
|||
(width . 80)
|
||||
(height . 25)))
|
||||
(select-frame-by-name "capture")
|
||||
|
||||
;; I am always in fullscreen mode for Emacs, so it doesn't always honor
|
||||
;; the original settings specified above.
|
||||
;; (when (...)
|
||||
;; (toggle-frame-fullscreen))
|
||||
|
||||
(delete-other-windows)
|
||||
(cl-flet ((switch-to-buffer-other-window (buf) (switch-to-buffer buf)))
|
||||
(cl-letf (((symbol-function 'switch-to-buffer-other-window) 'switch-to-buffer))
|
||||
(org-capture)))
|
||||
|
||||
(defadvice org-capture-finalize
|
||||
(after delete-capture-frame activate)
|
||||
"Advise capture-finalize to close the frame."
|
||||
(if (equal "capture" (frame-parameter nil 'name))
|
||||
(delete-frame)))
|
||||
|
||||
(defadvice org-capture-destroy
|
||||
(after delete-capture-frame activate)
|
||||
"Advise capture-destroy to close the frame."
|
||||
(if (equal "capture" (frame-parameter nil 'name))
|
||||
(delete-frame)))
|
||||
#+end_src
|
||||
Which can have an external shell script:
|
||||
When I call [[help:org-capture][org-capture]] in its own frame, I don’t want any other windows around, so we /rebind/ =org-capture= ’s call to switch the buffer to another window, to switch to the capture buffer.
|
||||
|
||||
Wouldn’t it be grand if when we finished capturing, the frame automatically closed:
|
||||
#+begin_src emacs-lisp
|
||||
(defun org-capture-delete-frame ()
|
||||
"Hook for `org-capture-after-finalize-hook' to delete the frame."
|
||||
(message "Finished with the org-capture-after-finalize-hook")
|
||||
(when (equal "capture" (frame-parameter nil 'name))
|
||||
(delete-frame)))
|
||||
|
||||
(add-hook 'org-capture-after-finalize-hook 'org-capture-delete-frame)
|
||||
#+end_src
|
||||
|
||||
This external shell script calls the function to kick everything off from applications that aren’t Emacs:
|
||||
#+begin_src sh :shebang "#!/bin/bash" :tangle ~/bin/emacs-capture
|
||||
/usr/local/bin/emacsclient -s work -n -e "(start-capture-frame)"
|
||||
#+end_src
|
||||
|
|
Loading…
Reference in a new issue