org/org-present: refactor & remove defunct keybind
This commit is contained in:
parent
1864d275b6
commit
0ea6284c7e
2 changed files with 59 additions and 53 deletions
|
@ -1,53 +1,18 @@
|
|||
;;; org/org-present/autoload.el -*- lexical-binding: t; -*-
|
||||
|
||||
;;;###autoload
|
||||
(defun +doom-present*org-tree-slide-narrow-exclude-header (orig-fn &rest args)
|
||||
"TODO"
|
||||
(cl-letf (((symbol-function 'org-narrow-to-subtree)
|
||||
(lambda () (save-excursion
|
||||
(save-match-data
|
||||
(org-with-limited-levels
|
||||
(narrow-to-region
|
||||
(progn (org-back-to-heading t)
|
||||
(forward-line 1)
|
||||
(point))
|
||||
(progn (org-end-of-subtree t t)
|
||||
(when (and (org-at-heading-p) (not (eobp))) (backward-char 1))
|
||||
(point)))))))))
|
||||
(apply orig-fn args)))
|
||||
|
||||
;;;###autoload
|
||||
(defun +org-present|org-tree-prepare-window ()
|
||||
"TODO"
|
||||
(doom/window-zoom)
|
||||
(let ((arg (if org-tree-slide-mode +1 -1)))
|
||||
(when (fboundp 'centered-window-mode)
|
||||
(centered-window-mode arg))
|
||||
(window-divider-mode (* arg -1))
|
||||
(doom-hide-modeline-mode arg)
|
||||
(+org-pretty-mode arg)
|
||||
(cond (org-tree-slide-mode
|
||||
(org-indent-mode -1)
|
||||
(text-scale-set +org-present-text-scale)
|
||||
(ignore-errors (org-toggle-latex-fragment '(4)))
|
||||
(set-face-attribute 'org-level-2 nil :height 1.4))
|
||||
(t
|
||||
(org-indent-mode +1)
|
||||
(text-scale-set 0)
|
||||
(org-remove-latex-fragment-image-overlays)
|
||||
(set-face-attribute 'org-level-2 nil :height 1.0)
|
||||
(+org-present|remove-overlays)
|
||||
(org-remove-inline-images)))))
|
||||
|
||||
(defvar +org-present--overlays nil)
|
||||
;;;###autoload
|
||||
(defun +org-present/org-tree-slides ()
|
||||
(defun +org-present/start ()
|
||||
"TODO"
|
||||
(interactive)
|
||||
(unless (derived-mode-p 'org-mode)
|
||||
(error "Not in an org buffer"))
|
||||
(call-interactively 'org-tree-slide-mode)
|
||||
(add-hook 'kill-buffer-hook '+org-present--cleanup-org-tree-slides-mode))
|
||||
|
||||
|
||||
;; --- Hooks ------------------------------
|
||||
|
||||
;;;###autoload
|
||||
(defun +org-present|add-overlays ()
|
||||
(add-to-invisibility-spec '(+org-present))
|
||||
|
@ -75,6 +40,37 @@
|
|||
(text-scale-set 10)
|
||||
(text-scale-set +org-present-text-scale)))
|
||||
|
||||
;;;###autoload
|
||||
(defun +org-present|init-org-tree-window ()
|
||||
"Set up the org window for presentation."
|
||||
(doom/window-zoom)
|
||||
(let ((cwm-use-vertical-padding t)
|
||||
(cwm-frame-internal-border 110)
|
||||
(cwm-left-fringe-ratio -10)
|
||||
(cwm-centered-window-width 240)
|
||||
(arg (if org-tree-slide-mode +1 -1)))
|
||||
(when (fboundp 'centered-window-mode)
|
||||
(centered-window-mode arg))
|
||||
(window-divider-mode (* arg -1))
|
||||
(doom-hide-modeline-mode arg)
|
||||
(+org-pretty-mode arg)
|
||||
(cond (org-tree-slide-mode
|
||||
(org-indent-mode -1)
|
||||
(text-scale-set +org-present-text-scale)
|
||||
(ignore-errors (org-toggle-latex-fragment '(4)))
|
||||
(set-face-attribute 'org-level-2 nil :height 1.4))
|
||||
(t
|
||||
(org-indent-mode +1)
|
||||
(text-scale-set 0)
|
||||
(org-remove-latex-fragment-image-overlays)
|
||||
(set-face-attribute 'org-level-2 nil :height 1.0)
|
||||
(+org-present|remove-overlays)
|
||||
(org-remove-inline-images)))))
|
||||
|
||||
|
||||
|
||||
;; --- 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)
|
||||
|
@ -86,3 +82,22 @@
|
|||
(let ((overlay (make-overlay beg end)))
|
||||
(push overlay +org-present--overlays)
|
||||
(overlay-put overlay 'invisible '+org-present)))
|
||||
|
||||
|
||||
;; --- Advice -----------------------------
|
||||
|
||||
;;;###autoload
|
||||
(defun +org-present*narrow-to-subtree (orig-fn &rest args)
|
||||
"Narrow to the target subtree when you start the presentation."
|
||||
(cl-letf (((symbol-function 'org-narrow-to-subtree)
|
||||
(lambda () (save-excursion
|
||||
(save-match-data
|
||||
(org-with-limited-levels
|
||||
(narrow-to-region
|
||||
(progn (org-back-to-heading t)
|
||||
(forward-line 1)
|
||||
(point))
|
||||
(progn (org-end-of-subtree t t)
|
||||
(when (and (org-at-heading-p) (not (eobp))) (backward-char 1))
|
||||
(point)))))))))
|
||||
(apply orig-fn args)))
|
||||
|
|
|
@ -32,18 +32,12 @@
|
|||
(add-hook! 'org-tree-slide-mode-after-narrow-hook
|
||||
#'(+org-present|detect-slide +org-present|add-overlays org-display-inline-images))
|
||||
|
||||
(add-hook 'org-tree-slide-mode-hook #'+org-present|org-tree-prepare-window)
|
||||
(add-hook 'org-tree-slide-mode-hook #'+org-present|init-org-tree-window)
|
||||
(advice-add #'org-tree-slide--display-tree-with-narrow
|
||||
:around #'+doom-present*org-tree-slide-narrow-exclude-header))
|
||||
:around #'+org-present*narrow-to-subtree))
|
||||
|
||||
|
||||
(def-package! centered-window-mode
|
||||
:commands centered-window-mode
|
||||
:config
|
||||
(setq cwm-use-vertical-padding t
|
||||
cwm-frame-internal-border 110
|
||||
cwm-left-fringe-ratio -10
|
||||
cwm-centered-window-width 240))
|
||||
(def-package! centered-window-mode :commands centered-window-mode)
|
||||
|
||||
|
||||
;;
|
||||
|
@ -52,8 +46,5 @@
|
|||
|
||||
(defun +org-present|init ()
|
||||
(require 'ox-reveal)
|
||||
|
||||
(map! :map org-mode-map
|
||||
"<f8>" #'+org-present/org-tree-slides
|
||||
"<f7>" #'+org-present/next))
|
||||
(map! :map org-mode-map "<f8>" #'+org-present/start))
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue