#+Last Update: 2012-01-11@23:06
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
- Countdown timer
- CONTENT view during a presentation
- Slide-in effect
- Slide header from org file’s header
see http://orgmode.org/worg/org-tutorials/non-beamer-presentations.html.
- 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 <right>
and <left>
. A presentation will begin with a header, slide-in effect, and slide number.
If you are an el-get user, please use this recipe.
(:name org-tree-slide :description "A presentation tool for org-mode" :type git :url "git://github.com/takaxp/org-tree-slide.git" :required nil)
- Org-mode 6.33x or higher version is required.
- This elisp doesn’t require any additional packages.
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)
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-profile
If 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.
This profile will display trees of 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
This profile is used as 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. A presentation with a count down timer is started by M-x org-tree-slide-play-with-timer
.
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 like a Table Of Content. Find a heading that you want to show, and type <right>
, 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 displayed using #+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
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 a single typing of <right>
. 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
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-slide-in-brank-lines | 10 | Numeric |
5 | org-tree-slide-slide-in-waiting | 0.02 | Float |
6 | org-tree-slide-cursor-init | t | Boolean |
7 | org-tree-slide-heading-emphasis | nil | Boolean |
8 | org-tree-slide-skip-done | nil | Boolean |
9 | org-tree-slide-modeline-display | ‘outside | [*1] |
[*1] { nil| 'lighter | 'outside } 'outside: shown in the mode line outside of lighter 'lighter: shown in lighter (slow) nil: nothing to be shown"
If you like this elisp, the following setting is more useful. Try it!
<f8>
/ <f9>
/ <f10>
/ <f11>
are assigned 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)
;; Reset the default setting
(define-key org-tree-slide-mode-map (kbd "<left>") 'backward-char)
(define-key org-tree-slide-mode-map (kbd "<right>") 'forward-char)
(setq org-tree-slide-skip-outline-level 4)
(org-tree-slide-narrowing-control-profile)
(setq org-tree-slide-skip-done nil)))
- org-tree-slide-move-next-tree (
<right>
) - org-tree-slide-move-previous-tree (
<left>
) - org-tree-slide-content (
C-x s c
)
These functions will toggle org-tree-slide-mode
ON, automatically.
- org-tree-slide-without-init-play
- org-tree-slide-play-with-timer
- org-tree-slide-display-header-toggle
- org-tree-slide-slide-in-effect-toggle
- org-tree-slide-skip-done-toggle
- org-tree-slide-heading-emphasis-toggle
- org-tree-slide-simple-profile
- org-tree-slide-presentation-profile
- org-tree-slide-narrowing-control-profile
see also ChangeLog
Version | Date | Description |
---|---|---|
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 |
The author is Takaaki ISHIKAWA ([email protected]). Feel free to email me or use a mention of twitter (@takaxp)