2019-07-09 22:44:51 +02:00
|
|
|
;;; lang/org/autoload/contrib-present.el -*- lexical-binding: t; -*-
|
2017-12-08 22:59:42 -05:00
|
|
|
;;;###if (featurep! +present)
|
2017-07-05 02:33:41 +02:00
|
|
|
|
2019-10-25 20:00:06 -04:00
|
|
|
;;
|
|
|
|
;;; Helpers
|
|
|
|
|
|
|
|
(defun +org-present--cleanup-org-tree-slides-mode ()
|
|
|
|
(unless (cl-loop for buf in (doom-buffers-in-mode 'org-mode)
|
|
|
|
if (buffer-local-value 'org-tree-slide-mode buf)
|
|
|
|
return t)
|
|
|
|
(org-tree-slide-mode -1)
|
2020-02-02 16:00:45 -05:00
|
|
|
(remove-hook 'kill-buffer-hook #'+org-present--cleanup-org-tree-slides-mode
|
|
|
|
'local)))
|
2019-10-25 20:00:06 -04:00
|
|
|
|
2017-10-06 16:05:36 +02:00
|
|
|
|
2019-07-09 22:44:51 +02:00
|
|
|
;;
|
|
|
|
;;; Hooks
|
2017-10-06 16:05:36 +02:00
|
|
|
|
2017-07-05 02:33:41 +02:00
|
|
|
;;;###autoload
|
2020-02-02 16:00:45 -05:00
|
|
|
(defun +org-present-hide-blocks-h ()
|
|
|
|
"Hide org #+ constructs."
|
2017-07-05 02:33:41 +02:00
|
|
|
(save-excursion
|
|
|
|
(goto-char (point-min))
|
|
|
|
(while (re-search-forward "^[[:space:]]*\\(#\\+\\)\\(\\(?:BEGIN\\|END\\|ATTR\\)[^[:space:]]+\\).*" nil t)
|
2021-09-27 13:37:41 +02:00
|
|
|
(org-flag-region (match-beginning 1)
|
|
|
|
(match-end 0)
|
|
|
|
org-tree-slide-mode
|
|
|
|
t))))
|
2020-02-02 16:00:45 -05:00
|
|
|
|
|
|
|
;;;###autoload
|
|
|
|
(defun +org-present-hide-leading-stars-h ()
|
|
|
|
"Hide leading stars in headings."
|
|
|
|
(save-excursion
|
2017-07-05 02:33:41 +02:00
|
|
|
(goto-char (point-min))
|
2020-02-02 16:00:45 -05:00
|
|
|
(while (re-search-forward "^\\(\\*+\\)" nil t)
|
2021-09-27 13:37:41 +02:00
|
|
|
(org-flag-region (match-beginning 1)
|
|
|
|
(match-end 1)
|
|
|
|
org-tree-slide-mode
|
|
|
|
t))))
|
2017-07-05 02:33:41 +02:00
|
|
|
|
|
|
|
;;;###autoload
|
2019-07-21 02:38:42 +02:00
|
|
|
(defun +org-present-detect-slide-h ()
|
2019-10-25 20:00:06 -04:00
|
|
|
"TODO"
|
2017-07-05 02:33:41 +02:00
|
|
|
(outline-show-all)
|
2019-09-20 23:10:53 -04:00
|
|
|
(if (member "title" (org-get-tags))
|
2017-07-05 02:33:41 +02:00
|
|
|
(text-scale-set 10)
|
|
|
|
(text-scale-set +org-present-text-scale)))
|
|
|
|
|
2019-09-20 23:10:53 -04:00
|
|
|
(defvar cwm-use-vertical-padding)
|
|
|
|
(defvar cwm-frame-internal-border)
|
|
|
|
(defvar cwm-left-fringe-ratio)
|
|
|
|
(defvar cwm-centered-window-width)
|
2021-09-27 13:35:11 +02:00
|
|
|
(defvar +org-present--last-wconf nil)
|
2017-10-06 16:05:36 +02:00
|
|
|
;;;###autoload
|
2020-02-02 16:00:45 -05:00
|
|
|
(defun +org-present-prettify-slide-h ()
|
2017-10-06 16:05:36 +02:00
|
|
|
"Set up the org window for presentation."
|
2019-09-20 23:10:53 -04:00
|
|
|
(let ((arg (if org-tree-slide-mode +1 -1)))
|
2021-09-27 13:35:11 +02:00
|
|
|
(if (not org-tree-slide-mode)
|
|
|
|
(when +org-present--last-wconf
|
|
|
|
(set-window-configuration +org-present--last-wconf))
|
|
|
|
(setq +org-present--last-wconf (current-window-configuration))
|
|
|
|
(doom/window-maximize-buffer))
|
2017-10-06 16:05:36 +02:00
|
|
|
(when (fboundp 'centered-window-mode)
|
2020-02-02 16:00:45 -05:00
|
|
|
(setq-local cwm-use-vertical-padding t)
|
|
|
|
(setq-local cwm-frame-internal-border 100)
|
|
|
|
(setq-local cwm-left-fringe-ratio -10)
|
|
|
|
(setq-local cwm-centered-window-width 300)
|
|
|
|
(centered-window-mode arg))
|
2018-03-02 17:40:51 -05:00
|
|
|
(hide-mode-line-mode arg)
|
2017-10-06 16:05:36 +02:00
|
|
|
(+org-pretty-mode arg)
|
|
|
|
(cond (org-tree-slide-mode
|
2020-02-02 16:00:45 -05:00
|
|
|
(set-window-fringes nil 0 0)
|
|
|
|
(when (bound-and-true-p flyspell-mode)
|
|
|
|
(flyspell-mode -1))
|
|
|
|
(add-hook 'kill-buffer-hook #'+org-present--cleanup-org-tree-slides-mode
|
|
|
|
nil 'local)
|
2017-10-06 16:05:36 +02:00
|
|
|
(text-scale-set +org-present-text-scale)
|
2020-02-02 16:00:45 -05:00
|
|
|
(ignore-errors (org-latex-preview '(4))))
|
2017-10-06 16:05:36 +02:00
|
|
|
(t
|
|
|
|
(text-scale-set 0)
|
2020-02-02 16:00:45 -05:00
|
|
|
(set-window-fringes nil fringe-mode fringe-mode)
|
2019-09-20 23:10:53 -04:00
|
|
|
(org-clear-latex-preview)
|
2020-02-02 16:00:45 -05:00
|
|
|
(org-remove-inline-images)
|
|
|
|
(org-mode)))
|
|
|
|
(redraw-display)))
|