dotfiles/dot_emacs.d/layers/+emacs/org/packages.el

911 lines
34 KiB
EmacsLisp
Raw Normal View History

;;; packages.el --- Org Layer packages File for Spacemacs
;;
;; Copyright (c) 2012-2020 Sylvain Benner & Contributors
;;
;; Author: Sylvain Benner <sylvain.benner@gmail.com>
;; URL: https://github.com/syl20bnr/spacemacs
;;
;; This file is not part of GNU Emacs.
;;
;;; License: GPLv3
(setq org-packages
'(
company
company-emoji
emoji-cheat-sheet-plus
evil-org
evil-surround
gnuplot
(helm-org-rifle :toggle (configuration-layer/layer-used-p 'helm))
htmlize
;; ob, org and org-agenda are installed by `org-plus-contrib'
(ob :location built-in)
(org :location built-in)
(org-agenda :location built-in)
(org-brain :toggle (version<= "25" emacs-version))
(org-expiry :location built-in)
(org-journal :toggle org-enable-org-journal-support)
org-download
(org-jira :toggle org-enable-jira-support)
org-mime
org-pomodoro
org-present
org-cliplink
org-rich-yank
(org-projectile :requires projectile)
(ox-epub :toggle org-enable-epub-support)
(ox-twbs :toggle org-enable-bootstrap-support)
;; use a for of ox-gfm to fix index generation
(ox-gfm :location (recipe :fetcher github :repo "syl20bnr/ox-gfm")
:toggle org-enable-github-support)
(org-re-reveal :toggle org-enable-reveal-js-support)
persp-mode
(ox-hugo :toggle org-enable-hugo-support)
(ox-jira :toggle org-enable-jira-support)
(org-trello :toggle org-enable-trello-support)
(org-sticky-header :toggle org-enable-sticky-header)
(verb :toggle org-enable-verb-support)
(org-roam :toggle org-enable-roam-support)
))
(defun org/post-init-company ()
(spacemacs|add-company-backends :backends company-capf :modes org-mode))
(defun org/post-init-company-emoji ()
(spacemacs|add-company-backends :backends company-emoji :modes org-mode))
(defun org/post-init-emoji-cheat-sheet-plus ()
(add-hook 'org-mode-hook 'spacemacs/delay-emoji-cheat-sheet-hook))
(defun org/init-evil-org ()
(use-package evil-org
:defer t
:init
(progn
(add-hook 'org-mode-hook 'spacemacs//evil-org-mode)
(setq evil-org-use-additional-insert t
evil-org-key-theme `(textobjects
navigation
additional
,@(when org-want-todo-bindings '(todo)))))
:config
(spacemacs|hide-lighter evil-org-mode)))
(defun org/post-init-evil-surround ()
(add-hook 'org-mode-hook 'spacemacs/org-setup-evil-surround))
(defun org/init-gnuplot ()
(use-package gnuplot
:defer t
:init (spacemacs/set-leader-keys-for-major-mode 'org-mode
"tp" 'org-plot/gnuplot)))
(defun org/init-helm-org-rifle ()
(use-package helm-org-rifle
:defer t
:init (spacemacs/set-leader-keys "ao/" 'helm-org-rifle)))
(defun org/init-htmlize ()
(use-package htmlize
:defer t))
(defun org/init-ob ()
(use-package ob
:defer t
:init
(progn
(defun spacemacs//org-babel-do-load-languages ()
"Load all the languages declared in `org-babel-load-languages'."
(org-babel-do-load-languages 'org-babel-load-languages
org-babel-load-languages))
(add-hook 'org-mode-hook 'spacemacs//org-babel-do-load-languages)
;; Fix redisplay of inline images after a code block evaluation.
(add-hook 'org-babel-after-execute-hook 'spacemacs/ob-fix-inline-images))))
(defun org/init-org ()
(use-package org
:defer (spacemacs/defer)
:commands (orgtbl-mode)
:init
(progn
(spacemacs|require-when-dumping 'org)
(setq org-clock-persist-file (concat spacemacs-cache-directory
"org-clock-save.el")
org-id-locations-file (concat spacemacs-cache-directory
".org-id-locations")
org-publish-timestamp-directory (concat spacemacs-cache-directory
".org-timestamps/")
org-directory "~/org" ;; needs to be defined for `org-default-notes-file'
org-default-notes-file (expand-file-name "notes.org" org-directory)
org-log-done 'time
org-startup-with-inline-images t
org-latex-prefer-user-labels t
org-image-actual-width nil
org-src-fontify-natively t
org-src-tab-acts-natively t
;; this is consistent with the value of
;; `helm-org-headings-max-depth'.
org-imenu-depth 8)
(with-eval-after-load 'org-agenda
(add-to-list 'org-modules 'org-habit))
(with-eval-after-load 'org-indent
(spacemacs|hide-lighter org-indent-mode))
(defmacro spacemacs|org-emphasize (fname char)
"Make function for setting the emphasis in org mode"
`(defun ,fname () (interactive)
(org-emphasize ,char)))
;; Follow the confirm and abort conventions
(with-eval-after-load 'org-capture
(defun spacemacs//org-capture-start ()
"Make sure that the keybindings are available for org capture."
(spacemacs/set-leader-keys-for-minor-mode 'org-capture-mode
dotspacemacs-major-mode-leader-key 'org-capture-finalize
"a" 'org-capture-kill
"c" 'org-capture-finalize
"k" 'org-capture-kill
"r" 'org-capture-refile)
;; Evil bindins seem not to be applied until at least one
;; Evil state is executed
(evil-normal-state))
;; Must be done everytime we run org-capture otherwise it will
;; be ignored until insert mode is entered.
(add-hook 'org-capture-mode-hook 'spacemacs//org-capture-start))
(with-eval-after-load 'org-src
(spacemacs/set-leader-keys-for-minor-mode 'org-src-mode
dotspacemacs-major-mode-leader-key 'org-edit-src-exit
"c" 'org-edit-src-exit
"a" 'org-edit-src-abort
"k" 'org-edit-src-abort))
(autoload #'org-clock-jump-to-current-clock "org-clock")
(add-hook 'org-mode-hook 'dotspacemacs//prettify-spacemacs-docs)
(let ((dir (configuration-layer/get-layer-local-dir 'org)))
(setq org-export-async-init-file (concat dir "org-async-init.el")))
;; Insert key for org-mode and markdown a la C-h k
;; from SE endless http://emacs.stackexchange.com/questions/2206/i-want-to-have-the-kbd-tags-for-my-blog-written-in-org-mode/2208#2208
(defun spacemacs/insert-keybinding-org (key)
"Ask for a key then insert its description.
Will work on both org-mode and any mode that accepts plain html."
(interactive "kType key sequence: ")
(let* ((tag "@@html:<kbd>@@ %s @@html:</kbd>@@"))
(if (null (equal key "\r"))
(insert
(format tag (help-key-description key nil)))
(insert (format tag ""))
(forward-char -8))))
(dolist (prefix '(
("mb" . "babel")
("mC" . "clocks")
("md" . "dates")
("me" . "export")
("mf" . "feeds")
("mi" . "insert")
("miD" . "download")
("mm" . "more")
("ms" . "trees/subtrees")
("mT" . "toggles")
("mt" . "tables")
("mtd" . "delete")
("mti" . "insert")
("mtt" . "toggle")
("mx" . "text")
))
(spacemacs/declare-prefix-for-mode 'org-mode (car prefix) (cdr prefix)))
(spacemacs/set-leader-keys-for-major-mode 'org-mode
"'" 'org-edit-special
"c" 'org-capture
;; Clock
;; These keybindings should match those under the "aoC" prefix (below)
"Cc" 'org-clock-cancel
"Cd" 'org-clock-display
"Ce" 'org-evaluate-time-range
"Cg" 'org-clock-goto
"Ci" 'org-clock-in
"CI" 'org-clock-in-last
"Cj" 'spacemacs/org-clock-jump-to-current-clock
"Co" 'org-clock-out
"CR" 'org-clock-report
"Cr" 'org-resolve-clocks
"dd" 'org-deadline
"ds" 'org-schedule
"dt" 'org-time-stamp
"dT" 'org-time-stamp-inactive
"ee" 'org-export-dispatch
"fi" 'org-feed-goto-inbox
"fu" 'org-feed-update-all
"a" 'org-agenda
"p" 'org-priority
"Tc" 'org-toggle-checkbox
"Te" 'org-toggle-pretty-entities
"Ti" 'org-toggle-inline-images
"Tn" 'org-num-mode
"Tl" 'org-toggle-link-display
"Tt" 'org-show-todo-tree
"TT" 'org-todo
"TV" 'space-doc-mode
"Tx" 'org-latex-preview
;; More cycling options (timestamps, headlines, items, properties)
"L" 'org-shiftright
"H" 'org-shiftleft
"J" 'org-shiftdown
"K" 'org-shiftup
;; Change between TODO sets
"C-S-l" 'org-shiftcontrolright
"C-S-h" 'org-shiftcontrolleft
"C-S-j" 'org-shiftcontroldown
"C-S-k" 'org-shiftcontrolup
;; Subtree editing
"sa" 'org-toggle-archive-tag
"sA" 'org-archive-subtree-default
"sb" 'org-tree-to-indirect-buffer
"sd" 'org-cut-subtree
"sh" 'org-promote-subtree
"sj" 'org-move-subtree-down
"sk" 'org-move-subtree-up
"sl" 'org-demote-subtree
"sn" 'org-narrow-to-subtree
"sw" 'widen
"sr" 'org-refile
"ss" 'org-sparse-tree
"sS" 'org-sort
;; tables
"ta" 'org-table-align
"tb" 'org-table-blank-field
"tc" 'org-table-convert
"tdc" 'org-table-delete-column
"tdr" 'org-table-kill-row
"te" 'org-table-eval-formula
"tE" 'org-table-export
"tf" 'org-table-field-info
"th" 'org-table-previous-field
"tH" 'org-table-move-column-left
"tic" 'org-table-insert-column
"tih" 'org-table-insert-hline
"tiH" 'org-table-hline-and-move
"tir" 'org-table-insert-row
"tI" 'org-table-import
"tj" 'org-table-next-row
"tJ" 'org-table-move-row-down
"tK" 'org-table-move-row-up
"tl" 'org-table-next-field
"tL" 'org-table-move-column-right
"tn" 'org-table-create
"tN" 'org-table-create-with-table.el
"tr" 'org-table-recalculate
"ts" 'org-table-sort-lines
"ttf" 'org-table-toggle-formula-debugger
"tto" 'org-table-toggle-coordinate-overlays
"tw" 'org-table-wrap-region
;; Source blocks / org-babel
"bp" 'org-babel-previous-src-block
"bn" 'org-babel-next-src-block
"be" 'org-babel-execute-maybe
"bo" 'org-babel-open-src-block-result
"bv" 'org-babel-expand-src-block
"bu" 'org-babel-goto-src-block-head
"bg" 'org-babel-goto-named-src-block
"br" 'org-babel-goto-named-result
"bb" 'org-babel-execute-buffer
"bs" 'org-babel-execute-subtree
"bd" 'org-babel-demarcate-block
"bt" 'org-babel-tangle
"bf" 'org-babel-tangle-file
"bc" 'org-babel-check-src-block
"bj" 'org-babel-insert-header-arg
"bl" 'org-babel-load-in-session
"bi" 'org-babel-lob-ingest
"bI" 'org-babel-view-src-block-info
"bz" 'org-babel-switch-to-session
"bZ" 'org-babel-switch-to-session-with-code
"ba" 'org-babel-sha1-hash
"bx" 'org-babel-do-key-sequence-in-edit-buffer
"b." 'spacemacs/org-babel-transient-state/body
;; Multi-purpose keys
(or dotspacemacs-major-mode-leader-key ",") 'org-ctrl-c-ctrl-c
"*" 'org-ctrl-c-star
"-" 'org-ctrl-c-minus
"#" 'org-update-statistics-cookies
"RET" 'org-ctrl-c-ret
"M-RET" 'org-meta-return
;; attachments
"A" 'org-attach
;; insertion
"ib" 'org-insert-structure-template
"id" 'org-insert-drawer
"ie" 'org-set-effort
"if" 'org-footnote-new
"ih" 'org-insert-heading
"iH" 'org-insert-heading-after-current
"ii" 'org-insert-item
"iK" 'spacemacs/insert-keybinding-org
"il" 'org-insert-link
"in" 'org-add-note
"ip" 'org-set-property
"is" 'org-insert-subheading
"it" 'org-set-tags-command
;; region manipulation
"xb" (spacemacs|org-emphasize spacemacs/org-bold ?*)
"xc" (spacemacs|org-emphasize spacemacs/org-code ?~)
"xi" (spacemacs|org-emphasize spacemacs/org-italic ?/)
"xo" 'org-open-at-point
"xr" (spacemacs|org-emphasize spacemacs/org-clear ? )
"xs" (spacemacs|org-emphasize spacemacs/org-strike-through ?+)
"xu" (spacemacs|org-emphasize spacemacs/org-underline ?_)
"xv" (spacemacs|org-emphasize spacemacs/org-verbatim ?=))
;; Add global evil-leader mappings. Used to access org-agenda
;; functionalities and a few others commands from any other mode.
(spacemacs/declare-prefix "ao" "org")
(spacemacs/declare-prefix "aof" "feeds")
(spacemacs/declare-prefix "aoC" "clock")
;; org-agenda
(when (configuration-layer/layer-used-p 'ivy)
(spacemacs/set-leader-keys "ao/" 'org-occur-in-agenda-files))
(spacemacs/set-leader-keys
"ao#" 'org-agenda-list-stuck-projects
"aoa" 'org-agenda-list
"aoo" 'org-agenda
"aoc" 'org-capture
"aoe" 'org-store-agenda-views
"aofi" 'org-feed-goto-inbox
"aofu" 'org-feed-update-all
;; Clock
;; These keybindings should match those under the "mC" prefix (above)
"aoCc" 'org-clock-cancel
"aoCg" 'org-clock-goto
"aoCi" 'org-clock-in
"aoCI" 'org-clock-in-last
"aoCj" 'spacemacs/org-clock-jump-to-current-clock
"aoCo" 'org-clock-out
"aoCr" 'org-resolve-clocks
"aol" 'org-store-link
"aom" 'org-tags-view
"aos" 'org-search-view
"aot" 'org-todo-list
;; SPC C- capture/colors
"Cc" 'org-capture)
(define-key global-map "\C-cl" 'org-store-link)
(define-key global-map "\C-ca" 'org-agenda)
(define-key global-map "\C-cc" 'org-capture))
:config
(progn
;; We add this key mapping because an Emacs user can change
;; `dotspacemacs-major-mode-emacs-leader-key' to `C-c' and the key binding
;; C-c ' is shadowed by `spacemacs/default-pop-shell', effectively making
;; the Emacs user unable to exit src block editing.
(define-key org-src-mode-map
(kbd (concat dotspacemacs-major-mode-emacs-leader-key " '"))
'org-edit-src-exit)
;; Evilify the calendar tool on C-c .
(unless (eq 'emacs dotspacemacs-editing-style)
(define-key org-read-date-minibuffer-local-map (kbd "M-h")
(lambda () (interactive)
(org-eval-in-calendar '(calendar-backward-day 1))))
(define-key org-read-date-minibuffer-local-map (kbd "M-l")
(lambda () (interactive)
(org-eval-in-calendar '(calendar-forward-day 1))))
(define-key org-read-date-minibuffer-local-map (kbd "M-k")
(lambda () (interactive)
(org-eval-in-calendar '(calendar-backward-week 1))))
(define-key org-read-date-minibuffer-local-map (kbd "M-j")
(lambda () (interactive)
(org-eval-in-calendar '(calendar-forward-week 1))))
(define-key org-read-date-minibuffer-local-map (kbd "M-H")
(lambda () (interactive)
(org-eval-in-calendar '(calendar-backward-month 1))))
(define-key org-read-date-minibuffer-local-map (kbd "M-L")
(lambda () (interactive)
(org-eval-in-calendar '(calendar-forward-month 1))))
(define-key org-read-date-minibuffer-local-map (kbd "M-K")
(lambda () (interactive)
(org-eval-in-calendar '(calendar-backward-year 1))))
(define-key org-read-date-minibuffer-local-map (kbd "M-J")
(lambda () (interactive)
(org-eval-in-calendar '(calendar-forward-year 1)))))
(spacemacs|define-transient-state org-babel
:title "Org Babel Transient state"
:doc "
[_j_/_k_] navigate src blocks [_e_] execute src block
[_g_]^^ goto named block [_'_] edit src block
[_z_]^^ recenter screen [_q_] quit"
:bindings
("q" nil :exit t)
("j" org-babel-next-src-block)
("k" org-babel-previous-src-block)
("g" org-babel-goto-named-src-block)
("z" recenter-top-bottom)
2020-06-25 13:47:44 +02:00
("e" org-babel-execute-maybe)
("'" org-edit-special :exit t)))))
(defun org/init-org-agenda ()
(use-package org-agenda
:defer t
:init
(progn
(setq org-agenda-restore-windows-after-quit t)
(dolist (prefix '(("mC" . "clocks")
("md" . "dates")
("mi" . "insert")
("ms" . "trees/subtrees")))
(spacemacs/declare-prefix-for-mode 'org-agenda-mode
(car prefix) (cdr prefix)))
(spacemacs/set-leader-keys-for-major-mode 'org-agenda-mode
"a" 'org-agenda
"Cc" 'org-agenda-clock-cancel
"Ci" 'org-agenda-clock-in
"Co" 'org-agenda-clock-out
"dd" 'org-agenda-deadline
"ds" 'org-agenda-schedule
"ie" 'org-agenda-set-effort
"ip" 'org-agenda-set-property
"iP" 'org-agenda-priority
"it" 'org-agenda-set-tags
"sr" 'org-agenda-refile)
(spacemacs|define-transient-state org-agenda
:title "Org-agenda transient state"
:on-enter (setq which-key-inhibit t)
:on-exit (setq which-key-inhibit nil)
:foreign-keys run
:doc
"
Headline^^ Visit entry^^ Filter^^ Date^^ Toggle mode^^ View^^ Clock^^ Other^^
--------^^--------- -----------^^------------ ------^^----------------- ----^^------------- -----------^^------ ----^^--------- -----^^------ -----^^-----------
[_ht_] set status [_SPC_] in other window [_ft_] by tag [_ds_] schedule [_tf_] follow [_vd_] day [_cI_] in [_gr_] reload
[_hk_] kill [_TAB_] & go to location [_fr_] refine by tag [_dS_] un-schedule [_tl_] log [_vw_] week [_cO_] out [_._] go to today
[_hr_] refile [_RET_] & del other windows [_fc_] by category [_dd_] set deadline [_ta_] archive [_vt_] fortnight [_cq_] cancel [_gd_] go to date
[_hA_] archive [_o_] link [_fh_] by top headline [_dD_] remove deadline [_tr_] clock report [_vm_] month [_cj_] jump ^^
[_h:_] set tags ^^ [_fx_] by regexp [_dt_] timestamp [_ti_] clock issues [_vy_] year ^^ ^^
[_hp_] set priority ^^ [_fd_] delete all filters [_+_] do later [_td_] diaries [_vn_] next span ^^ ^^
^^ ^^ ^^ [_-_] do earlier ^^ [_vp_] prev span ^^ ^^
^^ ^^ ^^ ^^ ^^ [_vr_] reset ^^ ^^
[_q_] quit
"
:bindings
;; Entry
("h:" org-agenda-set-tags)
("hA" org-agenda-archive-default)
("hk" org-agenda-kill)
("hp" org-agenda-priority)
("hr" org-agenda-refile)
("ht" org-agenda-todo)
;; Visit entry
("SPC" org-agenda-show-and-scroll-up)
("<tab>" org-agenda-goto :exit t)
("TAB" org-agenda-goto :exit t)
("RET" org-agenda-switch-to :exit t)
("o" link-hint-open-link :exit t)
;; Date
("+" org-agenda-do-date-later)
("-" org-agenda-do-date-earlier)
("dd" org-agenda-deadline)
("dD" (lambda () (interactive)
(let ((current-prefix-arg '(4)))
(call-interactively 'org-agenda-deadline))))
("ds" org-agenda-schedule)
("dS" (lambda () (interactive)
(let ((current-prefix-arg '(4)))
(call-interactively 'org-agenda-schedule))))
("dt" org-agenda-date-prompt)
;; View
("vd" org-agenda-day-view)
("vm" org-agenda-month-view)
("vn" org-agenda-later)
("vp" org-agenda-earlier)
("vr" org-agenda-reset-view)
("vt" org-agenda-fortnight-view)
("vw" org-agenda-week-view)
("vy" org-agenda-year-view)
;; Toggle mode
("ta" org-agenda-archives-mode)
("td" org-agenda-toggle-diary)
("tf" org-agenda-follow-mode)
("ti" org-agenda-show-clocking-issues)
("tl" org-agenda-log-mode)
("tr" org-agenda-clockreport-mode)
;; Filter
("fc" org-agenda-filter-by-category)
("fd" org-agenda-filter-remove-all)
("fh" org-agenda-filter-by-top-headline)
("fr" org-agenda-filter-by-tag-refine)
("ft" org-agenda-filter-by-tag)
("fx" org-agenda-filter-by-regexp)
;; Clock
("cI" org-agenda-clock-in :exit t)
("cj" org-agenda-clock-goto :exit t)
("cO" org-agenda-clock-out)
("cq" org-agenda-clock-cancel)
;; Other
("q" nil :exit t)
("gr" org-agenda-redo)
("." org-agenda-goto-today)
("gd" org-agenda-goto-date)))
:config
(evilified-state-evilify-map org-agenda-mode-map
:mode org-agenda-mode
:bindings
"j" 'org-agenda-next-line
"k" 'org-agenda-previous-line
;; C-h should not be rebound by evilification so we unshadow it manually
;; TODO add the rule in auto-evilification to ignore C-h (like we do
;; with C-g)
(kbd "C-h") nil
(kbd "M-j") 'org-agenda-next-item
(kbd "M-k") 'org-agenda-previous-item
(kbd "M-h") 'org-agenda-earlier
(kbd "M-l") 'org-agenda-later
(kbd "gd") 'org-agenda-toggle-time-grid
(kbd "gr") 'org-agenda-redo
(kbd "M-RET") 'org-agenda-show-and-scroll-up
(kbd "M-SPC") 'spacemacs/org-agenda-transient-state/body
(kbd "s-M-SPC") 'spacemacs/org-agenda-transient-state/body)))
(defun org/init-org-brain ()
(use-package org-brain
:defer t
:init
(progn
(spacemacs/declare-prefix "aoB" "org-brain")
(spacemacs/set-leader-keys
"aoBv" 'org-brain-visualize
"aoBa" 'org-brain-agenda)
(spacemacs/declare-prefix-for-mode 'org-mode "mB" "org-brain")
(spacemacs/declare-prefix-for-mode 'org-mode "mBa" "add")
(spacemacs/declare-prefix-for-mode 'org-mode "mBg" "goto")
(spacemacs/set-leader-keys-for-major-mode 'org-mode
"Bv" 'org-brain-visualize
"Bac" 'org-brain-add-child
"Bah" 'org-brain-add-child-headline
"Bap" 'org-brain-add-parent
"Bar" 'org-brain-add-resource
"Baf" 'org-brain-add-friendship
"Bgg" 'org-brain-goto
"Bgc" 'org-brain-goto-child
"Bgp" 'org-brain-goto-parent
"Bgf" 'org-brain-goto-friend
"BR" 'org-brain-refile
"Bx" 'org-brain-delete-entry)
(evil-set-initial-state 'org-brain-visualize-mode 'emacs))))
(defun org/init-org-expiry ()
(use-package org-expiry
:commands (org-expiry-insinuate
org-expiry-deinsinuate
org-expiry-insert-created
org-expiry-insert-expiry
org-expiry-add-keyword
org-expiry-archive-subtree
org-expiry-process-entry
org-expiry-process-entries)))
(defun org/init-org-download ()
(use-package org-download
:commands (org-download-enable
org-download-yank
org-download-screenshot)
:init
(progn
(add-hook 'org-mode-hook 'org-download-enable)
(spacemacs/declare-prefix-for-mode 'org-mode "miD" "download")
(spacemacs/set-leader-keys-for-major-mode 'org-mode
"iDy" 'org-download-yank
"iDs" 'org-download-screenshot))))
(defun org/init-org-jira ()
(use-package org-jira
:defer t
:init
(progn
(spacemacs/declare-prefix "aoJ" "jira")
(spacemacs/declare-prefix "aoJp" "projects")
(spacemacs/declare-prefix "aoJi" "issues")
(spacemacs/declare-prefix "aoJs" "subtasks")
(spacemacs/declare-prefix "aoJc" "comments")
(spacemacs/declare-prefix "aoJt" "todos")
(spacemacs/set-leader-keys
"aoJpg" 'org-jira-get-projects
"aoJib" 'org-jira-browse-issue
"aoJig" 'org-jira-get-issues
"aoJih" 'org-jira-get-issues-headonly
"aoJif" 'org-jira-get-issues-from-filter-headonly
"aoJiu" 'org-jira-update-issue
"aoJiw" 'org-jira-progress-issue
"aoJir" 'org-jira-refresh-issue
"aoJic" 'org-jira-create-issue
"aoJiy" 'org-jira-copy-current-issue-key
"aoJsc" 'org-jira-create-subtask
"aoJsg" 'org-jira-get-subtasks
"aoJcu" 'org-jira-update-comment
"aoJtj" 'org-jira-todo-to-jira)
(spacemacs/declare-prefix-for-mode 'org-mode "mmj" "jira")
(spacemacs/declare-prefix-for-mode 'org-mode "mmjp" "projects")
(spacemacs/declare-prefix-for-mode 'org-mode "mmji" "issues")
(spacemacs/declare-prefix-for-mode 'org-mode "mmjs" "subtasks")
(spacemacs/declare-prefix-for-mode 'org-mode "mmjc" "comments")
(spacemacs/declare-prefix-for-mode 'org-mode "mmjt" "todos")
(spacemacs/set-leader-keys-for-major-mode 'org-mode
"mjpg" 'org-jira-get-projects
"mjib" 'org-jira-browse-issue
"mjig" 'org-jira-get-issues
"mjih" 'org-jira-get-issues-headonly
"mjif" 'org-jira-get-issues-from-filter-headonly
"mjiu" 'org-jira-update-issue
"mjiw" 'org-jira-progress-issue
"mjir" 'org-jira-refresh-issue
"mjic" 'org-jira-create-issue
"mjiy" 'org-jira-copy-current-issue-key
"mjsc" 'org-jira-create-subtask
"mjsg" 'org-jira-get-subtasks
"mjcu" 'org-jira-update-comment
"mjtj" 'org-jira-todo-to-jira))))
(defun org/init-org-mime ()
(use-package org-mime
:defer t
:init
(progn
(spacemacs/set-leader-keys-for-major-mode 'message-mode
"em" 'org-mime-htmlize)
(spacemacs/set-leader-keys-for-major-mode 'org-mode
"em" 'org-mime-org-buffer-htmlize
"es" 'org-mime-org-subtree-htmlize))))
(defun org/init-org-pomodoro ()
(use-package org-pomodoro
:defer t
:init
(progn
(when (spacemacs/system-is-mac)
(setq org-pomodoro-audio-player "/usr/bin/afplay"))
(spacemacs/set-leader-keys-for-major-mode 'org-mode
"Cp" 'org-pomodoro)
(spacemacs/set-leader-keys-for-major-mode 'org-journal-mode
"Cp" 'org-pomodoro)
(spacemacs/set-leader-keys-for-major-mode 'org-agenda-mode
"Cp" 'org-pomodoro))))
(defun org/init-org-present ()
(use-package org-present
:defer t
:init
(progn
(defun spacemacs//org-present-start ()
"Initiate `org-present' mode"
(org-present-big)
(org-display-inline-images)
(org-present-hide-cursor)
(org-present-read-only)
(evil-define-key 'normal org-present-mode-keymap
"h" 'org-present-prev
(kbd "<left>") 'org-present-prev
"l" 'org-present-next
(kbd "<right>") 'org-present-next
"q" 'org-present-quit)
;; evil-normal-state seems to be required to load the above key bindings
(evil-normal-state))
(defun spacemacs//org-present-end ()
"Terminate `org-present' mode"
(org-present-small)
(if (not org-startup-with-inline-images)
(org-remove-inline-images))
(org-present-show-cursor)
(org-present-read-write))
(add-hook 'org-present-mode-hook 'spacemacs//org-present-start)
(add-hook 'org-present-mode-quit-hook 'spacemacs//org-present-end))))
(defun org/init-org-cliplink ()
(use-package org-cliplink
:defer t
:init
(spacemacs/set-leader-keys-for-major-mode 'org-mode
"iL" 'org-cliplink)))
(defun org/init-org-rich-yank ()
(use-package org-rich-yank
:ensure t
:demand t
:init
(spacemacs/set-leader-keys-for-major-mode 'org-mode
;; yank is a misnomer for this function which actually puts/pastes
;; ir = "insert rich"
"ir" 'org-rich-yank)))
(defun org/init-org-projectile ()
(use-package org-projectile
:commands (org-projectile-location-for-project)
:init
(progn
(spacemacs/set-leader-keys
"aop" 'org-projectile/capture
"po" 'org-projectile/goto-todos)
(with-eval-after-load 'org-capture
(require 'org-projectile)))
:config
(if (file-name-absolute-p org-projectile-file)
(progn
(setq org-projectile-projects-file org-projectile-file)
(push (org-projectile-project-todo-entry :empty-lines 1)
org-capture-templates))
(org-projectile-per-project)
(setq org-projectile-per-project-filepath org-projectile-file))))
(defun org/pre-init-ox-epub ()
(spacemacs|use-package-add-hook org :post-config (require 'ox-epub)))
(defun org/init-ox-epub ())
(defun org/pre-init-ox-twbs ()
(spacemacs|use-package-add-hook org :post-config (require 'ox-twbs)))
(defun org/init-ox-twbs ())
(defun org/pre-init-ox-gfm ()
(spacemacs|use-package-add-hook org :post-config (require 'ox-gfm)))
(defun org/init-ox-gfm ())
(defun org/pre-init-org-re-reveal ()
(spacemacs|use-package-add-hook org :post-config (require 'org-re-reveal)))
(defun org/init-org-re-reveal ())
(defun org/post-init-persp-mode ()
(spacemacs|define-custom-layout "@Org"
:binding "o"
:body
(let ((agenda-files (org-agenda-files)))
(if agenda-files
(find-file (first agenda-files))
(user-error "Error: No agenda files configured, nothing to display.")))))
(defun org/init-org-journal ()
(use-package org-journal
:defer t
:commands (org-journal-new-entry org-journal-search-forever)
:init
(progn
(spacemacs/declare-prefix "aoj" "org-journal")
(spacemacs/set-leader-keys
"aojj" 'org-journal-new-entry
"aojs" 'org-journal-search-forever
"aojt" 'org-journal-new-scheduled-entry
"aojv" 'org-journal-schedule-view)
(setq spacemacs-org-journal-mode-map (copy-keymap spacemacs-org-mode-map))
(spacemacs/set-leader-keys-for-major-mode 'calendar-mode
"r" 'org-journal-read-entry
"i" 'org-journal-new-date-entry
"n" 'org-journal-next-entry
"p" 'org-journal-previous-entry
"s" 'org-journal-search-forever
"w" 'org-journal-search-calendar-week
"m" 'org-journal-search-calendar-month
"y" 'org-journal-search-calendar-year)
(spacemacs/set-leader-keys-for-major-mode 'org-journal-mode
"j" 'org-journal-new-entry
"n" 'org-journal-next-entry
"p" 'org-journal-previous-entry)
(spacemacs//init-leader-mode-map 'org-journal-mode 'spacemacs-org-journal-mode-map))))
(defun org/init-ox-hugo ()
(use-package ox-hugo :after ox))
(defun org/init-ox-jira ()
(use-package ox-jira :after ox))
(defun org/init-org-trello ()
(use-package org-trello
:after org
:config
(progn
(spacemacs/declare-prefix-for-mode 'org-mode "mmt" "trello")
(spacemacs/declare-prefix-for-mode 'org-mode "mmtd" "sync down")
(spacemacs/declare-prefix-for-mode 'org-mode "mmtu" "sync up")
(spacemacs/set-leader-keys-for-major-mode 'org-mode
"mtI" 'org-trello-install-key-and-token
"mta" 'org-trello-archive-card
"mtc" 'org-trello-create-board-and-install-metadata
"mti" 'org-trello-install-board-metadata
"mtm" 'org-trello-update-board-metadata
"mtdb" 'spacemacs/org-trello-pull-buffer
"mtdc" 'spacemacs/org-trello-pull-card
"mtub" 'spacemacs/org-trello-push-buffer
"mtuc" 'spacemacs/org-trello-push-card))))
(defun org/init-org-roam ()
(use-package org-roam
:init
(progn
(spacemacs/declare-prefix "aor" "org-roam")
(spacemacs/declare-prefix "aord" "org-roam-dailies")
(spacemacs/set-leader-keys
"aordy" 'org-roam-dailies-yesterday
"aordt" 'org-roam-dailies-today
"aordT" 'org-roam-dailies-tomorrow
"aorf" 'org-roam-find-file
"aorg" 'org-roam-graph
"aori" 'org-roam-insert
"aorI" 'org-roam-insert-immediate
"aorl" 'org-roam)
(spacemacs/declare-prefix-for-mode 'org-mode "mr" "org-roam")
(spacemacs/declare-prefix-for-mode 'org-mode "mrd" "org-roam-dailies")
(spacemacs/set-leader-keys-for-major-mode 'org-mode
"rb" 'org-roam-switch-to-buffer
"rdy" 'org-roam-dailies-yesterday
"rdt" 'org-roam-dailies-today
"rdT" 'org-roam-dailies-tomorrow
"rf" 'org-roam-find-file
"rg" 'org-roam-graph
"ri" 'org-roam-insert
"rI" 'org-roam-insert-immediate
"rl" 'org-roam))
:config
(progn
(spacemacs|hide-lighter org-roam-mode))))
(defun org/init-org-sticky-header ()
(use-package org-sticky-header
:defer t
:init
(add-hook 'org-mode-hook 'org-sticky-header-mode)))
(defun org/init-verb ()
(use-package verb
:defer t
:init
(spacemacs/set-leader-keys-for-major-mode
'org-mode
"rf" #'verb-send-request-on-point
"rs" #'verb-send-request-on-point-other-window
"rr" #'verb-send-request-on-point-other-window-stay
"rm" #'verb-send-request-on-point-no-window
"rk" #'verb-kill-all-response-buffers
"re" #'verb-export-request-on-point
"ru" #'verb-export-request-on-point-curl
"rb" #'verb-export-request-on-point-verb
"rv" #'verb-set-var)
:config
(progn
(spacemacs/set-leader-keys-for-minor-mode
'verb-response-body-mode
"rr" #'verb-toggle-show-headers
"rk" #'verb-kill-response-buffer-and-window
"rf" #'verb-re-send-request)
(spacemacs/set-leader-keys-for-major-mode
'verb-response-headers-mode
"rq" #'verb-kill-buffer-and-window))))
(defun org/pre-init-verb ()
(spacemacs|use-package-add-hook org
:post-config (add-to-list 'org-babel-load-languages '(verb . t))))