README for Org Tree Slide
1. What’s this?
The main purpose of this elisp is to handle each tree in an org buffer as a slide by simple narrowing. This emacs lisp is a minor mode for Emacs Org-mode.
Main features:
- Live editable presentation
- Fast switching of narrowing/widen
- TODO pursuit with narrowing
- Displaying the current number of slides in mode line
- CONTENT view during a presentation
- Slide-in effect
- Slide header from org file’s header
- Countdown timer
1-1. Related packages
There are various packages to make a presentation with org-mode. See http://orgmode.org/worg/org-tutorials/non-beamer-presentations.html.
2. Install
- Put this elisp into your load-path
- Add
(require 'org-tree-slide)in your.emacs
OR
- Eval:
(auto-install-from-url "https://raw.github.com/takaxp/org-tree-slide/master/org-tree-slide.el")(for auto-install users) - Add
(require 'org-tree-slide)in your.emacs
Then open an org file, just type C-< and C->, which means C-M-,= and =C-M-., you can see a presentation will begin with a header, slide-in effect, and slide number in mode line.
2.1 el-get recipe
If you are an el-get user, just do
M-x el-get-install RET org-tree-slide
2.2 MELPA
Now, you can install `org-tree-slide’ via MELPA.
2.2 Requirements
- Org-mode 6.33x or higher version is required.
- This elisp doesn’t require any additional packages.
3. Recommended settings
Assigning a single key to org-tree-slide-mode is recommended.
(global-set-key (kbd "<f8>") 'org-tree-slide-mode)
(global-set-key (kbd "S-<f8>") 'org-tree-slide-skip-done-toggle)OR
(define-key org-mode-map (kbd "<f8>") 'org-tree-slide-mode)
(define-key org-mode-map (kbd "S-<f8>") 'org-tree-slide-skip-done-toggle)4. Profiles
Three useful profiles are available. Please select a profile that is the most suitable for your using scenario.
If you select simple profile, call the following command while org-tree-slide-mode is ON.
M-x org-tree-slide-simple-profileIf you want to use this setting as the default, put the following configuration including recommended settings into your .emacs.
(when (require 'org-tree-slide nil t)
(global-set-key (kbd "<f8>") 'org-tree-slide-mode)
(global-set-key (kbd "S-<f8>") 'org-tree-slide-skip-done-toggle)
(org-tree-slide-simple-profile))org-tree-slide-presentation-profile and org-tree-slide-narrowing-control-profile are also available.
4-1. `Simple’
This profile will display trees in your org buffer by simple narrowing. You can change trees without widen command. Most of the visual effect is disabled.
Type M-x org-tree-slide-simple-profile while org-tree-slide-mode is ON.
- No header display
- No slide-in effect
- The cursor will move to the head of the buffer when exit
- No slide number display in mode line
- Display every type of tree except
org-comment-string(e.g. COMMENT)
4-2. `Presentation’
This profile is the default setting of org-tree-slide. If an org buffer includes #+TITLE:, #+EMAIL:, and #+AUTHOR:, org-tree-slide attempts to use those variables in the slide header. A date in the header will be set with the presentation of the day. You can enjoy a slide-in effect, the current slide number in mode line.
If you want to show the content of your presentation, type C-x s c or M-x org-tree-slide-content. All of the headings will be shown in a buffer like a Table Of Content except some headings configured as skipping by org-tree-slide-slip-outline-level. Find a heading that you want to show, and type C->, the presentation will be resumed.
It is possible to skip slides when a heading level is higher than or equal to a value of org-tree-slide-skip-outline-level. see User variables.
To exit a presentation, set org-tree-slide-mode OFF. The cursor move to the head of the buffer and the trees will be rendered according to the value of #+STARTUP: if possible.
M-x org-tree-slide-presentation-profile
- Display header
- Enable slide-in effect
- The cursor will move to the head of buffer when exit
- Display slide number in mode line
- Display every type of tree except
org-comment-string(e.g. COMMENT)
4-3. `TODO Pursuit with narrowing’
This profile will display trees restricted to TODO status without a header and slide-in effect. It is very useful to concentrate your focus on the current TODO item that is not done, and go to the next task by typing of C->. This is “TODO Pursuit with narrowing”. If you want to track every kind of tree including finished items, toggle M-x org-tree-slide-skip-done-toggle OFF.
When you exit org-tree-slide-mode, the cursor will keep the same position, it is therefore possible to focus again by toggle M-x org-tree-slide-mode.
If you feel the cursor moving is very slow, please change a value of org-tree-slide-modeline-display to =’outside= or nil.
M-x org-tree-slide-narrowing-control-profile
- No header display
- No slide-in effect
- The cursor will keep the same position when exit
- Display slide number in mode line
- Display TODO trees only except
org-comment-string(e.g. COMMENT)
5. User variables
| Variable | Default value | Select | |
|---|---|---|---|
| 1 | org-tree-slide-skip-outline-level | 0 | Numeric |
| 2 | org-tree-slide-header | t | Boolean |
| 3 | org-tree-slide-slide-in-effect | t | Boolean |
| 4 | org-tree-slide-cursor-init | t | Boolean |
| 5 | org-tree-slide-slide-in-brank-lines | 10 | Numeric |
| 6 | org-tree-slide-slide-in-waiting | 0.02 | Float |
| 7 | org-tree-slide-heading-emphasis | nil | Boolean |
| 8 | org-tree-slide-never-touch-face | nil | Boolean |
| 9 | org-tree-slide-skip-done | nil | Boolean |
| 10 | org-tree-slide-skip-comments | t | Boolean |
| 11 | org-tree-slide-activate-message | Hello… | String |
| 12 | org-tree-slide-deactivate-message | Quit, Bye! | String |
| 13 | org-tree-slide-modeline-display | ‘outside | [*1] |
| 14 | org-tree-slide-fold-subtrees-skipped | t | Boolean |
| 15 | org-tree-slide-breadcrumbs | ” > ” | String |
| 16 | org-tree-slide-breadcrumbs-hide-todo-state | t | Boolean |
[*1] { nil| ‘lighter | ‘outside } ‘outside: shown in the mode line outside of lighter ‘lighter: shown in lighter (slow) nil: nothing to be shown”
5-1. Useful settings for experts
If you like this elisp, the following setting is more useful. Try it!
In this case, <f8> / <f9> / <f10> / <f11> are assigned in order to control org-tree-slide.
(when (require 'org-tree-slide nil t)
(global-set-key (kbd "<f8>") 'org-tree-slide-mode)
(global-set-key (kbd "S-<f8>") 'org-tree-slide-skip-done-toggle)
(define-key org-tree-slide-mode-map (kbd "<f9>")
'org-tree-slide-move-previous-tree)
(define-key org-tree-slide-mode-map (kbd "<f10>")
'org-tree-slide-move-next-tree)
(define-key org-tree-slide-mode-map (kbd "<f11>")
'org-tree-slide-content)
(setq org-tree-slide-skip-outline-level 4)
(org-tree-slide-narrowing-control-profile)
(setq org-tree-slide-skip-done nil)))6. Functions
Control functions
- org-tree-slide-move-next-tree (
C->) - org-tree-slide-move-previous-tree (
C-<) - org-tree-slide-content (
C-x s c)
Startup options
These functions will toggle org-tree-slide-mode ON, automatically.
- org-tree-slide-without-init-play
- org-tree-slide-play-with-timer
Toggle variables
- org-tree-slide-display-header-toggle
- org-tree-slide-slide-in-effect-toggle
- org-tree-slide-skip-done-toggle
- org-tree-slide-skip-comments-toggle
- org-tree-slide-heading-emphasis-toggle
Batch setting of user variables
- org-tree-slide-simple-profile
- org-tree-slide-presentation-profile
- org-tree-slide-narrowing-control-profile
Hooks
- org-tree-slide-play-hook
- org-tree-slide-stop-hook
- org-tree-slide-before-narrow-hook
- org-tree-slide-after-narrow-hook
- org-tree-slide-before-move-next-hook
- org-tree-slide-before-move-previous-hook
NOTE: For senior user, some hook were renamed, please update your configurations
7. History
see also ChangeLog
| Version | Date | Description |
|---|---|---|
| v2.8.5 | 2016-05-14@14:09 | Added breadcrumbs feature (by Matus) |
| v2.8.4 | 2015-08-12@21:35 | ‘COMMENT’-subtree will be hidden (by Stefano) |
| v2.8.3 | 2015-08-09@01:04 | Added a flag to reveal subtrees to be skipped |
| v2.8.1 | 2015-02-27@10:42 | Hide org-clock related code |
| v2.8.0 | 2015-02-20@21:27 | Changed Keymap, and renamed/added hooks |
| v2.7.5 | 2015-02-15@16:29 | Replace ots- with org-tree-slide– |
| v2.7.4 | 2015-02-14@23:30 | Refine displaying slide number in modeline |
| v2.7.2 | 2015-01-12@19:56 | Suppress an error message from org-timer |
| v2.7.1 | 2015-01-12@18:28 | Hide skipped slides when CONTENT mode |
| v2.7.0 | 2013-07-21@05:21 | Support buffers without headings |
| v2.6.8 | 2013-02-19@12:49 | Added a flag to control face setting |
| v2.6.6 | 2013-02-19@11:22 | Added a new toggle to skip commented trees |
| v2.6.4 | 2013-02-12@01:43 | Added some features (issue #2, #5, and #7) |
| v2.6.2 | 2013-01-27@21:21 | Added hooks for start and stop the presentation |
| v2.6.0 | 2012-11-21@02:14 | Support dark color theme (by @uk-ar) |
| v2.5.4 | 2012-01-11@23:02 | Add autoload magic comments |
| v2.5.3 | 2011-12-18@00:50 | Fix a bug for an org buffer without header |
| v2.5.2 | 2011-12-17@17:52 | Set presentation profile as the default |
| v2.5.1 | 2011-12-17@13:34 | org-tree-slide-skip-done set nil as default |
| v2.5.0 | 2011-12-12@18:16 | Remove auto-play function (TBD) |
| v2.4.1 | 2011-12-09@11:46 | Add an option to control mode line display |
| v2.4.0 | 2011-12-08@10:51 | Support TODO pursuit in a slideshow |
| v2.3.2 | 2011-12-08@09:22 | Reduce redundant processing |
| v2.3.1 | 2011-12-07@20:30 | Add a new profile to control narrowing status |
| v2.3.0 | 2011-12-07@16:17 | Support displaying a slide number |
| v2.2.0 | 2011-12-07@02:15 | Support minor mode |
| v2.1.7 | 2011-12-06@00:26 | Support TITLE/AUTHOR/EMAIL in a header |
| v2.1.5 | 2011-12-05@17:08 | Fix an issue of title display |
| v2.1.3 | 2011-12-05@15:08 | Fix the end of slide for skip control |
| v2.1.1 | 2011-12-05@11:08 | Add skip control by heading level |
| v2.0.1 | 2011-12-02@18:29 | Change function names, ots- is introduced. |
| v2.0.0 | 2011-12-01@17:41 | Add profiles and support org 6.33x |
| v1.2.5 | 2011-10-31@18:34 | Add CONTENT view to see all the subtrees. |
| v1.2.3 | 2011-10-30@20:42 | Add a variable to control slide-in duration |
| v1.2.1 | 2011-10-30@16:10 | Add slide-in visual effect |
| v1.1.1 | 2011-10-28@16:16 | Add functions to start and stop slide view |
| v1.0.0 | 2011-09-28@20:59 | Release the initial version |
8. Contact
The author is Takaaki ISHIKAWA (takaxp@ieee.org). Feel free to email me or use a mention of twitter (@takaxp)