ui/popup: refactor :popup/:popups settings
And move org popup settings to lang/org
This commit is contained in:
parent
f3c7dac997
commit
fa17de9f19
3 changed files with 64 additions and 62 deletions
|
@ -39,6 +39,7 @@
|
|||
(add-hook! 'org-load-hook
|
||||
#'(org-crypt-use-before-save-magic
|
||||
+org|setup-ui
|
||||
+org|setup-popups-rules
|
||||
+org|setup-agenda
|
||||
+org|setup-keybinds
|
||||
+org|setup-hacks))
|
||||
|
@ -130,6 +131,22 @@ unfold to point on startup."
|
|||
org-agenda-start-on-weekday nil
|
||||
org-agenda-start-day "-3d"))
|
||||
|
||||
(defun +org|setup-popups-rules ()
|
||||
"Defines popup rules for org-mode (does nothing if :ui popup is disabled)."
|
||||
(set! :popups
|
||||
'("^\\*\\(?:Agenda Com\\|Calendar\\|Org \\(?:Links\\|Export Dispatcher\\|Select\\)\\)"
|
||||
((slot . -1) (vslot . -1) (size . +popup-shrink-to-fit))
|
||||
((transient . 0)))
|
||||
'("^\\*Org Agenda"
|
||||
((size . 0.35))
|
||||
((select . t) (transient)))
|
||||
'("^\\*Org Src"
|
||||
((size . 0.3))
|
||||
((quit) (select . t)))
|
||||
'("^CAPTURE.*\\.org$"
|
||||
((size . 0.2))
|
||||
((quit) (select . t)))))
|
||||
|
||||
(defun +org|setup-ui ()
|
||||
"Configures the UI for `org-mode'."
|
||||
(setq-default
|
||||
|
|
|
@ -27,7 +27,8 @@ will be tested against CONDITION, which is either a) a regexp string (which is
|
|||
matched against the buffer's name) or b) a function that takes no arguments and
|
||||
returns a boolean."
|
||||
`(progn
|
||||
(+popup-define ,condition ,alist ,parameters)
|
||||
(push (+popup--rule (list ,condition ,alist ,parameters))
|
||||
+popup--display-buffer-alist)
|
||||
(when (bound-and-true-p +popup-mode)
|
||||
(setq display-buffer-alist +popup--display-buffer-alist))
|
||||
+popup--display-buffer-alist))
|
||||
|
@ -41,21 +42,21 @@ each individual rule.
|
|||
(\"^ \\*\" '((slot . 1) (vslot . -1) (size . +popup-shrink-to-fit)))
|
||||
(\"^\\*\" '((slot . 1) (vslot . -1)) '((select . t))))"
|
||||
`(progn
|
||||
,@(cl-loop for rule in rules collect `(+popup-define ,@rule))
|
||||
(dolist (rule (nreverse (list ,@rules)))
|
||||
(push (+popup--rule rule) +popup--display-buffer-alist))
|
||||
(when (bound-and-true-p +popup-mode)
|
||||
(setq display-buffer-alist +popup--display-buffer-alist))
|
||||
+popup--display-buffer-alist))
|
||||
|
||||
;;;###autoload
|
||||
(defsubst +popup-define (condition &optional alist parameters)
|
||||
(defsubst +popup--rule (args)
|
||||
(declare (indent 1))
|
||||
(push (if (eq alist :ignore)
|
||||
(cl-destructuring-bind (condition &optional alist parameters) args
|
||||
(if (eq alist :ignore)
|
||||
(list condition nil)
|
||||
`(,condition
|
||||
(+popup-buffer)
|
||||
`(,condition (+popup-buffer)
|
||||
,@alist
|
||||
(window-parameters ,@parameters)))
|
||||
+popup--display-buffer-alist))
|
||||
(window-parameters ,@parameters)))))
|
||||
|
||||
|
||||
;;
|
||||
|
|
|
@ -103,60 +103,44 @@ deleted.")
|
|||
;;
|
||||
|
||||
(when (featurep! +all)
|
||||
(+popup-define "^ \\*" '((slot . 1) (vslot . -1) (size . +popup-shrink-to-fit)))
|
||||
(+popup-define "^\\*" '((slot . 1) (vslot . -1)) '((select . t))))
|
||||
(set! :popups
|
||||
'("^ \\*" ((slot . 1) (vslot . -1) (size . +popup-shrink-to-fit)))
|
||||
'("^\\*" ((slot . 1) (vslot . -1)) ((select . t)))))
|
||||
|
||||
(when (featurep! +defaults)
|
||||
(+popup-define "^\\*Completions"
|
||||
'((slot . -1) (vslot . -2))
|
||||
'((transient . 0)))
|
||||
(+popup-define "^\\*Compil\\(?:ation\\|e-Log\\)"
|
||||
'((size . 0.3))
|
||||
'((transient . 0) (quit . t)))
|
||||
(+popup-define "^\\*\\(?:scratch\\|Messages\\)"
|
||||
(set! :popups
|
||||
'("^\\*Completions"
|
||||
((slot . -1) (vslot . -2))
|
||||
((transient . 0)))
|
||||
'("^\\*Compil\\(?:ation\\|e-Log\\)"
|
||||
((size . 0.3))
|
||||
((transient . 0) (quit . t)))
|
||||
'("^\\*\\(?:scratch\\|Messages\\)"
|
||||
nil
|
||||
'((autosave . t) (transient)))
|
||||
(+popup-define "^\\*doom \\(?:term\\|eshell\\)"
|
||||
'((size . 0.25) (vslot . -10))
|
||||
'((select . t) (quit) (transient . 0)))
|
||||
(+popup-define "^\\*doom:"
|
||||
'((size . 0.35) (side . bottom))
|
||||
'((autosave . t) (select . t) (modeline . t) (quit) (transient . t)))
|
||||
(+popup-define "^\\*\\(?:\\(?:Pp E\\|doom e\\)val\\)"
|
||||
'((size . +popup-shrink-to-fit))
|
||||
'((transient . 0) (select . ignore)))
|
||||
(+popup-define "^\\*Customize"
|
||||
'((slot . 2) (side . right))
|
||||
'((modeline . nil) (select . t) (quit . t)))
|
||||
(+popup-define "^ \\*undo-tree\\*"
|
||||
'((slot . 2) (side . left) (size . 20))
|
||||
'((modeline . nil) (select . t) (quit . t)))
|
||||
|
||||
((autosave . t) (transient)))
|
||||
'("^\\*doom \\(?:term\\|eshell\\)"
|
||||
((size . 0.25) (vslot . -10))
|
||||
((select . t) (quit) (transient . 0)))
|
||||
'("^\\*doom:"
|
||||
((size . 0.35) (side . bottom))
|
||||
((autosave . t) (select . t) (modeline . t) (quit) (transient . t)))
|
||||
'("^\\*\\(?:\\(?:Pp E\\|doom e\\)val\\)"
|
||||
((size . +popup-shrink-to-fit))
|
||||
((transient . 0) (select . ignore)))
|
||||
'("^\\*Customize"
|
||||
((slot . 2) (side . right))
|
||||
((modeline . nil) (select . t) (quit . t)))
|
||||
'("^ \\*undo-tree\\*"
|
||||
((slot . 2) (side . left) (size . 20))
|
||||
((modeline . nil) (select . t) (quit . t)))
|
||||
;; `help-mode', `helpful-mode'
|
||||
(+popup-define "^\\*[Hh]elp"
|
||||
'((slot . 2) (vslot . 2) (size . 0.25))
|
||||
'((select . t)))
|
||||
'("^\\*[Hh]elp"
|
||||
((slot . 2) (vslot . 2) (size . 0.25))
|
||||
((select . t)))
|
||||
;; `Info-mode'
|
||||
(+popup-define "^\\*info\\*$"
|
||||
'((slot . 2) (vslot . 2) (size . 0.35))
|
||||
'((select . t)))
|
||||
|
||||
;; `org-mode'
|
||||
;; Use org-load-hook instead of `after!' because the hook runs sooner,
|
||||
;; allowing users to override these later.
|
||||
(add-hook! 'org-load-hook
|
||||
(+popup-define "^\\*\\(?:Agenda Com\\|Calendar\\|Org \\(?:Links\\|Export Dispatcher\\|Select\\)\\)"
|
||||
'((slot . -1) (vslot . -1) (size . +popup-shrink-to-fit))
|
||||
'((transient . 0)))
|
||||
(+popup-define "^\\*Org Agenda"
|
||||
'((size . 0.35))
|
||||
'((select . t) (transient)))
|
||||
(+popup-define "^\\*Org Src"
|
||||
'((size . 0.3))
|
||||
'((quit) (select . t)))
|
||||
(+popup-define "^CAPTURE.*\\.org$"
|
||||
'((size . 0.2))
|
||||
'((quit) (select . t)))))
|
||||
'("^\\*info\\*$"
|
||||
((slot . 2) (vslot . 2) (size . 0.35))
|
||||
((select . t)))))
|
||||
|
||||
(add-hook 'doom-init-ui-hook #'+popup-mode)
|
||||
(add-hook! '+popup-buffer-mode-hook
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue