emacs/org/config-org-capture.el

261 lines
9.5 KiB
EmacsLisp

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; inspiration for conditional capture template : https://storax.github.io/blog/2016/05/02/org-capture-tricks/
; helper functions
(defvar my-capture-prmt-history nil
"History of prompt answers for org capture.")
(defun my/prmt (prompt variable)
"PROMPT for string, save it to VARIABLE and insert it."
(make-local-variable variable)
(set variable (read-string (concat prompt ": ") nil my-capture-prmt-history)))
(defun my/inc (what text &rest fmtvars)
"Ask user to include WHAT. If user agrees return TEXT."
(when (y-or-n-p (concat "Include " what "?"))
(apply 'format text fmtvars)))
(defun my/inc_date (what prefix)
"Ask user to include a date. If user agrees prompt for date."
(when (y-or-n-p (concat "Include " what "?"))
(concat prefix (org-time-stamp nil))))
; orgmode capture templates
(when (not kmn/is-dayjob)
(setq org-capture-templates '(
("d" "TODO (Main)" entry
(file "~/org/orgzly/_todo.org")
(file "~/org/template_todo.org")
:prepend t
:immediate-finish "f"
:jump-to-captured "t"
)
("s" "TODO (Slipbox)" entry
(file "~/org/orgzly/_slipbox.org")
(file "~/org/template_slipbox.org")
:prepend t
:immediate-finish "f"
:jump-to-captured "t"
)
("b" "Blog Post" entry
(file+headline "~/org/blog/_blog.org" "Drafts")
(file "~/org/template_blog.org")
)
("g" "Gaming")
("gd" "Destiny")
("gdc" "To Do - Crafted Gun"
entry (id "65a28e9e-e484-4722-8a25-4fbf0a8dea2c")
(file "~/org/games/template_game_destiny_gun.org")
:prepend t
:immediate-finish "f"
:jump-to-captured "t"
:unnarrowed "t"
)
("gw" "Warframe")
("gwd" "Daily Reset"
entry (file+headline "~/org/games/games_warframe.org" "Daily / Weekly Reset")
(file "~/org/games/template_game_warframe_daily_reset.org")
:prepend t
:immediate-finish "f"
:jump-to-captured "t"
:unnarrowed "t"
)
("gww" "Weekly Reset"
entry (file+headline "~/org/games/games_warframe.org" "Daily / Weekly Reset")
(file "~/org/games/template_game_warframe_weekly_reset.org")
:prepend t
:immediate-finish "f"
:jump-to-captured "t"
:unnarrowed "t"
)
("gwt" "To Do"
entry (file+headline "~/org/games/games_warframe.org" "To Do")
"** TODO %^{Heading}\n%?"
:immediate-finish "f"
:jump-to-captured "t"
:unnarrowed "t"
:prepend "t"
)
("h" "Health")
("hc" "Couples")
("hch" "Homework"
entry (file+headline "~/org/health/health_couples.org" "Homework")
"** TODO %^{Heading} :health:couples:homework:\n%?"
:immediate-finish "f"
:jump-to-captured "t"
:unnarrowed "t"
)
("hcl" "Log Entry"
entry (file+datetree "~/org/health/health_couples.org" "Log")
"* %^{Timestamp}U %^{Text} :health:couples:log:%^g\n%?"
:time-prompt "t"
:immediate-finish "f"
:jump-to-captured "t"
:unnarrowed "f"
)
("hcd" "Appointment noteworthy developments / [time] in review"
entry (file+headline "~/org/health/health_couples.org" "To Do")
"** READY [#A] %^{Heading} :health:couples:appointment:%^g\nDEADLINE: %^t\n%?"
:immediate-finish "f"
:jump-to-captured "t"
:unnarrowed "t"
:prepend "t"
)
("hca" "Appointment Notes"
entry (file+datetree "~/org/health/health_couples.org" "Log")
"* %^{Timestamp}U %^{Text} :health:couples:appointment:%^g\n%?"
:time-prompt "t"
:immediate-finish "f"
:jump-to-captured "t"
:unnarrowed "t"
)
("hm" "Mike")
("hmh" "Homework"
entry (file+headline "~/org/health/health_mike.org" "Homework")
"** TODO %^{Heading} :health::homework:\n%?"
:immediate-finish "f"
:jump-to-captured "t"
:unnarrowed "t"
)
("hml" "Log Entry"
entry (file+datetree "~/org/health/health_mike.org" "Log")
"* %^{Timestamp}U %^{Text} :health:log:%^g\n%?"
:time-prompt "t"
:immediate-finish "f"
:jump-to-captured "t"
:unnarrowed "f"
)
("hmd" "Appointment noteworthy developments / [time] in review"
entry (file+headline "~/org/health/health_mike.org" "To Do")
"** READY [#A] %^{Heading} :health:appointment:%^g\nDEADLINE: %^t\n%?"
:immediate-finish "f"
:jump-to-captured "t"
:unnarrowed "t"
:prepend "t"
)
("hma" "Appointment Notes"
entry (file+datetree "~/org/health/health_mike.org" "Log")
"* %^{Timestamp}U %^{Text} :health:appointment:%^g\n%?"
:time-prompt "t"
:immediate-finish "f"
:jump-to-captured "t"
:unnarrowed "t"
)
("hmw" "Weight"
entry (file+datetree "~/org/health/health_mike.org" "Log")
"* %^{Timestamp}U %^{Weight} lbs %?:weight:"
:time-prompt "t"
:immediate-finish "t"
:jump-to-captured "t"
:unnarrowed "t"
)
("hmx" "Anxiety Entry"
entry (file+datetree "~/org/health/health_mike.org" "Log")
"* %^{Timestamp}U %^{Text} :panic:\n** Level (0-10/none-strong): %^{Level}\n** What brought on your feelings of anxiety or panic?\n%?\n** Anxiety and Panic Responses\n*** Physical Sensations\nlist the physical sensations you felt during your anxiety response\ne.g. dizziness, shortness of breath, blushing, sweating, muscle tension. Indicate three that frighten you the most.\n*** Thoughts and Images\nlist the thoughts you had when anticipating or experiencing your anxiety response\ne.g. 'im having a heart attack', 'im losign control', 'something terrible will happen'\n*** Behaviors and Actions\nlist the behaviors you exhibited or actions you took as a result of your anxiety response\n"
:time-prompt "t"
:immediate-finish "f"
:jump-to-captured "t"
:unnarrowed "t"
)
("hmj" "mmj")
("hmjc" "mmj - sugar cube"
entry (file+datetree "~/org/health/health_mike.org" "Log")
"* %^{Timestamp}U Sugar Cube :mmj:\n :PROPERTIES:\n :THC: %^{THC}\n :CBD: %^{CBD}\n :Quantity: %^{Quantity}\n :END:"
:time-prompt "t"
:immediate-finish "t"
:jump-to-captured "t"
:unnarrowed "t"
)
("hmjf" "mmj - flower"
entry (file+datetree "~/org/health/health_mike.org" "Log")
"* %^{Timestamp}U Flower :mmj:\n :PROPERTIES:\n :THC: %^{THC}\n :CBD: %^{CBD}\n :Quantity: %^{Quantity}\n :END:"
:time-prompt "t"
:immediate-finish "t"
:jump-to-captured "t"
:unnarrowed "t"
)
("hh" "Houdini")
("hhl" "Log Entry"
entry (file+datetree "~/org/health/health_houdini.org" "Log")
"* %^{Timestamp}U %^{Text} %^g\n%?"
:time-prompt "t"
:immediate-finish "t"
:jump-to-captured "t"
:unnarrowed "t"
)
("hhf" "Food"
entry (file+datetree "~/org/health/health_houdini.org" "Log")
"* %^{Timestamp}U %^{Food} - %^{Amount} :food:%?"
:time-prompt "t"
:immediate-finish "t"
:jump-to-captured "t"
:unnarrowed "t"
)
("hhm" "Medication"
entry (file+datetree "~/org/health/health_houdini.org" "Log")
"* %^{Timestamp}U %^{Medication} :medication:%?"
:time-prompt "t"
:immediate-finish "t"
:jump-to-captured "t"
:unnarrowed "t"
)
("hhw" "Weight"
entry (file+datetree "~/org/health/health_houdini.org" "Log")
"* %^{Timestamp}U %^{Weight} lbs %?:weight:"
:time-prompt "t"
:immediate-finish "t"
:jump-to-captured "t"
:unnarrowed "t"
)
("p" "Photography")
("pt" "Theme (Film)" entry
(file+headline "~/org/photography/film.org" "Themes - Active")
(file "~/org/photography/template_theme.org")
:empty-lines-before 1
)
("pi" "Theme (Instant Film)" entry
(file+headline "~/org/photography/instant_film.org" "Themes - Active")
(file "~/org/photography/template_instant_film_theme.org")
:empty-lines-before 1
)
("r" "Recipe")
("rs" "Standard" plain
(file "~/org/culinary/_recipes.org")
(file "~/org/culinary/template_recipe.org")
:empty-lines-before 1
)
("rb" "Budget Bytes" plain
(file "~/org/culinary/_recipes.org")
(file "~/org/culinary/template_budget_bytes.org")
:empty-lines-before 1
)
("t" "Trip" entry
(file+headline "~/org/trips.org" "Planned")
(file "~/org/template_trip.org")
:empty-lines-before 1
)
))
)
(when kmn/is-dayjob
(setq org-capture-templates '(
("d" "TODO (Main)" entry
(file "~/org/_todo.org")
(file "~/org/template_todo.org")
:prepend t
:immediate-finish "f"
:jump-to-captured "t"
)
("s" "TODO (Slipbox)" entry
(file "~/org/_slipbox.org")
(file "~/org/template_slipbox.org")
:prepend t
:immediate-finish "f"
:jump-to-captured "t"
)
("p" "Deployment" entry
(file "~/org/_todo.org")
(file "~/org/template_deploy.org")
:prepend t
:immediate-finish "f"
:jump-to-captured "t"
)
))
)