This package makes org mode popup buffers display in posframe.
By default, org mode has some functionalities that will divide out a new window, in which it displays a buffer that let you type or select something. This could be a little annoying if the window is large but the buffer is small. Or you may simply find posframe more pretty than divided windows.
Here are some screenshorts to give you an idea:
- org-insert-structure-template
- org-todo
Supported commands that generates popup buffers:
org-attach
org-capture
org-export-dispatch
org-insert-link
org-insert-structure-template
org-set-tags-command
org-todo
(require 'org-popup-posframe)
(org-popup-posframe-mode 1)
If org-popup-posframe-mode
is enabled, for org-attach
, org-capture
, org-export-dispatch
, org-insert-link
, org-insert-structure-template
, org-set-tags-command
, org-todo
, there popup buffers will be displayed in posframe.
To disable some of them (so they behave the default way), set org-popup-posframe-<command-name>
to nil, before enabling org-popup-posframe-mode
.
e.g: disable all of them
(setq org-popup-posframe-org-attach nil)
(setq org-popup-posframe-org-capture nil)
(setq org-popup-posframe-org-export-dispatch nil)
(setq org-popup-posframe-org-insert-link nil)
(setq org-popup-posframe-org-insert-structure-template nil)
(setq org-popup-posframe-org-set-tags-command nil)
(setq org-popup-posframe-org-todo nil)
(org-popup-posframe-mode 1)
Each supported command have a posframe-poshandlers
that can be assigned, which decides the position the posframes display.
By default, they’re fine-tuned to my likings, therefore you normally don’t need to do anything here.
If you are not satisfied, reassign some of these poshandler:
org-popup-posframe-org-attach-poshandler
org-popup-posframe-org-capture-poshandler
org-popup-posframe-org-export-dispatch-poshandler
org-popup-posframe-org-insert-link-poshandler
org-popup-posframe-org-insert-structure-template-poshandler
org-popup-posframe-org-todo-poshandler
to available poshandlers that come by default with the posframe
package:
posframe-poshandler-frame-center
posframe-poshandler-frame-top-center
posframe-poshandler-frame-top-left-corner
posframe-poshandler-frame-top-right-corner
posframe-poshandler-frame-top-left-or-right-other-corner
posframe-poshandler-frame-bottom-center
posframe-poshandler-frame-bottom-left-corner
posframe-poshandler-frame-bottom-right-corner
posframe-poshandler-window-center
posframe-poshandler-window-top-center
posframe-poshandler-window-top-left-corner
posframe-poshandler-window-top-right-corner
posframe-poshandler-window-bottom-center
posframe-poshandler-window-bottom-left-corner
posframe-poshandler-window-bottom-right-corner
posframe-poshandler-point-top-left-corner
posframe-poshandler-point-bottom-left-corner
posframe-poshandler-point-bottom-left-corner-upward
posframe-poshandler-point-window-center
posframe-poshandler-point-frame-center
Or you can write your own poshandler.
(setq org-popup-posframe-border-width 3)
(setq org-popup-posframe-parameters
'((left-fringe . 20)
(right-fringe . 20)))