Hi Alan

your code seems very intersting and i have been looking for something like this for a while. yet for me it opens a new frame without org capture. i use linux (arch) and put in the following code. please note that when i evaled your code it said:
`flet' is an obsolete macro (as of 24.3); use either `cl-flet' or `cl-letf'.
so i changed flet to cl-flet and it still didnt work :)

here is the code

(defun make-orgcapture-frame ()
  "Create a new frame and run org-capture."
  (interactive)
  (make-frame '((name . "remember") (width . 80) (height . 16)
                (top . 400) (left . 300)
                (font . "Pragmata Pro-16")
                ))
  (select-frame-by-name "remember")
  (delete-other-windows)
  (flet ((switch-to-buffer-other-window (buf) (switch-to-buffer buf)))
    (org-capture nil "t")))

;; delete the frame in that case
(add-hook 'org-capture-after-finalize-hook
          (lambda ()
            (when (equal
                   (cdr (assoc 'name (frame-parameters (selected-frame))))
                   "remember")
              (delete-frame))))


any ideas?

thx

z

On Tue, Jun 9, 2015 at 12:22 PM, Alan Schmitt <alan.schmitt@polytechnique.org> wrote:
Hello Eric,

On 2015-06-08 17:23, Eric S Fraga <e.fraga@ucl.ac.uk> writes:

> as monitors get bigger and bigger, I tend to have lots of (emacs)
> windows in a frame.  No matter how many I have, org-capture takes over
> the whole frame which is kind of wasteful.

How about using several frames? For instance I have the following code
bound globally in my OS:

#+begin_src sh
/usr/local/bin/emacsclient -n -e '(make-orgcapture-frame)'
#+end_src

The function is defined as follows (with some supporting code to delete
the frame when I'm done):

#+begin_src emacs-lisp
(defun make-orgcapture-frame ()
  "Create a new frame and run org-capture."
  (interactive)
  (make-frame '((name . "remember") (width . 80) (height . 16)
                (top . 400) (left . 300)
                (font . "-*-Consolas-normal-normal-normal-*-13-*-*-*-m-0-iso10646-1")
                ))
  (select-frame-by-name "remember")
  (delete-other-windows)
  (flet ((switch-to-buffer-other-window (buf) (switch-to-buffer buf)))
    (org-capture nil "t")))

;; delete the frame in that case
(add-hook 'org-capture-after-finalize-hook
          (lambda ()
            (when (equal
                   (cdr (assoc 'name (frame-parameters (selected-frame))))
                   "remember")
              (delete-frame))))
#+end_src

Alan

--
OpenPGP Key ID : 040D0A3B4ED2E5C7
Weekly CO₂ average (2015-05-30, Mauna Loa Observatory): 403.41 ppm