branch: elpa/org-tree-slide commit 8e2ab1966375aba907b7eb692ab2644eb5bcb4c6 Author: Takaaki ISHIKAWA <tak...@ieee.org> Commit: Takaaki ISHIKAWA <tak...@ieee.org>
Default keymap was changed --- ChangeLog | 9 ++++++++ README.org | 66 ++++++++++++++++++++++++++++++++----------------------- org-tree-slide.el | 39 ++++++++++++++++++++++++-------- 3 files changed, 77 insertions(+), 37 deletions(-) diff --git a/ChangeLog b/ChangeLog index 94605e6bbf..3289b3c4dd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2015-02-20 Takaaki ISHIKAWA <tak...@ieee.org> + + * org-tree-slide.el: Default keymap was changed + - Due to many reports on conflicting key binding, `<left>' and `<right>', these keymap changed to `C->' and `C-<'. + + * org-tree-slide.el: Add new hooks and rename old hooks + - Added `org-tree-slide-before-move-next-hook' and `org-tree-slide-before-move-previous-hook' + - Renamed hooks. `org-tree-slide-mode-play-hook', `org-tree-slide-mode-stop-hook', `org-tree-slide-mode-before-narrow-hook', `org-tree-slide-mode-after-narrow-hook' will be obsoleted soon. + 2015-02-15 Takaaki ISHIKAWA <tak...@ieee.org> * org-tree-slide.el (org-tree-slide): Replace ots- with org-tree-slide-- diff --git a/README.org b/README.org index 0a5cde177a..674600edc6 100644 --- a/README.org +++ b/README.org @@ -1,8 +1,8 @@ #+TITLE: README for Org Tree Slide #+AUTHOR: Takaaki Ishikawa #+EMAIL: tak...@ieee.org -#+DATE: 2015-02-15 -#+UPDATE: 16:30:03 +#+DATE: 2015-02-20 +#+UPDATE: 21:49:07 #+STARTUP: content * 1. What's this? @@ -14,15 +14,15 @@ Main features: - Live editable presentation - Fast switching of narrowing/widen - TODO pursuit with narrowing - - Displaying the current number of slides - - Countdown timer + - 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 (currently, not available) ** 1-1. Related packages -see [[http://orgmode.org/worg/org-tutorials/non-beamer-presentations.html]]. +There are various packages to make a presentation with org-mode. See [[http://orgmode.org/worg/org-tutorials/non-beamer-presentations.html]]. * 2. Install @@ -34,15 +34,19 @@ OR 1. Eval: =(auto-install-from-url "https://raw.github.com/takaxp/org-tree-slide/master/org-tree-slide.el")= (for auto-install users) 2. 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. +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. -** el-get recipe +** 2.1 el-get recipe If you are an [[https://github.com/dimitri/el-get][el-get]] user, just do : M-x el-get-install RET org-tree-slide -** 2.1 Requirements +** 2.2 MELPA + +Now, you can install `org-tree-slide' via [[http://melpa.org/#/org-tree-slide][MELPA]]. + +** 2.2 Requirements - Org-mode 6.33x or higher version is required. - This elisp doesn't require any additional packages. @@ -85,7 +89,7 @@ If you want to use this setting as the default, put the following configuration ** 4-1. `Simple' -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. +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. @@ -97,13 +101,15 @@ Type =M-x org-tree-slide-simple-profile= while =org-tree-slide-mode= is ON. ** 4-2. `Presentation' -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=. +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. + +# 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 except some headings configured as skipping by =org-tree-slide-slip-outline-level=. Find a heading that you want to show, and type =<right>=, the presentation will be resumed. +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 displayed using =#+STARTUP:= if possible. +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= @@ -115,11 +121,11 @@ To exit a presentation, set =org-tree-slide-mode= OFF. The cursor move to the he ** 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 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. +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=. +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= @@ -137,15 +143,16 @@ If you feel the cursor moving is very slow, please change a value of =org-tree-s | 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 | +| 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-skip-done | nil | Boolean | -| 9 | org-tree-slide-modeline-display | 'outside | [*1] | +| 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] | #+BEGIN_QUOTE [*1] { nil| 'lighter | 'outside } @@ -158,7 +165,7 @@ If you feel the cursor moving is very slow, please change a value of =org-tree-s If you like this elisp, the following setting is more useful. Try it! -=<f8>= / =<f9>= / =<f10>= / =<f11>= are assigned to control org-tree-slide. +In this case, =<f8>= / =<f9>= / =<f10>= / =<f11>= are assigned in order to control org-tree-slide. #+BEGIN_SRC emacs-lisp (when (require 'org-tree-slide nil t) @@ -170,20 +177,16 @@ If you like this elisp, the following setting is more useful. Try it! '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))) #+END_SRC * 6. Functions - ** Control functions - - org-tree-slide-move-next-tree (=<right>=) - - org-tree-slide-move-previous-tree (=<left>=) + - org-tree-slide-move-next-tree (=C->=) + - org-tree-slide-move-previous-tree (=C-<=) - org-tree-slide-content (=C-x s c=) ** Startup options @@ -209,8 +212,14 @@ These functions will toggle =org-tree-slide-mode= ON, automatically. ** Hooks - - org-tree-slide-mode-play-hook - - org-tree-slide-mode-stop-hook + - 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 @@ -219,6 +228,7 @@ see also ChangeLog |---------+------------------+-------------------------------------------------| | Version | Date | Description | |---------+------------------+-------------------------------------------------| +| 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 | diff --git a/org-tree-slide.el b/org-tree-slide.el index 850d205e9f..f4d65f38f2 100644 --- a/org-tree-slide.el +++ b/org-tree-slide.el @@ -68,7 +68,7 @@ (require 'org-timer) (require 'org-clock) ; org-clock-in, -out, -clocking-p -(defconst org-tree-slide "2.7.5" +(defconst org-tree-slide "2.8.0" "The version number of the org-tree-slide.el") (defgroup org-tree-slide nil @@ -158,11 +158,11 @@ (defvar org-tree-slide-mode-map (let ((map (make-sparse-keymap))) (define-key map (kbd "C-x s c") 'org-tree-slide-content) - (define-key map (kbd "C-x s r") 'org-tree-slide-resume) - (define-key map (kbd "<left>") 'org-tree-slide-move-previous-tree) - (define-key map (kbd "<right>") 'org-tree-slide-move-next-tree) +;; (define-key map (kbd "C-x s r") 'org-tree-slide-resume) ;; TODO + (define-key map (kbd "C-<") 'org-tree-slide-move-previous-tree) + (define-key map (kbd "C->") 'org-tree-slide-move-next-tree) map) - "The default key bindings for org-tree-slide.") + "The keymap for `org-tree-slide'.") (defface org-tree-slide-heading-level-2-init '((t (:inherit outline-2))) @@ -185,15 +185,30 @@ :group 'org-tree-slide) (defvar org-tree-slide-mode nil) +;; These hooks was obsoleted, and will be deleted by Oct. 2015. (defvar org-tree-slide-mode-play-hook nil - "A hook run when org-tree-slide--play is evaluated to start the slide show") + "[obsolate] A hook run when org-tree-slide--play is evaluated to start the slide show") (defvar org-tree-slide-mode-stop-hook nil - "A hook run when org-tree-slide--stop is evaluated to stop the slide show") + "[obsolate] A hook run when org-tree-slide--stop is evaluated to stop the slide show") (defvar org-tree-slide-mode-before-narrow-hook nil - "A hook run before evaluating org-tree-slide--display-tree-with-narrow") + "[obsolate] A hook run before evaluating org-tree-slide--display-tree-with-narrow") (defvar org-tree-slide-mode-after-narrow-hook nil - "A hook run after evaluating org-tree-slide--display-tree-with-narrow") + "[obsolate] A hook run after evaluating org-tree-slide--display-tree-with-narrow") +;; Updated hooks +(defvar org-tree-slide-play-hook nil + "A hook run when org-tree-slide--play is evaluated to start the slide show") +(defvar org-tree-slide-stop-hook nil + "A hook run when org-tree-slide--stop is evaluated to stop the slide show") +(defvar org-tree-slide-before-narrow-hook nil + "A hook run before evaluating org-tree-slide--display-tree-with-narrow") +(defvar org-tree-slide-after-narrow-hook nil + "A hook run after evaluating org-tree-slide--display-tree-with-narrow") +(defvar org-tree-slide-before-move-next-hook nil + "A hook run before moving to the next slide") +(defvar org-tree-slide-before-move-previous-hook nil + "A hook run before moving to the previous slide") + ;;;###autoload (define-minor-mode org-tree-slide-mode "A presentation tool for org-mode. @@ -391,6 +406,7 @@ Profiles: (and (= (point-at-bol) 1) (not (org-tree-slide--narrowing-p)))) (or (org-tree-slide--first-heading-with-narrow-p) (not (org-at-heading-p)))) + (run-hooks 'org-tree-slide-before-move-next-hook) (widen) (org-tree-slide--outline-next-heading)) ;; stay the same slide (for CONTENT MODE, on the subtrees) @@ -408,6 +424,7 @@ Profiles: (unless (equal org-tree-slide-modeline-display 'outside) (message "<< Previous")) (org-tree-slide--hide-slide-header) ; for at the first heading + (run-hooks 'org-tree-slide-before-move-previous-hook) (widen) (cond ((org-tree-slide--before-first-heading-p) @@ -464,6 +481,7 @@ Profiles: (defun org-tree-slide--play () "Start slide view with the first tree of the org-mode buffer." (run-hooks 'org-tree-slide-mode-play-hook) + (run-hooks 'org-tree-slide-play-hook) (org-tree-slide--apply-local-header-to-slide-header) (when org-tree-slide-heading-emphasis (org-tree-slide--apply-custom-heading-face t)) @@ -505,12 +523,14 @@ Profiles: ;; (org-clock-out) )) (run-hooks 'org-tree-slide-mode-stop-hook) + (run-hooks 'org-tree-slide-stop-hook) (when org-tree-slide-deactivate-message (message "%s" org-tree-slide-deactivate-message))) (defun org-tree-slide--display-tree-with-narrow () "Show a tree with narrowing and also set a header at the head of slide." (run-hooks 'org-tree-slide-mode-before-narrow-hook) + (run-hooks 'org-tree-slide-before-narrow-hook) (when (equal org-tree-slide-modeline-display 'outside) (setq org-tree-slide--slide-number (format " %s" (org-tree-slide--count-slide (point)))) @@ -526,6 +546,7 @@ Profiles: (org-tree-slide--slide-in org-tree-slide-slide-in-brank-lines)) (when org-tree-slide-header (org-tree-slide--show-slide-header)) + (run-hooks 'org-tree-slide-after-narrow-hook) (run-hooks 'org-tree-slide-mode-after-narrow-hook)) (defun org-tree-slide--outline-next-heading ()