Raw link: https://www.youtube.com/watch?v=vbWxT8tht9A

In this 15-minute video I show the custom code I have to run any Emacscommand in a popup frame. The advantage of this is that I do not needto be in Emacs already. The examples I show cover org-capture and mytmr package.

This is the code I used in the video. Remember to assign theemacsclient calls to a system-level key binding.

;;;; Run commands in a popup frame(defun prot-window-delete-popup-frame (&rest _) "Kill selected selected frame if it has parameter `prot-window-popup-frame'.Use this function via a hook." (when (frame-parameter nil 'prot-window-popup-frame) (delete-frame)))(defmacro prot-window-define-with-popup-frame (command) "Define interactive function which calls COMMAND in a new frame.Make the new frame have the `prot-window-popup-frame' parameter." `(defun ,(intern (format "prot-window-popup-%s" command)) () ,(format "Run `%s' in a popup frame with `prot-window-popup-frame' parameter.Also see `prot-window-delete-popup-frame'." command) (interactive) (let ((frame (make-frame '((prot-window-popup-frame . t))))) (select-frame frame) (switch-to-buffer " prot-window-hidden-buffer-for-popup-frame") (condition-case nil (call-interactively ',command) ((quit error user-error) (delete-frame frame))))))(declare-function org-capture "org-capture" (&optional goto keys))(defvar org-capture-after-finalize-hook);;;###autoload (autoload 'prot-window-popup-org-capture "prot-window")(prot-window-define-with-popup-frame org-capture)(add-hook 'org-capture-after-finalize-hook #'prot-window-delete-popup-frame)(declare-function tmr "tmr" (time &optional description acknowledgep))(defvar tmr-timer-created-functions);;;###autoload (autoload 'prot-window-popup-tmr "prot-window")(prot-window-define-with-popup-frame tmr)(add-hook 'tmr-timer-created-functions #'prot-window-delete-popup-frame);;;; The emacsclient call depends on the daemon or `server-mode' (I use the latter)(use-package server :ensure nil :defer 1 :config (unless (server-running-p) (server-start)));;;; The emacsclient calls that need ot be bound to system-wide keys;; emacsclient -e '(prot-window-popup-org-capture)';; emacsclient -e '(prot-window-popup-tmr)'