[Emacs] Add org-capture configuration
This commit is contained in:
parent
ea11f87856
commit
55b404437d
@ -3778,6 +3778,8 @@ extended however we like!
|
|||||||
org-default-notes-file (expand-file-name "notes.org" org-directory))
|
org-default-notes-file (expand-file-name "notes.org" org-directory))
|
||||||
<<org-agenda-files>>
|
<<org-agenda-files>>
|
||||||
<<org-behavior-electric>>
|
<<org-behavior-electric>>
|
||||||
|
<<org-capture-target-files>>
|
||||||
|
<<org-capture-templates>>
|
||||||
<<org-babel-load-languages>>
|
<<org-babel-load-languages>>
|
||||||
<<org-use-sub-superscripts>>
|
<<org-use-sub-superscripts>>
|
||||||
<<org-latex-compiler>>
|
<<org-latex-compiler>>
|
||||||
@ -3807,7 +3809,7 @@ extended however we like!
|
|||||||
<<general-keybindings-gen(table=org-keybinds-jump)>>
|
<<general-keybindings-gen(table=org-keybinds-jump)>>
|
||||||
<<general-keybindings-gen(table=org-keybinds-tables)>>
|
<<general-keybindings-gen(table=org-keybinds-tables)>>
|
||||||
<<general-keybindings-gen(table=org-keybinds-toggles)>>)
|
<<general-keybindings-gen(table=org-keybinds-toggles)>>)
|
||||||
|
<<org-capture-keybinds>>
|
||||||
(phundrak/major-leader-key
|
(phundrak/major-leader-key
|
||||||
:packages 'org
|
:packages 'org
|
||||||
:keymaps 'org-src-mode-map
|
:keymaps 'org-src-mode-map
|
||||||
@ -3983,6 +3985,183 @@ meaningful IDs for its headings. I actually wrote a package for this!
|
|||||||
(org-unique-id)))))))
|
(org-unique-id)))))))
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
*** Capture
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: Packages-Configuration-Org-mode-Capture-2j6hpyh0u9j0
|
||||||
|
:END:
|
||||||
|
Org capture is an amazing tool for taking quick notes, be it simple
|
||||||
|
text, links, resources, or reminders. They are all organised is
|
||||||
|
specified org files which are described below.
|
||||||
|
#+name: org-capture-target-files
|
||||||
|
#+begin_src emacs-lisp :tangle no
|
||||||
|
(defvar org-conlanging-file "~/org/conlanging.org")
|
||||||
|
(defvar org-notes-file "~/org/notes.org")
|
||||||
|
(defvar org-journal-file "~/org/journal.org")
|
||||||
|
(defvar org-linguistics-file "~/org/linguistics.org")
|
||||||
|
(defvar org-novel-file "~/org/novel.org")
|
||||||
|
(defvar org-agenda-file "~/org/agenda/private.org")
|
||||||
|
(defvar org-school-file "~/org/agenda/school.org")
|
||||||
|
(defvar org-worldbuilding-file "~/org/worldbuilding.org")
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
Let me describe a keybind to invoke org-capture from anywhere within
|
||||||
|
Emacs.
|
||||||
|
#+name: org-capture-keybinds
|
||||||
|
#+begin_src emacs-lisp :tangle no
|
||||||
|
(phundrak/leader-key
|
||||||
|
:packages 'org
|
||||||
|
:infix "o"
|
||||||
|
"" '(:ignore t :which-key "org")
|
||||||
|
"c" #'org-capture)
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
When ~org-capture~ is invoked, it will ask which template we wish to
|
||||||
|
use. In the table [[org-capture-shortcuts-table]], the /key/ column
|
||||||
|
represents which keychord we need to hit, titled with /name/, we need to
|
||||||
|
hit in order to use the /template/, inserted in the designated /file/ in
|
||||||
|
the manner described by /insertion mode/.
|
||||||
|
#+name: org-capture-shortcuts-table
|
||||||
|
| Shortcut | Name | Title | Insertion mode | file | template |
|
||||||
|
|----------+---------------+-----------+----------------+-------------------------+--------------------------|
|
||||||
|
| e | Email | | | | |
|
||||||
|
| ew | Write Email | Emails | file+headline | org-default-notes-file | email.orgcaptmpl |
|
||||||
|
| j | Journal | | file+datetree | org-journal-file | journal.orgcaptmpl |
|
||||||
|
| l | Link | | | | |
|
||||||
|
| ll | General | | file+headline | org-default-notes-file | link.orgcaptmpl |
|
||||||
|
| ly | YouTube | | file+headline | org-default-notes-file | youtube.orgcaptmpl |
|
||||||
|
| L | Protocol Link | Link | file+headline | org-default-notes-file | protocol-link.orgcaptmpl |
|
||||||
|
| n | Notes | | | | |
|
||||||
|
| nc | Conlanging | Note | file+headline | org-conlanging-file | notes.orgcaptmpl |
|
||||||
|
| nn | General | | file+headline | org-default-notes-file | notes.orgcaptmpl |
|
||||||
|
| nN | Novel | Note | file+headline | org-novel-notes-file | notes.orgcaptmpl |
|
||||||
|
| nq | Quote | | file+headline | org-default-notes-file | notes-quote.orgcaptmpl |
|
||||||
|
| nw | Worldbuilding | Note | file+headline | org-wordbuilding-file | notes.orgcaptmpl |
|
||||||
|
| N | Novel | | | | |
|
||||||
|
| Ni | Ideas | | file+headline | org-novel-notes-file | notes.orgcaptmpl |
|
||||||
|
| p | Protocol | Link | file+headline | org-default-notes-file | protocol.orgcaptmpl |
|
||||||
|
| r | Resources | | | | |
|
||||||
|
| rc | Conlanging | Resources | file+headline | org-conlanging-file | resource.orgcaptmpl |
|
||||||
|
| re | Emacs | | file+headline | org-default-notes-file | resource.orgcaptmpl |
|
||||||
|
| ri | Informatique | | file+headline | org-default-notes-file | resource.orgcaptmpl |
|
||||||
|
| rl | Linguistics | | file+headline | org-default-notes-file | resource.orgcaptmpl |
|
||||||
|
| rL | Linux | | file+headline | org-default-notes-file | resource.orgcaptmpl |
|
||||||
|
| rw | Worldbuilding | Resources | file+headline | org-wordbuilding-file | resource.orgcaptmpl |
|
||||||
|
| t | Tasks | | | | |
|
||||||
|
| tb | Birthday | | file+headline | org-private-agenda-file | birthday.orgcaptmpl |
|
||||||
|
| te | Event | | file+headline | org-private-agenda-file | event.orgcaptmpl |
|
||||||
|
| th | Health | | file+headline | org-private-agenda-file | health.orgcaptmpl |
|
||||||
|
| ti | Informatique | | file+headline | org-private-agenda-file | informatique.orgcaptmpl |
|
||||||
|
|
||||||
|
All templates can be found [[https://labs.phundrak.com/phundrak/dotfiles/src/branch/master/org/capture][in my dotfiles’ repository]].
|
||||||
|
|
||||||
|
#+name: org-capture-shortcuts-gen
|
||||||
|
#+header: :exports none :cache yes
|
||||||
|
#+begin_src emacs-lisp :var entries=org-capture-shortcuts-table
|
||||||
|
(mapconcat (lambda (entry)
|
||||||
|
(let ((key (nth 0 entry))
|
||||||
|
(name (nth 1 entry))
|
||||||
|
(title (nth 2 entry))
|
||||||
|
(ins-mode (nth 3 entry))
|
||||||
|
(file (nth 4 entry))
|
||||||
|
(template (nth 5 entry)))
|
||||||
|
(if (string= "" ins-mode)
|
||||||
|
(format "%S" `(,key ,name))
|
||||||
|
(format "(\"%s\" \"%s\" entry\n %S\n %S)"
|
||||||
|
key name
|
||||||
|
`(,(intern ins-mode) ,(intern file) ,(if (string= "file+datetree" ins-mode)
|
||||||
|
(intern "")
|
||||||
|
(if (string= title "")
|
||||||
|
name
|
||||||
|
title)))
|
||||||
|
`(file ,(concat "~/org/capture/" template))))))
|
||||||
|
entries
|
||||||
|
"\n")
|
||||||
|
#+end_src
|
||||||
|
|
||||||
|
#+RESULTS[3de52378bf07bf60f73ab9ff4f26beafabb1ef12]: org-capture-shortcuts-gen
|
||||||
|
#+begin_example
|
||||||
|
("e" "Email")
|
||||||
|
("ew" "Write Email" entry
|
||||||
|
(file+headline org-default-notes-file "Emails")
|
||||||
|
(file "~/org/capture/email.orgcaptmpl"))
|
||||||
|
("j" "Journal" entry
|
||||||
|
(file+datetree org-journal-file ##)
|
||||||
|
(file "~/org/capture/journal.orgcaptmpl"))
|
||||||
|
("l" "Link")
|
||||||
|
("ll" "General" entry
|
||||||
|
(file+headline org-default-notes-file "General")
|
||||||
|
(file "~/org/capture/link.orgcaptmpl"))
|
||||||
|
("ly" "YouTube" entry
|
||||||
|
(file+headline org-default-notes-file "YouTube")
|
||||||
|
(file "~/org/capture/youtube.orgcaptmpl"))
|
||||||
|
("L" "Protocol Link" entry
|
||||||
|
(file+headline org-default-notes-file "Link")
|
||||||
|
(file "~/org/capture/protocol-link.orgcaptmpl"))
|
||||||
|
("n" "Notes")
|
||||||
|
("nc" "Conlanging" entry
|
||||||
|
(file+headline org-conlanging-file "Note")
|
||||||
|
(file "~/org/capture/notes.orgcaptmpl"))
|
||||||
|
("nn" "General" entry
|
||||||
|
(file+headline org-default-notes-file "General")
|
||||||
|
(file "~/org/capture/notes.orgcaptmpl"))
|
||||||
|
("nN" "Novel" entry
|
||||||
|
(file+headline org-novel-notes-file "Note")
|
||||||
|
(file "~/org/capture/notes.orgcaptmpl"))
|
||||||
|
("nq" "Quote" entry
|
||||||
|
(file+headline org-default-notes-file "Quote")
|
||||||
|
(file "~/org/capture/notes-quote.orgcaptmpl"))
|
||||||
|
("nw" "Worldbuilding" entry
|
||||||
|
(file+headline org-wordbuilding-file "Note")
|
||||||
|
(file "~/org/capture/notes.orgcaptmpl"))
|
||||||
|
("N" "Novel")
|
||||||
|
("Ni" "Ideas" entry
|
||||||
|
(file+headline org-novel-notes-file "Ideas")
|
||||||
|
(file "~/org/capture/notes.orgcaptmpl"))
|
||||||
|
("p" "Protocol" entry
|
||||||
|
(file+headline org-default-notes-file "Link")
|
||||||
|
(file "~/org/capture/protocol.orgcaptmpl"))
|
||||||
|
("r" "Resources")
|
||||||
|
("rc" "Conlanging" entry
|
||||||
|
(file+headline org-conlanging-file "Resources")
|
||||||
|
(file "~/org/capture/resource.orgcaptmpl"))
|
||||||
|
("re" "Emacs" entry
|
||||||
|
(file+headline org-default-notes-file "Emacs")
|
||||||
|
(file "~/org/capture/resource.orgcaptmpl"))
|
||||||
|
("ri" "Informatique" entry
|
||||||
|
(file+headline org-default-notes-file "Informatique")
|
||||||
|
(file "~/org/capture/resource.orgcaptmpl"))
|
||||||
|
("rl" "Linguistics" entry
|
||||||
|
(file+headline org-default-notes-file "Linguistics")
|
||||||
|
(file "~/org/capture/resource.orgcaptmpl"))
|
||||||
|
("rL" "Linux" entry
|
||||||
|
(file+headline org-default-notes-file "Linux")
|
||||||
|
(file "~/org/capture/resource.orgcaptmpl"))
|
||||||
|
("rw" "Worldbuilding" entry
|
||||||
|
(file+headline org-wordbuilding-file "Resources")
|
||||||
|
(file "~/org/capture/resource.orgcaptmpl"))
|
||||||
|
("t" "Tasks")
|
||||||
|
("tb" "Birthday" entry
|
||||||
|
(file+headline org-private-agenda-file "Birthday")
|
||||||
|
(file "~/org/capture/birthday.orgcaptmpl"))
|
||||||
|
("te" "Event" entry
|
||||||
|
(file+headline org-private-agenda-file "Event")
|
||||||
|
(file "~/org/capture/event.orgcaptmpl"))
|
||||||
|
("th" "Health" entry
|
||||||
|
(file+headline org-private-agenda-file "Health")
|
||||||
|
(file "~/org/capture/health.orgcaptmpl"))
|
||||||
|
("ti" "Informatique" entry
|
||||||
|
(file+headline org-private-agenda-file "Informatique")
|
||||||
|
(file "~/org/capture/informatique.orgcaptmpl"))
|
||||||
|
#+end_example
|
||||||
|
|
||||||
|
The capture templates are set like so:
|
||||||
|
#+name: org-capture-templates
|
||||||
|
#+begin_src emacs-lisp :tangle no :results silent
|
||||||
|
(setq org-capture-templates
|
||||||
|
'(
|
||||||
|
<<org-capture-shortcuts-gen()>>))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
*** Exporters
|
*** Exporters
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: Packages-Configuration-Org-mode-File-exportik95fl6184j0
|
:CUSTOM_ID: Packages-Configuration-Org-mode-File-exportik95fl6184j0
|
||||||
|
Loading…
Reference in New Issue
Block a user