From 9c6bbe78d116a1ffd24245621853d6ff6f2ac1f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Benencia?= Date: Thu, 16 May 2024 08:33:58 -0700 Subject: emacs: delete-frame-after-capture --- .emacs.d/rul-lisp/packages/rul-org.el | 29 +++++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/.emacs.d/rul-lisp/packages/rul-org.el b/.emacs.d/rul-lisp/packages/rul-org.el index bced45c..3e796e3 100644 --- a/.emacs.d/rul-lisp/packages/rul-org.el +++ b/.emacs.d/rul-lisp/packages/rul-org.el @@ -84,16 +84,37 @@ ("L" "Web Link" entry (file+headline org-refile-path "Read later") - "* %?[[%:link][%:description]]\n %:initial\n") + "* %?[[%:link][%:description]] %(progn (setq rul/delete-frame-after-capture 1) \"\")\n %:initial\n \nCaptured On: %U") ("l" "Web Link with Selection" entry (file+headline org-refile-path "Read later") - "* [[%:link][%:description]]%?\n %:initial\n") + "* [[%:link][%:description]] %(progn (setq rul/delete-frame-after-capture 1) \"\")\n %:initial\n \nCaptured On: %U") ))) -(add-hook 'org-capture-mode-hook 'delete-other-windows) - +(defvar rul/delete-frame-after-capture 0 "Whether to delete the last frame after the current capture") + +(defun rul/delete-frame-if-necessary () + "Delete the last frame if necessary." + (cond + ((= rul/delete-frame-after-capture 0) nil) + ((> rul/delete-frame-after-capture 1) + (setq rul/delete-frame-after-capture (- rul/delete-frame-after-capture 1))) + (t + (setq rul/delete-frame-after-capture 0) + (delete-frame)))) + +(defun rul/org-capture-before () + "Function to run before org capture." + (setq rul/delete-frame-after-capture (1+ rul/delete-frame-after-capture))) + +(defun rul/org-capture-after () + "Function to run after org capture." + (rul/delete-frame-if-necessary)) + +(advice-add 'org-capture-finalize :after 'rul/delete-frame-if-necessary) +(advice-add 'org-capture-kill :after 'rul/delete-frame-if-necessary) +(advice-add 'org-capture-refile :after 'rul/delete-frame-if-necessary) ;; REFILE ;; -- cgit v1.2.3