From fd9390f864f1a3dc371181d0f1ce9cf19e3318d8 Mon Sep 17 00:00:00 2001 From: Henrik Lissner Date: Wed, 22 Jul 2015 17:35:04 +0200 Subject: [PATCH] Restore org module --- init.el | 2 +- modules/module-org.el | 326 +++++++++++++++++++++--------------------- 2 files changed, 163 insertions(+), 165 deletions(-) diff --git a/init.el b/init.el index b0207c9fc..98f59982a 100644 --- a/init.el +++ b/init.el @@ -79,7 +79,7 @@ module-elisp ; module-lua ; one-based indices? one-based indices. module-lb6 ; LaunchBar 6 development - ;; module-org ; for fearless [organized] leader + module-org ; for fearless [organized] leader module-php ; making php less painful to work with module-python ; beautiful is better than ugly module-regex ; /^[^\s](meaning)[^\n]*/ diff --git a/modules/module-org.el b/modules/module-org.el index 4de78971b..a80b6f178 100644 --- a/modules/module-org.el +++ b/modules/module-org.el @@ -20,192 +20,190 @@ (add-hook! org-mode (hl-line-mode -1)) (add-hook! org-mode '(narf|enable-tab-width-2 narf|enable-hard-wrap - iimage-mode org-indent-mode evil-org-mode)) - (setq org-directory "~/Dropbox/notes/") - :config - (after! org-indent (diminish 'org-indent-mode)) - (after! iimage (diminish 'iimage-mode)) + (add-hook! org-load 'narf-init-org) - (defun narf--org-all-files () - (f-entries org-directory - (lambda (path) - (and (f-ext? path "org") - (not (f-same? path (f-expand "inbox.org" org-directory))))) - t)) + (defun narf--org-all-files (path) + (and (f-ext? path "org") (not (f-same? path (f-expand "inbox.org" org-directory))))) - (setq org-project-directory (! (concat org-directory "projects")) ; not an org var - org-default-notes-file (! (concat org-directory "notes.org")) - org-agenda-files (narf--org-all-files) - org-archive-location (! (concat org-directory "/archive/%s::")) - org-confirm-babel-evaluate nil - org-src-tab-acts-natively t - org-image-actual-width 250 - org-startup-with-inline-images t - org-completion-use-ido t - org-hidden-keywords '(title) - org-special-ctrl-a/e t - org-hide-leading-stars t - org-hierarchical-todo-statistics t - org-checkbox-hierarchical-statistics t - org-tags-column -87 - org-log-done t - org-confirm-elisp-link-function nil - org-startup-folded 'content - org-todo-keywords '((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d)") - (sequence "DOING(s)" "PENDING(p)") - (sequence "|" "CANCELLED(c)")) - org-mobile-directory "~/Dropbox/Apps/MobileOrg" - org-mobile-inbox-for-pull (! (expand-file-name "mobile.org" org-directory))) + (defun narf-init-org () + (after! org-indent (diminish 'org-indent-mode)) + (after! iimage (diminish 'iimage-mode)) - (setq org-src-fontify-natively t - org-blank-before-new-entry '((heading . auto) (plain-list-item . auto)) - org-export-backends '(ascii html latex md opml)) + (setq org-directory "~/Dropbox/notes/") + (setq org-project-directory (! (concat org-directory "projects")) ; not an org var + org-default-notes-file (! (concat org-directory "notes.org")) + org-agenda-files (f-entries org-directory 'narf--org-all-files t) + org-archive-location (! (concat org-directory "/archive/%s::")) + org-confirm-babel-evaluate nil + org-src-tab-acts-natively t + org-image-actual-width 250 + org-startup-with-inline-images t + org-completion-use-ido t + org-hidden-keywords '(title) + org-special-ctrl-a/e t + org-hide-leading-stars t + org-hierarchical-todo-statistics t + org-checkbox-hierarchical-statistics t + org-tags-column -87 + org-log-done t + org-confirm-elisp-link-function nil + org-startup-folded 'content + org-todo-keywords '((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d)") + (sequence "DOING(s)" "PENDING(p)") + (sequence "|" "CANCELLED(c)")) + org-mobile-directory "~/Dropbox/Apps/MobileOrg" + org-mobile-inbox-for-pull (! (expand-file-name "mobile.org" org-directory)) + org-src-fontify-natively t + org-blank-before-new-entry '((heading . auto) (plain-list-item . auto)) + org-export-backends '(ascii html latex md opml)) - (add-to-list 'org-link-frame-setup '(file . find-file)) + (add-to-list 'org-link-frame-setup '(file . find-file)) - (setq org-tag-alist '(("@home" . ?h) - ("@daily" . ?d) - ("@invoices" . ?i) - ("@personal" . ?p) - ("@learning" . ?l) - ("@dev" . ?v) - ("@writing" . ?w) - ("@projects" . ?r))) + (setq org-tag-alist '(("@home" . ?h) + ("@daily" . ?d) + ("@invoices" . ?i) + ("@personal" . ?p) + ("@learning" . ?l) + ("@dev" . ?v) + ("@writing" . ?w) + ("@projects" . ?r))) - (setq org-capture-templates - '(("t" "TODO" entry (file+headline "~/Dropbox/notes/todo.org" "Inbox") "* TODO %? %u\n%i") - ("T" "Project TODO" entry (file+headline (narf/project-org-filename) "Tasks") "** TODO %?\n%i" :prepend t) - ("N" "Project Note" entry (file+headline (narf/project-org-filename) "Notes") "** %u %?\n%i") - ("c" "Changelog" entry (file+datetree (narf/project-org-filename)) "** %<%H:%M>: %? :unsorted:\n%i" :prepend t) - ("n" "Note" entry (file+datetree org-default-notes-file) "** %<%H:%M>: %?\n%i" :prepend t) - ("j" "Journal" entry (file+datetree "~/Dropbox/notes/journal.org") "** %?%^g\nAdded: %U\n%i") - ("a" "Trivia" entry (file "~/Dropbox/notes/trivia.org") "* %u %?\n%i" :prepend t) - ("s" "Writing Scraps" entry (file "~/Dropbox/notes/writing.org") "* %u %?\n%i" :prepend t) - ("v" "Vocab" entry (file "~/Dropbox/notes/vocab.org") "* %?\n%i" :prepend t) - ("e" "Excerpt" entry (file "~/Dropbox/notes/excerpts.org") "* %u %?\n%i" :prepend t))) + (setq org-capture-templates + '(("t" "TODO" entry (file+headline "~/Dropbox/notes/todo.org" "Inbox") "* TODO %? %u\n%i") + ("T" "Project TODO" entry (file+headline (narf/project-org-filename) "Tasks") "** TODO %?\n%i" :prepend t) + ("N" "Project Note" entry (file+headline (narf/project-org-filename) "Notes") "** %u %?\n%i") + ("c" "Changelog" entry (file+datetree (narf/project-org-filename)) "** %<%H:%M>: %? :unsorted:\n%i" :prepend t) + ("n" "Note" entry (file+datetree org-default-notes-file) "** %<%H:%M>: %?\n%i" :prepend t) + ("j" "Journal" entry (file+datetree "~/Dropbox/notes/journal.org") "** %?%^g\nAdded: %U\n%i") + ("a" "Trivia" entry (file "~/Dropbox/notes/trivia.org") "* %u %?\n%i" :prepend t) + ("s" "Writing Scraps" entry (file "~/Dropbox/notes/writing.org") "* %u %?\n%i" :prepend t) + ("v" "Vocab" entry (file "~/Dropbox/notes/vocab.org") "* %?\n%i" :prepend t) + ("e" "Excerpt" entry (file "~/Dropbox/notes/excerpts.org") "* %u %?\n%i" :prepend t))) - (setq iimage-mode-image-regex-alist - '(("\\(`?file://\\|\\[\\[\\|<\\|`\\)?\\([-+./_0-9a-zA-Z]+\\.\\(GIF\\|JP\\(?:E?G\\)\\|P\\(?:BM\\|GM\\|N[GM]\\|PM\\)\\|SVG\\|TIFF?\\|X\\(?:[BP]M\\)\\|gif\\|jp\\(?:e?g\\)\\|p\\(?:bm\\|gm\\|n[gm]\\|pm\\)\\|svg\\|tiff?\\|x\\(?:[bp]m\\)\\)\\)\\(\\]\\]\\|>\\|'\\)?" . 2) - ("<\\(http://.+\\.\\(GIF\\|JP\\(?:E?G\\)\\|P\\(?:BM\\|GM\\|N[GM]\\|PM\\)\\|SVG\\|TIFF?\\|X\\(?:[BP]M\\)\\|gif\\|jp\\(?:e?g\\)\\|p\\(?:bm\\|gm\\|n[gm]\\|pm\\)\\|svg\\|tiff?\\|x\\(?:[bp]m\\)\\)\\)>" . 1))) + (setq iimage-mode-image-regex-alist + '(("\\(`?file://\\|\\[\\[\\|<\\|`\\)?\\([-+./_0-9a-zA-Z]+\\.\\(GIF\\|JP\\(?:E?G\\)\\|P\\(?:BM\\|GM\\|N[GM]\\|PM\\)\\|SVG\\|TIFF?\\|X\\(?:[BP]M\\)\\|gif\\|jp\\(?:e?g\\)\\|p\\(?:bm\\|gm\\|n[gm]\\|pm\\)\\|svg\\|tiff?\\|x\\(?:[bp]m\\)\\)\\)\\(\\]\\]\\|>\\|'\\)?" . 2) + ("<\\(http://.+\\.\\(GIF\\|JP\\(?:E?G\\)\\|P\\(?:BM\\|GM\\|N[GM]\\|PM\\)\\|SVG\\|TIFF?\\|X\\(?:[BP]M\\)\\|gif\\|jp\\(?:e?g\\)\\|p\\(?:bm\\|gm\\|n[gm]\\|pm\\)\\|svg\\|tiff?\\|x\\(?:[bp]m\\)\\)\\)>" . 1))) - (org-babel-do-load-languages 'org-babel-load-languages - '((python . t) - (ruby . t) - (sh . t) - (emacs-lisp . t) - (matlab . t) - (latex . t))) + (org-babel-do-load-languages 'org-babel-load-languages + '((python . t) + (ruby . t) + (sh . t) + (emacs-lisp . t) + (matlab . t) + (latex . t))) - (advice-add 'evil-force-normal-state :before 'org-remove-occur-highlights) - (advice-add 'org-cycle-hide-drawers :override 'narf/org-cycle-hide-drawers) + (advice-add 'evil-force-normal-state :before 'org-remove-occur-highlights) + ;; (advice-add 'org-cycle-hide-drawers :override 'narf/org-cycle-hide-drawers) - (use-package org-agenda - :config - (setq org-agenda-restore-windows-after-quit t - org-agenda-custom-commands - '(("x" agenda) - ("y" agenda*) - ("w" todo "WAITING") - ("W" todo-tree "WAITING") - ("to" todo) - ("tp" tags "+Projects") - ("tg" tags-todo "+gamedev") - ("tw" tags-tree "+webdev")))) + (use-package org-agenda + :config + (setq org-agenda-restore-windows-after-quit t + org-agenda-custom-commands + '(("x" agenda) + ("y" agenda*) + ("w" todo "WAITING") + ("W" todo-tree "WAITING") + ("to" todo) + ("tp" tags "+Projects") + ("tg" tags-todo "+gamedev") + ("tw" tags-tree "+webdev")))) - (bind! (:map org-mode-map - "RET" nil - "C-j" nil - "C-k" nil + (bind! (:map org-mode-map + "RET" nil + "C-j" nil + "C-k" nil - :i [remap narf/inflate-space-maybe] 'self-insert-command) + :i [remap narf/inflate-space-maybe] 'org-self-insert-command + :i "RET" 'org-return-indent) - (:map evil-org-mode-map - :ni "A-l" 'org-metaright ; M-j - :ni "A-h" 'org-metaleft ; M-h - :ni "A-k" 'org-metaup ; M-k - :ni "A-j" 'org-metadown ; M-j - :ni "A-l" 'org-shiftmetaright ; M-L - :ni "A-h" 'org-shiftmetaleft ; M-H - :ni "A-k" 'org-shiftmetaup ; M-K - :ni "A-j" 'org-shiftmetadown ; M-J + (:map evil-org-mode-map + :ni "A-l" 'org-metaright ; M-j + :ni "A-h" 'org-metaleft ; M-h + :ni "A-k" 'org-metaup ; M-k + :ni "A-j" 'org-metadown ; M-j + :ni "A-l" 'org-shiftmetaright ; M-L + :ni "A-h" 'org-shiftmetaleft ; M-H + :ni "A-k" 'org-shiftmetaup ; M-K + :ni "A-j" 'org-shiftmetadown ; M-J - :ni "" 'org-beginning-of-line - :ni "" 'org-end-of-line - :ni "" 'org-up-element - :ni "" 'org-down-element + :ni "" 'org-beginning-of-line + :ni "" 'org-end-of-line + :ni "" 'org-up-element + :ni "" 'org-down-element - :n ", ;" 'helm-org-in-buffer-headings - :n ", l" 'org-insert-link - :ni "M-a" 'mark-whole-buffer + :n ",;" 'helm-org-in-buffer-headings + :n ",l" 'org-insert-link + :ni "M-a" 'mark-whole-buffer - :i "C-e" 'org-end-of-line - :i "C-a" 'org-beginning-of-line - :i ;; Add new header line before this line - :i "" 'narf/org-insert-item-before - :i ;; Add new header line after this line - :i "" 'narf/org-insert-item-after + :i "C-e" 'org-end-of-line + :i "C-a" 'org-beginning-of-line + :i ;; Add new header line before this line + :i "" 'narf/org-insert-item-before + :i ;; Add new header line after this line + :i "" 'narf/org-insert-item-after - :i "M-b" (λ (narf/org-surround "*")) ; bold - :i "M-u" (λ (narf/org-surround "_")) ; underline - :i "M-i" (λ (narf/org-surround "/")) ; italics - :i "M-`" (λ (narf/org-surround "+")) ; strikethrough + :i "M-b" (λ (narf/org-surround "*")) ; bold + :i "M-u" (λ (narf/org-surround "_")) ; underline + :i "M-i" (λ (narf/org-surround "/")) ; italics + :i "M-`" (λ (narf/org-surround "+")) ; strikethrough - :v "M-b" "S*" - :v "M-u" "S_" - :v "M-i" "S/" - :v "M-`" "S+" + :v "M-b" "S*" + :v "M-u" "S_" + :v "M-i" "S/" + :v "M-`" "S+" - :n ",=" 'org-align-all-tags - :n ",/" 'org-sparse-tree - :n ",?" 'org-tags-view - :n ",a" 'org-attach - :n ",D" 'org-time-stamp-inactive - :n ",T" 'org-show-todo-tree - :n ",d" 'org-time-stamp - :n ",r" 'org-refile - :n ",s" 'org-schedule - :n ",t" 'org-todo - :n "gr" 'org-babel-execute-src-block-maybe - :m "gh" 'outline-up-heading - :m "gj" 'org-forward-heading-same-level - :m "gk" 'org-backward-heading-same-level - :m "gl" 'outline-next-visible-heading - :n "go" 'org-open-at-point - :n "gO" 'org-attach-open - :n "gC-o" 'org-attach-reveal - :n "gI" (λ (if (> (length org-inline-image-overlays) 0) - (org-remove-inline-images) - (org-display-inline-images nil t (line-beginning-position) (line-end-position)))) - :n "gQ" 'org-fill-paragraph - :n "ga" 'org-attach - :n "gA" 'org-agenda - :n "gt" 'org-show-todo-tree - :m "]l" 'org-next-link - :m "[l" 'org-previous-link - :m "$" 'org-end-of-line - :m "^" 'org-beginning-of-line - :n "<" 'org-metaleft - :n ">" 'org-metaright - :n "-" 'org-cycle-list-bullet - :n ",SPC" 'narf/org-toggle-checkbox - :n "," 'org-archive-subtree - :n "" 'narf/org-insert-item-before - :n "" 'narf/org-insert-item-after - :n "RET" (λ (cond ((org-at-item-checkbox-p) - (org-toggle-checkbox)) - ((org-entry-is-todo-p) - (org-todo 'done)))) - :n [tab] 'org-cycle) + (:prefix "," + :n "=" 'org-align-all-tags + :n "/" 'org-sparse-tree + :n "?" 'org-tags-view + :n "a" 'org-attach + :n "D" 'org-time-stamp-inactive + :n "T" 'org-show-todo-tree + :n "d" 'org-time-stamp + :n "r" 'org-refile + :n "s" 'org-schedule + :n "t" 'org-todo + :n "SPC" 'narf/org-toggle-checkbox + :n "" 'org-archive-subtree) + :n "gr" 'org-babel-execute-src-block-maybe + :m "gh" 'outline-up-heading + :m "gj" 'org-forward-heading-same-level + :m "gk" 'org-backward-heading-same-level + :m "gl" 'outline-next-visible-heading + :n "go" 'org-open-at-point + :n "gO" 'org-attach-open + :n "gC-o" 'org-attach-reveal + :n "gI" (λ (if (> (length org-inline-image-overlays) 0) + (org-remove-inline-images) + (org-display-inline-images nil t (line-beginning-position) (line-end-position)))) + :n "gQ" 'org-fill-paragraph + :n "ga" 'org-attach + :n "gA" 'org-agenda + :n "gt" 'org-show-todo-tree + :m "]l" 'org-next-link + :m "[l" 'org-previous-link + :m "$" 'org-end-of-line + :m "^" 'org-beginning-of-line + :n "<" 'org-metaleft + :n ">" 'org-metaright + :n "-" 'org-cycle-list-bullet + :n "" 'narf/org-insert-item-before + :n "" 'narf/org-insert-item-after + :n "RET" (λ (cond ((org-at-item-checkbox-p) + (org-toggle-checkbox)) + ((org-entry-is-todo-p) + (org-todo 'done)))) + :n [tab] 'org-cycle) - (:after org-agenda - (:map org-agenda-mode-map - :e "" 'org-agenda-Quit - :e "C-j" 'org-agenda-next-item - :e "C-k" 'org-agenda-previous-item - :e "C-n" 'org-agenda-next-item - :e "C-p" 'org-agenda-previous-item)))) + (:after org-agenda + (:map org-agenda-mode-map + :e "" 'org-agenda-Quit + :e "C-j" 'org-agenda-next-item + :e "C-k" 'org-agenda-previous-item + :e "C-n" 'org-agenda-next-item + :e "C-p" 'org-agenda-previous-item))))) (provide 'module-org) ;;; module-org.el ends here