1569 ) |
1569 ) |
1570 |
1570 |
1571 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1571 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
1572 (message "org-mode, GTD, PIM, organize, todo") |
1572 (message "org-mode, GTD, PIM, organize, todo") |
1573 |
1573 |
1574 (when (>= emacs-major-version 22) |
1574 (require 'org) |
1575 (require 'org)) |
1575 (require 'org-capture nil t) |
|
1576 |
|
1577 (eval-when 'compile |
|
1578 (require 'org-agenda) |
|
1579 (require 'org-archive) |
|
1580 (require 'remember nil t)) |
1576 |
1581 |
1577 ;; XXX org-todo-keywords '((sequence "TODO" "START" "|" "DONE")) for org-version 4.67c |
1582 ;; XXX org-todo-keywords '((sequence "TODO" "START" "|" "DONE")) for org-version 4.67c |
1578 (when (or (featurep 'org) (featurep 'org-install)) |
1583 (add-to-list 'auto-mode-alist '("\\.org$" . org-mode)) |
1579 (add-to-list 'auto-mode-alist '("\\.org$" . org-mode)) |
1584 (setq org-directory "~/my/gtd") |
1580 (setq org-directory "~/my/gtd") |
1585 (setq |
1581 (setq |
1586 org-agenda-ndays 31 |
1582 org-agenda-ndays 31 |
1587 org-deadline-warning-days 7 |
1583 org-deadline-warning-days 7 |
1588 org-agenda-show-all-dates t |
1584 org-agenda-show-all-dates t |
1589 org-agenda-format-date "%Y-%m-%d, %A %e %B" |
1585 org-agenda-format-date "%Y-%m-%d, %A %e %B" |
1590 org-agenda-skip-deadline-if-done t |
1586 org-agenda-skip-deadline-if-done t |
1591 org-agenda-skip-scheduled-if-done t |
1587 org-agenda-skip-scheduled-if-done t |
1592 org-agenda-start-on-weekday nil |
1588 org-agenda-start-on-weekday nil |
1593 org-reverse-note-order t |
1589 org-reverse-note-order t |
1594 org-hide-leading-stars t |
1590 org-hide-leading-stars t |
1595 org-tags-column 64 |
1591 org-tags-column 64 |
1596 org-archive-save-context-info '(time file olpath todo itags) |
1592 org-archive-save-context-info '(time file olpath todo itags) |
1597 ) |
1593 ) |
1598 (setq my-org-agenda-todo-file (concat org-directory "/TODO.org")) |
1594 (setq my-org-agenda-todo-file (concat org-directory "/TODO.org")) |
1599 (setq my-org-agenda-note-file (concat org-directory "/NOTE.org")) |
1595 (setq my-org-agenda-note-file (concat org-directory "/NOTE.org")) |
1600 (setq org-agenda-file-regexp "\\`[^.#].*[^_]\\.org\\'" |
1596 (setq org-agenda-file-regexp "\\`[^.#].*[^_]\\.org\\'" |
1601 org-agenda-files (list org-directory)) |
1597 org-agenda-files (list org-directory)) |
1602 ;; (setq my-org-agenda-learning-file (concat org-directory "/LEARNING.org")) |
1598 ;; (setq my-org-agenda-learning-file (concat org-directory "/LEARNING.org")) |
1603 ;; (setq org-agenda-files `(,my-org-agenda-todo-file ,my-org-agenda-note-file ,my-org-agenda-learning-file)) |
1599 ;; (setq org-agenda-files `(,my-org-agenda-todo-file ,my-org-agenda-note-file ,my-org-agenda-learning-file)) |
1604 (define-key global-map "\C-va" 'org-agenda) |
1600 (define-key global-map "\C-va" 'org-agenda) |
1605 (define-key global-map "\C-ve" (lambda nil (interactive) (find-file my-org-agenda-note-file))) |
1601 (define-key global-map "\C-ve" (lambda nil (interactive) (find-file my-org-agenda-note-file))) |
1606 |
1602 |
1607 (setq org-todo-keywords '("|" "DONE")) |
1603 (setq org-todo-keywords '("|" "DONE")) |
1608 |
1604 |
1609 ;; My tags for remember buffer. |
1605 ;; My tags for remember buffer. |
1610 (setq org-tag-alist |
1606 (setq org-tag-alist |
1611 '( |
1607 '( |
1612 ("ADMIN" . ?a) |
1608 ("ADMIN" . ?a) |
1613 ("BLOG" . ?b) |
1609 ("BLOG" . ?b) |
1614 ("DEVEL" . ?d) |
1610 ("DEVEL" . ?d) |
1615 ("HOME" . ?h) |
1611 ("HOME" . ?h) |
1616 ("GET" . ?g) |
1612 ("GET" . ?g) |
1617 ("LIFE" . ?l) |
1613 ("LIFE" . ?l) |
1618 ("MAIL" . ?m) |
1614 ("MAIL" . ?m) |
1619 ("JOB" . ?j) |
1615 ("JOB" . ?j) |
1620 ("QUESTION" . ?q) |
1616 ("QUESTION" . ?q) |
1621 ("PROJECT" . ?p) |
1617 ("PROJECT" . ?p) |
1622 ("READ" . ?r) |
1618 ("READ" . ?r) |
1623 ("SEE" . ?s) |
1619 ("SEE" . ?s) |
1624 )) |
|
1625 ;; With this variable tags duplicated in *Org Tags* menu. I use |
|
1626 ;; `org-tag-alist' instead until bug fixed. |
|
1627 (setq org-tag-persistent-alist nil) |
|
1628 |
|
1629 (setq org-support-shift-select t) |
|
1630 |
|
1631 (cond |
|
1632 ((featurep 'org-capture) |
|
1633 (setq org-default-notes-file my-org-agenda-todo-file) |
|
1634 (setq org-capture-templates |
|
1635 '(("t" "Todo" entry (file my-org-agenda-todo-file) "* %?\n SCHEDULED: %T"))) |
|
1636 (define-key global-map "\C-vr" |
|
1637 (lambda () (interactive) (org-capture nil "t"))) |
|
1638 ) |
|
1639 ((or (featurep 'remember) (fboundp 'remember)) |
|
1640 (setq remember-annotation-functions '(org-remember-annotation)) |
|
1641 (setq remember-handler-functions '(org-remember-handler)) |
|
1642 (add-hook 'remember-mode-hook 'org-remember-apply-template) |
|
1643 (define-key global-map "\C-vr" 'org-remember) |
|
1644 (setq org-remember-templates |
|
1645 ;; With one item org-mode do not prompt choose template. |
|
1646 `( |
|
1647 ("todo" ?t "* TODO %?" ,my-org-agenda-todo-file) |
|
1648 ;; ("note" ?n "* %?\n" ,my-org-agenda-note-file) |
1620 )) |
1649 )) |
1621 ;; With this variable tags duplicated in *Org Tags* menu. I use |
1650 (setq org-remember-store-without-prompt t) |
1622 ;; `org-tag-alist' instead until bug fixed. |
1651 (org-remember-insinuate) |
1623 (setq org-tag-persistent-alist nil) |
1652 )) |
1624 |
|
1625 (setq org-support-shift-select t) |
|
1626 |
|
1627 (when (>= emacs-major-version 24) |
|
1628 (require 'org-capture)) |
|
1629 |
|
1630 (cond |
|
1631 ((featurep 'org-capture) |
|
1632 (setq org-default-notes-file my-org-agenda-todo-file) |
|
1633 (setq org-capture-templates |
|
1634 '(("t" "Todo" entry (file my-org-agenda-todo-file) "* %?\n SCHEDULED: %T"))) |
|
1635 (define-key global-map "\C-vr" |
|
1636 (lambda () (interactive) (org-capture nil "t"))) |
|
1637 ) |
|
1638 ((or (featurep 'remember) (fboundp 'remember)) |
|
1639 (setq remember-annotation-functions '(org-remember-annotation)) |
|
1640 (setq remember-handler-functions '(org-remember-handler)) |
|
1641 (add-hook 'remember-mode-hook 'org-remember-apply-template) |
|
1642 (define-key global-map "\C-vr" 'org-remember) |
|
1643 (setq org-remember-templates |
|
1644 ;; With one item org-mode do not prompt choose template. |
|
1645 `( |
|
1646 ("todo" ?t "* TODO %?" ,my-org-agenda-todo-file) |
|
1647 ;; ("note" ?n "* %?\n" ,my-org-agenda-note-file) |
|
1648 )) |
|
1649 (setq org-remember-store-without-prompt t) |
|
1650 (org-remember-insinuate) |
|
1651 )) |
|
1652 |
|
1653 ) |
|
1654 |
1653 |
1655 (defun my/org-archive-location (path) |
1654 (defun my/org-archive-location (path) |
1656 "For given PATH make path to archive. Currently add undescore |
1655 "For given PATH make path to archive. Currently add undescore |
1657 before file extention. If file name doesn't match |
1656 before file extention. If file name doesn't match |
1658 `org-agenda-file-regexp' or have no extention return `nil'." |
1657 `org-agenda-file-regexp' or have no extention return `nil'." |