From 5b64a89943893beba882dfc2d8fb6641b2bfb961 Mon Sep 17 00:00:00 2001 From: Daniel Borchmann Date: Sun, 18 Nov 2018 16:39:43 +0100 Subject: [PATCH] [Org] Code to make frame for spontaneous capturing --- init.el | 3 ++- site-lisp/db-org.el | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/init.el b/init.el index e68ba67..546cc31 100644 --- a/init.el +++ b/init.el @@ -595,7 +595,8 @@ db/org-timestamp-difference db/read-clockline db/org-capture-code-snippet - hydra-org-clock/body)) + hydra-org-clock/body + db/make-org-capture-frame)) (use-package org :commands (org-store-link) diff --git a/site-lisp/db-org.el b/site-lisp/db-org.el index 4abea3d..c2b03a8 100644 --- a/site-lisp/db-org.el +++ b/site-lisp/db-org.el @@ -235,6 +235,28 @@ In ~%s~: org-src-mode code-snippet)))) +;; Make capture frame, made for being called via emacsclient +;; https://cestlaz.github.io/posts/using-emacs-24-capture-2/ + +(defun db/make-org-capture-frame () + "Create a new frame for capturing." + (interactive) + (make-frame '((name . "capture"))) + (select-frame-by-name "capture") + (delete-other-windows) + (let ((org-capture-after-finalize-hook org-capture-after-finalize-hook)) + (org-capture))) + +(defun db/delete-frame-if-capture (&rest r) + "If current frame was made for a capture, close after done." + (ignore r) + (when (equal (frame-parameter nil 'name) + "capture") + (delete-frame))) + +(advice-add 'org-capture-finalize + :after #'db/delete-frame-if-capture) + ;;; Refiling