Skip to content
develop
Switch branches/tags

Org layer

img/org.png

Table of Contents

Description

This layer enables org mode for Spacemacs.

Features:

BibTeX

For more extensive support of references through BibTeX files, have a look at the BibTeX layer.

Important Note

Since version 0.104, spacemacs uses the org version from the org ELPA repository instead of the one shipped with emacs. Then, any org related code should not be loaded before dotspacemacs/user-config, otherwise both versions will be loaded and will conflict.

Because of autoloading, calling to org functions will trigger the loading up of the org shipped with emacs which will induce conflicts. One way to avoid conflict is to wrap your org config code in a with-eval-after-load block like this:

(with-eval-after-load 'org
  ;; here goes your Org config :)
  ;; ....
  )

Please also note that everything described here only applies if you install this layer instead of manually loading org as separate emacs package.

If this is not done you will encounter a lot of unbind key exceptions while working with org. More details can be found here.

Install

Layer

To use this configuration layer: in the main Spacemacs configuration file (~/.spacemacs), to the existing dotspacemacs-configuration-layers list add the org entry.

TODO dependencies

If you would like to enforce dependencies in your TODO hierarchy, this layer has some sane default configurations to try via its org-todo-dependencies-strategy configuration variable.

Setting it to ~’naive-auto~, will cause an entry to switch to DONE when all its subentries are done, and to TODO otherwise. This does not result in extra prompts for the user, but doesn’t work well with more workflow states because of the literal DONE and TODO; it is an excellent place for beginners and minimalists:

(setq-default dotspacemacs-configuration-layers '(
  (org :variables
       org-todo-dependencies-strategy 'naive-auto)))

Setting it to ~’semiauto~, will cause the user to be prompted to change an entry’s state when the state of the subentries imply it: that is, when they are either all done while it is still a todo, or the when they are all still todo’s while it is done. This assumes next to nothing about your workflow states (it does not use literal TODO and DONE), but may result in additional, possibly surprising, prompting for the user; and it has no intelligence to attempt to determine the destination state. It is a good thing to try if ~’naive-auto~ does not accomplish what you need:

(setq-default dotspacemacs-configuration-layers '(
  (org :variables
       org-todo-dependencies-strategy 'naive-auto)))

If neither of these suffice for you, org-mode can be configured directly by setting org-enforce-todo-dependencies to t and writing your own function to register on the org-after-todo-statistics-hook. The layer implementation is a good reference.

Agenda notifications

To enable notifications for agenda events, set the variable org-enable-notifications to t.

(setq-default dotspacemacs-configuration-layers '(
  (org :variables
       org-enable-notifications t
       org-start-notification-daemon-on-startup t)))

This will install and configure the org-wild-notifier package. After install, run the org-wild-notifier-mode to start the org-wild-notifier notification daemon. To start the notification daemon automatically on Spacemacs startup, set the variable org-start-notification-daemon-on-startup to t as shown in the code snippet above.

Documentation for how org-wild-notifier can be configured is provided here (org-wild-notifier uses the alert package for showing notifications. On GNU/linux and Windows, using alert’s notifications style is recommended. Note also this issue).

Press M-S RET to enter a todo headline and then press =, d t= to add a timestamp to the headline (using =, d t= requires the diary-file variable to point to an existing file, see Agenda recommendations. You can also use the org-journal-new-scheduled-entry that becomes available by enabling org-journal support). By default, the org-wild-notifier package will scan your org-agenda-files (every minute) for TODO headlines that include a timestamp (configuration options are documented here). The default configuration shows a notification 10 minutes before the event using the alert package. The default behavior can be configured via the org-wild-notifier-alert-time variable. The notification type can be configured via the the alert package its configuration settings. Additional notification times can be added using the :WILD_NOTIFIER_NOTIFY_BEFORE: keyword (note that this additionally requires a SCHEDULED: stamp). Properties can be added with =, i p=.

Agenda recommendations

Emacs comes with its own diary package included. It is recommended not to use the diary directly. Instead of creating a diary file, create a diary.org file and set the diary-file variable to point to that file. To make the holidays, birthdays etc. from the diary show up in the agenda, add the diary-style expression entries to your diary.org file as shown in the code block of the Calendar/Diary integration section here.

Subsequently, to add appointments to the agenda you could use the following syntax:

* Friday, 04/02/2021
  ** Appointment 1
  <2021-04-02 Fri 10:10>
  ** TODO Appointment 2
  <2021-04-02 Fri 10:11>

or just use the org journal system. Outside org-journal you can still use org-journal-insert-header-at-point to create the date headers. In the source block above, the first appointment will just show up in the agenda. If org-wild-notifier is configured, then the second appointment will also trigger a notification 10 minutes (by default) before its due time (see Agenda notifications).

GitHub support

To install GitHub related extensions like ox-gfm to export to GitHub flavored markdown set the variable org-enable-github-support to t.

(setq-default dotspacemacs-configuration-layers '(
  (org :variables org-enable-github-support t)))

Twitter Bootstrap support

To enable the export to Twitter Bootstrap-formatted HTML - set the variable org-enable-bootstrap-support to t. This would install the ox-twbs extension.

(setq-default dotspacemacs-configuration-layers '(
  (org :variables
       org-enable-bootstrap-support t)))

Gnuplot support

Org-mode supports the plotting of data within tables through Gnuplot as demonstrated here.

Unfortunately, this is not terribly well supported on Windows, at this stage. To disable the configuration of gnuplot support - add the gnuplot package to your dotspacemacs-excluded-packages variable.

Reveal.js support

To enable the export of org files as a reveal.js presentation - set the variable org-enable-reveal-js-support to t. This would install the org-re-reveal Emacs extension.

(setq-default dotspacemacs-configuration-layers
 '((org :variables org-enable-reveal-js-support t)))

Then the extension needs to be pointed to the reveal.js itself. So download reveal.js and point org-re-reveal-root to the path, as it described in the manual.

Alternatively, add the following line to each .org file you want to process:

#+REVEAL_ROOT: https://cdn.jsdelivr.net/npm/reveal.js@3.8.0

Org-contacts support

org-contacts is a handy contacts management system. It can be used to manage (email) addresses (compatible with gnus, mu4e, notmuch etc.), birthdays and more. It is simpler than bbdb/ebdb and probably powerful enough for most users.

To install org-contacts, set the variable org-enable-org-contacts-support to t. Optionally, also set the variable org-contacts-files and add a capture template. The value of the org-contacts-files variable should be a list with filenames to use as contact sources. If set to nil (default) then all your Org files will be used. The first file in the org-contacts-files list can be visited with the keyboard shortcut SPC a o C f.

(org :variables org-enable-org-contacts-support t
     org-contacts-files '("~/Org/contacts.org" "~/Org/file2.org")
     org-capture-templates '(("c" "Contacts" entry (file "~/Org/contacts.org")
                              "* %(org-contacts-template-name)
:PROPERTIES:
:EMAIL: %(org-contacts-template-email)
:END:")))

A more elaborate capture template can be found in the org-contacts.el file.

Contacts can include the :BIRTHDAY: keyword. To include the birthdays in your org-agenda add %%(org-contacts-anniversaries) to one of your contacts files. It is important that this is inserted after a heading an that it has no preceding whitespace. So probably the best way is to add

* Birthdays
%%(org-contacts-anniversaries)

to the beginning or the end of one of your contacts files.

V-Card import/export

Importing/exporting contacts can be done via the `org-vcard-import/export` commands provided by the org-vcard package. This package gets installed automatically after enabling org contacts support.

Org-journal support

org-journal is a simple journal management system that:

  • Keeps a separate journal file for each day inside a directory
  • New daily file would always migrate entries with chosen TODO states
  • Has journal encryption functionality
  • Easily integrates with org-agenda and Emacs calendar, iCalendar, allows scheduling
  • Easily integrates with org-capture

To install org-journal - set the variable org-enable-org-journal-support to t.

(setq-default dotspacemacs-configuration-layers '(
  (org :variables
       org-enable-org-journal-support t)))

By default, journal files are stored in ~/Documents/journal/. To override this - set org-journal-dir variable in the dotspacemacs/user-config:

(setq org-journal-dir "~/org/journal/")

To change the journal file name format - alter org-journal-file-format:

(setq org-journal-file-format "%Y-%m-%d")

Warning: setting org-journal-file-format to include a file extension like %Y-%m-%d.org would break the calendar search functionality.

By default, journal files are started with a first level heading (*) followed by the date in the form set by locale. To format journal files differently:

  • alter org-journal-date-prefix and org-journal-date-format. For example, to have new journal files created with this header:
    #+TITLE: Tuesday, September 06 2016
        
  • define the following in dotspacemacs/user-config:
    (setq org-journal-date-prefix "#+TITLE: ")
    (setq org-journal-date-format "%A, %B %d %Y")
        

The default entry is a second level heading (=** =) followed by a timestamp. If you start your journal files with a Title as shown above you may want to adjust entries to start at the first level heading and you may want to change or omit the timestamp.

(setq org-journal-time-prefix "* ")
(setq org-journal-time-format "")

Any of the org-journal settings can be configured in dotspacemacs/user-config or defined alongside the layer itself.

For example:

(setq-default dotspacemacs-configuration-layers '(
  (org :variables
      org-enable-org-journal-support t
      org-journal-dir "~/org/journal/"
      org-journal-file-format "%Y-%m-%d"
      org-journal-date-prefix "#+TITLE: "
      org-journal-date-format "%A, %B %d %Y"
      org-journal-time-prefix "* "
      org-journal-time-format "")
)

Hugo support

To install the Org exporter ox-hugo that generates Hugo -compatible Markdown plus TOML/YAML front-matter, set the variable org-enable-hugo-support to t.

(setq-default dotspacemacs-configuration-layers '(
  (org :variables
       org-enable-hugo-support t)))

Trello support

To install Trello support set the variable org-enable-trello-support to t.

(setq-default dotspacemacs-configuration-layers '(
  (org :variables
       org-enable-trello-support t)))

Different bullets

You can tweak the bullets displayed in the org buffer in the function dotspacemacs/user-config of your dotfile by setting the variable org-superstar-headline-bullets-list. By default the list is set to ("◉" "○" "✸" "✿").

(setq org-superstar-bullet-list '("" "" "" ""))

You can disable the fancy bullets entirely by adding org-superstar to dotspacemacs-excluded-packages.

(dotspacemacs-excluded-packages '(org-superstar))

Project support

Set the layer variable org-projectile-file to the filename where you want to store project-specific TODOs. If this is an absolute path, all todos will be stored in the same file (organized by project), whereas if it is just a single filename, todos will be stored in each project root.

(setq-default dotspacemacs-configuration-layers
  '((org :variables org-projectile-file "TODOs.org")))

The TODO files are not added to the agenda automatically. You can do this with the following snippet.

(with-eval-after-load 'org-agenda
  (require 'org-projectile)
  (mapcar '(lambda (file)
                 (when (file-exists-p file)
                   (push file org-agenda-files)))
          (org-projectile-todo-files)))

Org-brain support

For Emacs 25 or later, to install org-brain set the variable org-enable-org-brain-support to t.

See the org-brain package documentation for more information.

Org-roam support

To install org-roam support set the variable org-enable-roam-support to t.

(setq-default dotspacemacs-configuration-layers '(
  (org :variables
       org-enable-roam-support t)))

More information about org-roam package (including manual) can be found at Org-roam website.

Org-roam-server support

To install support for org-roam-server set the variable org-enable-roam-server to t.

Org-roam-protocol support

To enable support for Org Roam Protocol set the variable org-enable-roam-protocol to t.

(setq-default dotspacemacs-configuration-layers '(
  (org :variables
       org-enable-roam-protocol t)))

And create a desktop file as described in the org-roam manual.

Mode line support

To temporarily enable mode line display of org clock, press SPC t m c.

To permanently enable mode line display of org clock, add this snippet to your dotspacemacs/user-config function:

(setq spaceline-org-clock-p t)

Sticky header support

To install sticky header support set the variable org-enable-sticky-header to t.

(setq-default dotspacemacs-configuration-layers '(
  (org :variables
       org-enable-sticky-header t)))

Epub support

To install the Org exporter ox-epub that generates e-book file format epub, set the variable org-enable-epub-support to t.

(setq-default dotspacemacs--configuration-layers
              '((org :variables
                     org-enable-epub-support t)))

Jira support

To bring Jira and OrgMode together over org-jira set the variable org-enable-jira-support to t.

(setq-default dotspacemacs-configuration-layers '(
  (org :variables
       org-enable-jira-support t
       jiralib-url "https://yourcompany.atlassian.net:443")))

If you would like to avoid being prompted for your login and password each time you connect, add your authentication credentials to ~/.authinfo.gpg or ~/.authinfo:

machine yourcompany.atlassian.net login you@example.com password yourPassword port 443

Valign support

To install valign. Which provides: Pixel-perfect visual alignment for Org and Markdown tables. Set the variable org-enable-valign to t:

(setq-default dotspacemacs-configuration-layers
 '((org :variables org-enable-valign t)))

Known problem: Rendering large tables (≥100 lines) is laggy.

Org-appear support

To install org-appear, which toggles visibility of emphasis markers, links, subscripts, and superscripts in org mode, set the org-enable-appear-support to t:

(setq-default dotspacemacs-configuration-layers
 '((org :variables org-enable-appear-support t)))

Verb support

To install Verb, an HTTP client based on Org mode, set the org-enable-verb-support variable to t:

(setq-default dotspacemacs-configuration-layers
 '((org :variables org-enable-verb-support t)))

AsciiDoc support

To install Org exporter ox-asciidoc, that generates AsciiDoc documents, set the variable org-enable-asciidoc-support to t.

(setq-default dotspacemacs-configuration-layers
  '((org :variables org-enable-asciidoc-support t)))

Spacemacs layout integration

A Spacemacs custom layout @Org is defined by the layer and accessible via SPC l o. The startup behavior can be customized with the following layer variables:

  • org-persp-startup-org-file Defines the org file buffer that should be opened after startup. Defaults to the first file in org-agenda-files, if org-persp-startup-org-file is set to nil.
  • org-persp-startup-with-agenda If non-nil, sets initial buffer to the specified (custom) org-agenda buffer, e.g. (setq org-persp-startup-with-agenda "a") opens org-agenda-list.

Key bindings

Starting org-mode

Key bindingDescription
SPC a o #org agenda list stuck projects
SPC a o /org occur in agenda files
SPC a o aorg agenda list
SPC a o corg capture
SPC a o eorg store agenda views
SPC a o f iorg feed goto inbox
SPC a o f uorg feed update all
SPC a o C corg cancel clock
SPC a o C gorg goto last clocked-in clock (go to specific recent clock with SPC u)
SPC a o C iorg clock in
SPC a o C Iorg clock in last
SPC a o C jorg jump to current clock
SPC a o C oorg clock out
SPC a o C rorg resolve clocks
SPC a o lorg store link
SPC a o morg tags view
SPC a o oorg agenda
SPC a o sorg search view
SPC a o torg todo list
SPC C corg-capture

Toggles

Key bindingDescription
SPC m T corg-toggle-checkbox
SPC m T eorg-toggle-pretty-entities
SPC m T iorg-toggle-inline-images
SPC m T norg-num-mode
SPC m T lorg-toggle-link-display
SPC m T torg-show-todo-tree
SPC m T Torg-todo
SPC m T Vtoggle space-doc-mode a read-only view mode
SPC m T xorg-preview-latex-fragment

Org-mode

Key bindingDescription
SPC m <dotspacemacs-major-mode-leader-key>org-ctrl-c-ctrl-c
SPC m *org-ctrl-c-star
SPC m RETorg-ctrl-c-ret
SPC m -org-ctrl-c-minus
SPC m '​org-edit-special
SPC m aorg-agenda
SPC m Aorg-attach
SPC m corg-capture
SPC m C corg-clock-cancel
SPC m C dTemporarily show clock times for current file
SPC m C eorg-evaluate-time-range
SPC m C gorg-clock-goto
SPC m C iorg-clock-in
SPC m C Iorg-clock-in-last
SPC m C jJump to the current clock
SPC m C oorg-clock-out
SPC m C RInsert clock report
SPC m C rorg-resolve-clocks
SPC m d dorg-deadline
SPC m d sorg-schedule
SPC m d torg-time-stamp
SPC m d Torg-time-stamp-inactive
SPC m e eorg-export-dispatch
SPC m e msend current buffer as HTML email message
SPC m f iorg-feed-goto-inbox
SPC m f uorg-feed-update-all
SPC m lorg-open-at-point
SPC m Lorg-shiftright
SPC m Horg-shiftleft
SPC m Korg-shiftup
SPC m Jorg-shiftdown
SPC m C-S-lorg-shiftcontrolright
SPC m C-S-horg-shiftcontrolleft
SPC m C-S-jorg-shiftcontroldown
SPC m C-S-korg-shiftcontrolup
SPC s jspacemacs/jump-in-buffer (jump to a heading)

Org with evil-org-mode

Please see the evil-org documentation for additional instructions on customizing evil-org-mode.

Key bindingDescription
gj / gkNext/previous element (heading)
gh / glParent/child element (heading)
gHRoot heading
aeElement text object
arSubtree text object
M-j / M-kMove heading
M-h / M-lPromote or demote heading
M-J / M-KMove subtree
M-H / M-LPromote or demote subtree
>> / <<Promote or demote heading

If the layer variable org-want-todo-bindings is true, the following bindings are also available.

Key bindingsDescription
tCycle TODO state of current heading
TInsert new TODO heading
M-tInsert new TODO sub-heading

Tables

Key bindingDescription
SPC m t aAlign the table at point by aligning all vertical bars
SPC m t bBlank the current table field or active region
SPC m t cConvert from org-mode table to table.el and back
SPC m t d cDelete a column from the table
SPC m t d rDelete the current row or horizontal line from the table
SPC m t eReplace the table field value at the cursor by the result of a calculation
SPC m t EExport table to a file, with configurable format
SPC m t fShow table field info
SPC m t hGo to the previous field in the table
SPC m t HMove column to the left
SPC m t i cInsert a new column into the table
SPC m t i hInsert a horizontal-line below the current line into the table
SPC m t i HInsert a hline and move to the row below that line
SPC m t i rInsert a new row above the current line into the table
SPC m t IImport a file as a table
SPC m t jGo to the next row (same column) in the current table
SPC m t JMove table row down
SPC m t KMove table row up
SPC m t lGo to the next field in the current table, creating new lines as needed
SPC m t LMove column to the right
SPC m t nQuery for a size and insert a table skeleton
SPC m t NUse the table.el package to insert a new table
SPC m t pPlot the table using org-plot/gnuplot
SPC m t rRecalculate the current table line by applying all stored formulas
SPC m t RRecalculate all tables in the current buffer by applying all stored formulas
SPC m t sSort table lines according to the column at point
SPC m t t fToggle the formula debugger in tables
SPC m t t oToggle the display of Row/Column numbers in tables
SPC m t wWrap several fields in a column like a paragraph

Trees

Key bindingDescription
gj / gkNext/previous element (heading)
gh / glParent/child element (heading)
gHRoot heading
aeElement text object
arSubtree text object
M-j / M-kMove heading
M-h / M-lPromote or demote heading
M-J / M-KMove subtree
M-H / M-LPromote or demote subtree
>> / <<Promote or demote heading
TABorg-cycle
SPC m s aToggle archive tag for subtree
SPC m s AArchive subtree
SPC m s borg-tree-to-indirect-buffer
SPC m s dorg-cut-subtree
SPC m s yorg-copy-subtree
SPC m s lorg-demote-subtree
SPC m s horg-promote-subtree
SPC m s korg-move-subtree-up
SPC m s jorg-move-subtree-down
SPC m s norg-narrow-to-subtree
SPC m s wwiden narrowed subtree
SPC m s rorg-refile
SPC m s sshow sparse tree
SPC m s Ssort trees

Element insertion

Key bindingDescription
C-RETInsert heading at end of current subtree
C-S-RETInsert TODO heading at end of current subtree
SPC m i dorg-insert-drawer
SPC m i D sTake screenshot
SPC m i D yYank image url
SPC m i eorg-set-effort
SPC m i forg-insert-footnote
SPC m i horg-insert-heading
SPC m i Horg-insert-heading-after-current
SPC m i iorg-insert-item
SPC m i Kspacemacs/insert-keybinding-org
SPC m i lorg-insert-link
SPC m i Linsert URL with its page title from clipboard
SPC m i norg-add-note
SPC m i porg-set-property
SPC m i rorg-rich-yank (paste code into a src block)
SPC m i sorg-insert-subheading
SPC m i torg-set-tags

Links

Key bindingDescription
SPC m x oorg-open-at-point

Babel / Source Blocks

Key bindingDescription
SPC m b .Enter Babel Transient State
SPC m b aorg-babel-sha1-hash
SPC m b borg-babel-execute-buffer
SPC m b corg-babel-check-src-block
SPC m b dorg-babel-demarcate-block
SPC m b eorg-babel-execute-maybe
SPC m b forg-babel-tangle-file
SPC m b gorg-babel-goto-named-src-block
SPC m b iorg-babel-lob-ingest
SPC m b Iorg-babel-view-src-block-info
SPC m b jorg-babel-insert-header-arg
SPC m b lorg-babel-load-in-session
SPC m b norg-babel-next-src-block
SPC m b oorg-babel-open-src-block-result
SPC m b porg-babel-previous-src-block
SPC m b rorg-babel-goto-named-result
SPC m b sorg-babel-execute-subtree
SPC m b torg-babel-tangle
SPC m b uorg-babel-goto-src-block-head
SPC m b vorg-babel-expand-src-block
SPC m b xorg-babel-do-key-sequence-in-edit-buffer
SPC m b zorg-babel-switch-to-session
SPC m b Zorg-babel-switch-to-session-with-code

Org Babel Transient State

Use SPC m b . to enter a transient state for quick source block navigation and execution. During that state, the following bindings are active:

Key bindingDescription
~’~edit source block
eexecute source block
gjump to named source block
jjump to next source block
kjump to previous source block
zrecenter buffer in window
qleave transient state

Emphasis

Key bindingDescription
SPC m x bmake region bold
SPC m x cmake region code
SPC m x imake region italic
SPC m x rclear region emphasis
SPC m x smake region strike-through
SPC m x umake region underline
SPC m x vmake region verbatim

Navigating in calendar

Key bindingDescription
M-lOne day forward
M-hOne day backward
M-jOne week forward
M-kOne week backward
M-LOne month forward
M-HOne month backward
M-JOne year forward
M-KOne year backward

Capture buffers and src blocks

org-capture-mode and org-src-mode both support the confirm and abort conventions.

Key bindingDescription
SPC m <dotspacemacs-major-mode-leader-key>confirm in org-capture-mode
SPC m '​confirm in org-src-mode
SPC m cconfirm
SPC m aabort
SPC m kabort
SPC m rorg-capture-refile in org-capture-mode

Org agenda

Key bindings

The evilified org agenda supports the following bindings:

Key bindingDescription
M-SPC or s-M-SPCorg-agenda transient state
SPC m aorg-agenda
~SPC m ,~org-agenda-ctrl-c-ctrl-c
SPC m corg-agenda-capture
SPC m C corg-agenda-clock-cancel
SPC m C iorg-agenda-clock-in
SPC m C oorg-agenda-clock-out
SPC m C jorg-agenda-clock-goto
SPC m C porg-pomodoro (if package is used)
SPC m d dorg-agenda-deadline
SPC m d sorg-agenda-schedule
SPC m i eorg-agenda-set-effort
SPC m i porg-agenda-set-property
SPC m i Porg-agenda-priority
SPC m i torg-agenda-set-tags
SPC m s rorg-agenda-refile
M-jnext item
M-kprevious item
M-hearlier view
M-llater view
grrefresh
gdtoggle grid
C-vchange view
RETorg-agenda-goto
M-RETorg-agenda-show-and-scroll-up

Org agenda transient state

Use SPC m ., M-SPC or s-M-SPC in an org agenda buffer to activate its transient state. The transient state aims to list the most useful org agenda commands and visually organize them by category. The commands associated with each binding are listed bellow.

Key bindingDescriptionCommand
Entry
h:set tagsorg-agenda-set-tags
hAarchiveorg-agenda-archive-default
htset statusorg-agenda-todo
hkkillorg-agenda-kill
hpset priorityorg-agenda-priority
hRrefileorg-agenda-refile
Visit entry
SPCin other windoworg-agenda-show-and-scroll-up
TAB& go to locationorg-agenda-goto
RET& del other windowsorg-agenda-switch-to
olinklink-hint-open-link
Filter
fcby categoryorg-agenda-filter-by-category
fddelete all filtersorg-agenda-filter-remove-all
fhby top headlineorg-agenda-filter-by-top-headline
frrefine by tagorg-agenda-filter-by-tag-refine
ftby tagorg-agenda-filter-by-tag
fxby regexporg-agenda-filter-by-regexp
Date
+do laterorg-agenda-do-date-later
-do earlierorg-agenda-do-date-earlier
ddset deadlineorg-agenda-deadline
dDremove deadlineorg-agenda-deadline
dsscheduleorg-agenda-schedule
dSun-scheduleorg-agenda-schedule
dttimestamporg-agenda-date-prompt
Toggle
taarchiveorg-agenda-archives-mode
tcclocking issuesorg-agenda-show-clocking-issues
tddiariesorg-agenda-toggle-diary
tffolloworg-agenda-follow-mode
tllogorg-agenda-log-mode
trclock reportorg-agenda-clockreport-mode
View
vddayorg-agenda-day-view
vmmonthorg-agenda-month-view
vnnext spanorg-agenda-later
vpprev spanorg-agenda-earlier
vrresetorg-agenda-reset-view
vtfortnightorg-agenda-fortnight-view
vwweekorg-agenda-week-view
vyyearorg-agenda-year-view
Clock
cIinorg-agenda-clock-in
cjjumporg-agenda-clock-goto
cOoutorg-agenda-clock-out
cqcancelorg-agenda-clock-cancel
Other
.go to todayorg-agenda-goto-today
gdgo to dateorg-agenda-goto-date
grreloadorg-agenda-redo

Pomodoro

Key bindingDescription
SPC m C pstarts a pomodoro

Presentation

org-present must be activated explicitly by typing: SPC SPC org-present

Key bindingDescription
hprevious slide
lnext slide
qquit

Helm-org-rifle

Key bindingDescription
SPC a o /Search org files for keywords and headings

Org-projectile

Key bindingDescription
SPC a o pCapture a TODO for the current project
SPC u SPC a o pCapture a TODO for any given project (choose from list)
SPC p oGo to the TODOs for the current project

Org-journal

Key bindingDescription
SPC a o j fVisit journal file
SPC a o j jNew journal entry
SPC u SPC a o j jOpen today’s journal without adding a new entry
SPC a o j sSearch journal entries
SPC a o j tNew scheduled journal entry
SPC a o j vView scheduled journal entries

Journal entries are highlighted in the calendar. The following key bindings are available for calendar-mode for navigating and manipulating the journal.

Key bindingDescription
SPC m iInsert journal entry for date
SPC m mSearch calendar month journal entries
SPC m nNext journal entry
SPC m pPrevious journal entry
SPC m rRead journal entry
SPC m sSearch all journal entries
SPC m wSearch calendar week journal entries
SPC m ySearch calendar year journal entries

While viewing a journal entry in org-journal-mode the following key bindings are available.

Key bindingDescription
SPC m jNew journal entry
SPC m nNext journal entry
SPC m pPrevious journal entry

Org-brain

Application bindings

Key bindingDescription
SPC a o B vVisualize an org-brain entry
SPC a o B aGo to the org-brain agenda

org-mode bindings

Key bindingDescription
SPC m B a cAdd child
SPC m B a hAdd headline child
SPC m B a fAdd friend
SPC m B a pAdd parent
SPC m B a rAdd resource
SPC m B g gGo to an org-brain entry
SPC m B g cGo to child
SPC m B g fGo to friend
SPC m B g pGo to parent
SPC m B RRefile entry
SPC m B xDelete entry
SPC m B vVisualize an org-brain entry

Visualization bindings

Key bindingDescription
j / TABGoto next link
k / S-TABGoto previous link
C-yPaste resource link
aAdd resource attachment
cAdd child
fFind/visit another entry to visualize
lAdd resource link
pAdd parent
oOpen and edit the visualized entry
rRename this, or another, entry

Org-jira

Key binding prefixes:

  • SPC a o J (everywhere)
  • SPC m m j (in an org-mode buffer)
Key bindingDescription
[prefix] p gGet projects list
[prefix] i bOpen the current issue in a WWW browser
[prefix] i gGet issues
[prefix] i hGet only head of issues
[prefix] i fGet only head of issues from filter
[prefix] i uUpdate an issue at point
[prefix] i wProgress an issue at point
[prefix] i rRefresh an issue at point
[prefix] i cCreate an issue at point
[prefix] i yCopy current issue key
[prefix] s cCreate a subtask
[prefix] s gGet subtasks
[prefix] c uUpdate the comment at point or add a new comment
[prefix] t jConvert the TODO item at point to a Jira ticket

Verb

Verb-mode bindings

Key bindingDescription
SPC m r rSend request on point in another window, but don’t select it
SPC m r sSend request on point in another window
SPC m r mSend request on point, show result status in minibuffer
SPC m r fSend request on point in selected window
SPC m r kKill all response buffers and their windows
SPC m r eExport request on point (prompt for format)
SPC m r uExport request on point to curl format
SPC m r bExport request on point to Verb format
SPC m r vSet value of a Verb variable

Verb-response-body-mode bindings

Key bindingDescription
SPC m r rToggle display headers for current response
SPC m r kKill current response buffer and its window
SPC m r fRe-send current response

Verb-response-headers-mode bindings

Key bindingDescription
SPC m r qKill current response headers buffer and its window

Org-roam

Key binding prefixes:

  • SPC a o r (anywhere)
  • SPC m r (in an org-mode buffer)
Key bindingDescription
SPC m r cCapture
SPC m r lToggle org-roam links visibility
SPC m r fFind node in org-roam
SPC m r iInsert node into org-roam
SPC m r gVisualize org-roam graph
SPC m r aAdd org-roam alias to file
SPC m r d yOpen yesterday’s daily note
SPC m r d tOpen today’s daily note
SPC m r d TOpen tomorrow’s daily note
SPC m r d dOpen daily note via calendar view
SPC m r t aAdd a tag to file
SPC m r t rRemove a tag from file