3

I want to be able to launch a new emacsclient and issue org-capture in it. I have created this simple function:

(defun make-orgcapture-frame ()
  "Create a new frame and run org-capture."
  (interactive)
  (make-frame '((name . "zorg") (width . 180) (height . 160)
                (top . 400) (left . 300)
                ))
(select-frame-by-name "zorg")
(delete-other-windows)
(org-capture)
)

i then launch it with this command

emacsclient -n -e '(make-capture-frame)'

while this works it always opens in a split view where an old buffer from any current emacs frame i have open appears.

is there anyway i can make the org-capture buffer take the whole frame?

4
  • 1
    I can start you on your journey, but not get you over the finish line because there are too many different org- versions out there -- some old, some new. As to the org-mode that ships with Emacs 26.1, the function org-mks calls org-switch-to-buffer-other-window when creating the initial buffer with choices to select a template. The question does not indicate whether we are interested in only the initial window that displays choices of templates, or the window layout when a template has been selected .... That function calls (org-no-popups (apply 'switch-to-buffer-other-window args)).
    – lawlist
    Dec 8, 2018 at 6:23
  • 2
    Here is how to trace what is happening ... M-x find-function RET org-capture RET. Now move down a few lines and find where it calls org-capture-select-template -- place the cursor somewhere on that word and type M-x find-function, which will have a default value of the org-capture-select-template -- use the default and hit return and get transported to that function. Now, move the cursor down a few lines and find where it calls org-mks -- place the cursor on that function and type M-x find-function, which will default to org-mks ... hit return and go to org-mks....
    – lawlist
    Dec 8, 2018 at 6:33
  • 1
    Here is an example to get you started -- this temporarily makes org-switch-to-buffer-other-window behave as if it were actually switch-to-buffer -- we load org and cl to ensure the functions org-switch-to-buffer-other-window and cl-letf are available: (progn (require 'org) (require 'cl) (cl-letf (((symbol-function 'org-switch-to-buffer-other-window) #'switch-to-buffer)) (org-capture)))
    – lawlist
    Dec 8, 2018 at 6:41
  • According to the manual, make-frame creates a frame displaying a current buffer. I'm not sure why delete-other-windows fails to kill the other buffer then. Apr 17, 2019 at 3:32

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.