2017-04-07 20:05:21 -04:00
|
|
|
;;; app/present/config.el
|
|
|
|
|
2017-04-11 09:24:20 -04:00
|
|
|
;; Sometimes you just get that urge to show off. I don't have a fancy car, so
|
|
|
|
;; my code or Emacs will have to do.
|
|
|
|
;;
|
|
|
|
;; Sometimes I stream my work on liveedu.tv, or record it on youtube, or peer
|
|
|
|
;; program over skype/teamviewer, or present at talks -- for all of this, Emacs
|
|
|
|
;; is my solution.
|
2017-04-07 20:05:21 -04:00
|
|
|
;;
|
|
|
|
;; + `impatient-mode' lets me show off code, as I write it, in real-time over
|
|
|
|
;; HTTP (see `+present/buffer')
|
|
|
|
;; + `ox-reveal' adds a reveal.js exporter to org-mode
|
2017-04-11 09:24:20 -04:00
|
|
|
;; + `org-tree-slide' for presenting org buffers as slides, plus some hacks to
|
|
|
|
;; unclutter them.
|
2017-04-07 20:05:21 -04:00
|
|
|
;; + and `+present/big-mode' lets me toggle big fonts for streams or
|
|
|
|
;; screen-sharing
|
|
|
|
|
2017-04-11 09:24:20 -04:00
|
|
|
(defvar +present-big-font (font-spec :family "Fira Mono" :size 18)
|
|
|
|
"Font to use when `+present/big-mode' is enabled.")
|
|
|
|
|
|
|
|
(defvar +present-scale 7
|
|
|
|
"The `text-scale-amount' for `org-tree-slide-mode'.")
|
2017-04-07 20:05:21 -04:00
|
|
|
|
|
|
|
|
|
|
|
;;
|
|
|
|
;; Plugins
|
|
|
|
;;
|
|
|
|
|
|
|
|
(def-package! impatient-mode
|
|
|
|
:commands impatient-mode)
|
|
|
|
|
2017-04-11 09:24:20 -04:00
|
|
|
|
|
|
|
(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))
|
|
|
|
|
|
|
|
|
|
|
|
(when (featurep! :lang org) ;; reveal.js
|
2017-04-07 20:05:21 -04:00
|
|
|
(if (bound-and-true-p org-modules-loaded)
|
|
|
|
(require 'ox-reveal)
|
|
|
|
(add-hook! 'org-load (require 'ox-reveal)))
|
|
|
|
|
|
|
|
(setq org-reveal-root "http://cdn.jsdelivr.net/reveal.js/3.0.0/"
|
2017-04-11 09:24:20 -04:00
|
|
|
org-reveal-mathjax t)
|
|
|
|
|
|
|
|
(def-package! org-tree-slide
|
|
|
|
:commands org-tree-slide-mode
|
|
|
|
:init
|
|
|
|
(after! org
|
|
|
|
(map! :map org-mode-map
|
|
|
|
"<f8>" '+present/org-tree-slides
|
|
|
|
"<f7>" '+present/next))
|
|
|
|
:config
|
|
|
|
(setq org-tree-slide-skip-outline-level 2
|
|
|
|
org-tree-slide-activate-message " "
|
|
|
|
org-tree-slide-deactivate-message " "
|
|
|
|
org-tree-slide-modeline-display nil)
|
|
|
|
(org-tree-slide-simple-profile)
|
|
|
|
|
|
|
|
(map! :map org-tree-slide-mode-map
|
|
|
|
[right] 'org-tree-slide-move-next-tree
|
|
|
|
[left] 'org-tree-slide-move-previous-tree)
|
|
|
|
|
|
|
|
(add-hook! 'org-tree-slide-mode-after-narrow-hook
|
|
|
|
'(+present|detect-slide +present|add-overlays org-display-inline-images))
|
|
|
|
|
|
|
|
(add-hook! 'org-tree-slide-mode-hook
|
|
|
|
(doom/window-zoom)
|
|
|
|
(let ((arg (if org-tree-slide-mode +1 -1)))
|
|
|
|
(when (featurep 'doom-themes)
|
|
|
|
(doom-buffer-mode (* arg -1)))
|
|
|
|
(centered-window-mode arg)
|
|
|
|
(window-divider-mode (* arg -1))
|
|
|
|
(doom-hide-modeline-mode arg)
|
|
|
|
(cond (org-tree-slide-mode
|
|
|
|
(org-indent-mode -1)
|
|
|
|
(text-scale-set +present-scale)
|
|
|
|
(ignore-errors (org-preview-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)
|
|
|
|
(+present|remove-overlays)
|
|
|
|
(org-remove-inline-images)))))
|
|
|
|
|
|
|
|
(defun +present*org-tree-slide-narrow-exclude-header (orig-fn &rest args)
|
|
|
|
(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)))
|
|
|
|
(advice-add 'org-tree-slide--display-tree-with-narrow
|
|
|
|
:around '+present*org-tree-slide-narrow-exclude-header)))
|
|
|
|
|
2017-04-07 20:05:21 -04:00
|
|
|
|