Move personal stuff into it's own file, and add ledger

This commit is contained in:
Vedang Manerikar 2024-12-05 16:50:30 +05:30
parent e094755949
commit 306b7ac694
5 changed files with 692 additions and 662 deletions

View file

@ -0,0 +1,324 @@
;;; Personal Basic settings
(use-package emacs
:ensure nil
:config
(setq user-mail-address "vedang@unravel.tech"))
;;;; org-capture
(use-package org-capture
:ensure nil
:config
;;; Default definitions for variables used in capture templates
(when (not (boundp 'org-blogpost-file))
(defvar org-blogpost-file org-default-notes-file
"File in which blogposts and microblogposts are stored."))
(when (not (boundp 'org-company-file))
(defvar org-company-file org-default-notes-file
"File in which company documentation is stored."))
;;; *CRITICAL NOTE* Read before modifying the push stack below:
;; Pushing to capture templates is a stack. What goes in first shows
;; up at the bottom of the capture templates list.
;;; Templates for thinking tools
(push '("T" "Templates for Helping Me Think") org-capture-templates)
;; Capture a decision that you've taken, for review and reflection later.
(push `("Td" "Decision Journal" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.decision.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create a Current Reality Tree for a problem
(push `("Tc" "Current Reality Tree" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.crt.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create an Evaporating Cloud for a problem
(push `("Te" "Evaporating Cloud" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.ec.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create a Future Reality Tree for a problem
(push `("Tf" "Future Reality Tree" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.frt.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create a Prerequisite Tree for a problem
(push `("Tp" "Prerequisite Tree" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.prt.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create a Transition Tree for a problem
(push `("Tt" "Transition Tree" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.trt.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Capture a new Business idea for sketching out / thinking through
(push `("Tb" "Business Canvas" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/business.canvas.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Capture a customer persona, note that this is always captured in
;; the current clocking task, and is something I should do under the
;; business canvas.
(push `("TP" "Customer Persona (under Business Canvas)" entry
(clock)
(file ,(expand-file-name "capture-templates/business.customer.persona.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Capture a customer journey through your product, note that this is
;; always captured in the current clocking task
(push `("Tj" "Customer Journey (under Business Canvas)" entry
(clock)
(file ,(expand-file-name "capture-templates/business.customer.journey.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;;; Templates for capturing data about myself on a day-to-day basis
(push '("d" "Templates for Capturing Data (personal)") org-capture-templates)
;; Capture weight / food. This seems hard to get into a laptop habit.
;; This is the kind of quantitative life that a mobile solution would
;; have helped with.
(push `("dw" "Weight Tracking" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/bodylog.weight.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t
:empty-lines 1)
org-capture-templates)
(push `("df" "Food Tracking" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/bodylog.food.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t
:empty-lines 1)
org-capture-templates)
(push `("dd" "Downtime Tracking" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/bodylog.dt.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t
:empty-lines 1)
org-capture-templates)
;;; Templates for capturing build in public ideas
(push '("b" "Templates for Capturing Build in Public") org-capture-templates)
;; Capture Micro-blogging
(push `("bm" "New Microblogging entry" entry
(file+olp+datetree org-blogpost-file "Microblogging")
(file ,(expand-file-name "capture-templates/microblog.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; New blogpost idea
(push `("bb" "New Blogpost entry" entry
(file+headline org-blogpost-file "Meta: Blogposts to write")
(file ,(expand-file-name "capture-templates/todo.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;;; Templates for when I want to capture specific feedback about something
(push '("f" "Templates for Feedback, Reflection, Journaling") org-capture-templates)
;; Capture feedback for people I am working with
(push `("fp" "Feedback for People I'm working with" item
(file+headline org-company-file "Feedback")
(file ,(expand-file-name "capture-templates/feedback.others.org" user-emacs-directory))
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; The monthly newsletter to send to investors, friends and mentors
(push `("fn" "Company Newsletters" entry
(file+headline org-company-file "Company Newsletters")
(file ,(expand-file-name "capture-templates/business.updates.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Capture suggestions / ideas from other people, which can be
;; expanded into actual projects later.
(push `("fs" "Ideas and Suggestions" entry
(file+headline org-company-file "Ideas and Suggestions")
(file ,(expand-file-name "capture-templates/suggestion.org" user-emacs-directory))
:prepend t
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;;; Templates for planning on a day-to-day basis
(push '("p" "Templates for Planning") org-capture-templates)
;; Deliberately plan out and make a routine out of start of day and
;; end of day activities.
(push `("ps" "The Start of Day Planning Routine" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/workday.start.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
(push `("pe" "The End of Day Reflection Routine" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/workday.end.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
(push `("pn" "The Next Day Intentions Routine" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/workday.next.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;;; Templates for capturing meetings, events, something happening at this time
(push '("m" "Templates for Capturing Meetings or Events") org-capture-templates)
;; Capture an upcoming meeting or one that has already happened
(push `("mp" "Meeting some other day" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/meeting.org" user-emacs-directory))
:prepend t
:clock-in t
:clock-resume t
:time-prompt t)
org-capture-templates)
;; Capture notes for an ongoing meeting or a meeting that's already
;; happened.
(push `("mn" "Meeting today" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/meeting.org" user-emacs-directory))
:prepend t
:clock-in t
:clock-resume t)
org-capture-templates)
;;; Templates for Capturing Tasks
(push '("t" "Templates for Capturing Tasks") org-capture-templates)
;; Set up a new habit for tracking. This should be refiled to the
;; correct location later.
(push `("th" "Habit" entry
(file+headline org-default-notes-file "My Habit Tracker")
(file ,(expand-file-name "capture-templates/habit.org" user-emacs-directory)))
org-capture-templates)
;; One-click Capture for replying to emails from notmuch. Creates a
;; task to remind you that you need to reply to this email.
(push `("tr" "Respond to email" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/reply.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t)
org-capture-templates)
;; One-click capture of links from the clipboard. Used in conjunction
;; with `org-protocol', or as a stand-alone to capture links.
(push `("tw" "Website Link Immediate Capture" entry
(file+olp org-default-notes-file "Links Captured from the Browser")
(file ,(expand-file-name "capture-templates/website.org" user-emacs-directory))
:immediate-finish t)
org-capture-templates)
;; A more nuanced capture for browser links, which I use for cleaning
;; out my browser 2/3 times a week.
(push `("tl" "Website Link Pinboard Capture" entry
(file+olp org-default-notes-file "Links Captured from the Browser")
(file ,(expand-file-name "capture-templates/pinboard.capture.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t)
org-capture-templates)
;; Capture a task where someone expects me to communicate when it's done
(push `("tj" "Jira or External-facing Task" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/jira.org" user-emacs-directory))
:clock-in t
:clock-resume t)
org-capture-templates)
;; One-click Capture for Tasks. Captures the task immediately and gets
;; out of your way.
(push `("ti" "Simple Task Immediate Finish" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/todo.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t)
org-capture-templates))
;;; Ledger for personal finance management, plain-text accounting
(use-package ledger-mode
:ensure t)
(provide 'vedang-personal)

View file

@ -94,3 +94,4 @@ making an abbreviation to a function."
(require 'unravel-org)
(require 'unravel-shell)
(require 'unravel-langs)
(require 'vedang-personal)

View file

@ -405,6 +405,7 @@ Now we are ready to load our per-module configuration files:
(require 'unravel-org)
(require 'unravel-shell)
(require 'unravel-langs)
(require 'vedang-personal)
#+end_src
* The =unravel-theme.el= module
@ -5327,350 +5328,6 @@ Clojure is my favorite programming language, and it has been my bread and butter
(provide 'unravel-langs)
#+end_src
* The =unravel-personal.el= module
:PROPERTIES:
:CUSTOM_ID: h:0EAB9FBA-98AD-4E0E-BC01-71D1EC920B8D
:END:
I want this section to contain all the personal configuration that anyone using this repo should modify. But I don't know how to do this properly at the moment, so just noting things here until then.
NOTE: All these settings are being added after the provide form, which is a big no-no. I don't know how to fix this at the moment.
** My personal user settings
:PROPERTIES:
:CUSTOM_ID: h:9757A878-D383-47F4-94FD-98374954F83A
:CREATED: [2024-11-28 Thu 16:19]
:END:
#+begin_src emacs-lisp :tangle "unravel-modules/unravel-essentials.el"
(use-package emacs
:ensure nil
:config
(setq user-mail-address "vedang@unravel.tech"))
#+end_src
** My personal settings for ~org-capture~
:PROPERTIES:
:CUSTOM_ID: h:12636C22-D561-4726-8B37-10BD21737D54
:CREATED: [2024-11-28 Thu 16:20]
:END:
#+begin_src emacs-lisp :tangle "unravel-modules/unravel-org.el"
;;;; org-capture
(use-package org-capture
:ensure nil
:config
;;; Default definitions for variables used in capture templates
(when (not (boundp 'org-blogpost-file))
(defvar org-blogpost-file org-default-notes-file
"File in which blogposts and microblogposts are stored."))
(when (not (boundp 'org-company-file))
(defvar org-company-file org-default-notes-file
"File in which company documentation is stored."))
;;; *CRITICAL NOTE* Read before modifying the push stack below:
;; Pushing to capture templates is a stack. What goes in first shows
;; up at the bottom of the capture templates list.
;;; Templates for thinking tools
(push '("T" "Templates for Helping Me Think") org-capture-templates)
;; Capture a decision that you've taken, for review and reflection later.
(push `("Td" "Decision Journal" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.decision.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create a Current Reality Tree for a problem
(push `("Tc" "Current Reality Tree" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.crt.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create an Evaporating Cloud for a problem
(push `("Te" "Evaporating Cloud" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.ec.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create a Future Reality Tree for a problem
(push `("Tf" "Future Reality Tree" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.frt.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create a Prerequisite Tree for a problem
(push `("Tp" "Prerequisite Tree" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.prt.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create a Transition Tree for a problem
(push `("Tt" "Transition Tree" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.trt.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Capture a new Business idea for sketching out / thinking through
(push `("Tb" "Business Canvas" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/business.canvas.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Capture a customer persona, note that this is always captured in
;; the current clocking task, and is something I should do under the
;; business canvas.
(push `("TP" "Customer Persona (under Business Canvas)" entry
(clock)
(file ,(expand-file-name "capture-templates/business.customer.persona.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Capture a customer journey through your product, note that this is
;; always captured in the current clocking task
(push `("Tj" "Customer Journey (under Business Canvas)" entry
(clock)
(file ,(expand-file-name "capture-templates/business.customer.journey.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;;; Templates for capturing data about myself on a day-to-day basis
(push '("d" "Templates for Capturing Data (personal)") org-capture-templates)
;; Capture weight / food. This seems hard to get into a laptop habit.
;; This is the kind of quantitative life that a mobile solution would
;; have helped with.
(push `("dw" "Weight Tracking" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/bodylog.weight.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t
:empty-lines 1)
org-capture-templates)
(push `("df" "Food Tracking" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/bodylog.food.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t
:empty-lines 1)
org-capture-templates)
(push `("dd" "Downtime Tracking" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/bodylog.dt.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t
:empty-lines 1)
org-capture-templates)
;;; Templates for capturing build in public ideas
(push '("b" "Templates for Capturing Build in Public") org-capture-templates)
;; Capture Micro-blogging
(push `("bm" "New Microblogging entry" entry
(file+olp+datetree org-blogpost-file "Microblogging")
(file ,(expand-file-name "capture-templates/microblog.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; New blogpost idea
(push `("bb" "New Blogpost entry" entry
(file+headline org-blogpost-file "Meta: Blogposts to write")
(file ,(expand-file-name "capture-templates/todo.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;;; Templates for when I want to capture specific feedback about something
(push '("f" "Templates for Feedback, Reflection, Journaling") org-capture-templates)
;; Capture feedback for people I am working with
(push `("fp" "Feedback for People I'm working with" item
(file+headline org-company-file "Feedback")
(file ,(expand-file-name "capture-templates/feedback.others.org" user-emacs-directory))
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; The monthly newsletter to send to investors, friends and mentors
(push `("fn" "Company Newsletters" entry
(file+headline org-company-file "Company Newsletters")
(file ,(expand-file-name "capture-templates/business.updates.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Capture suggestions / ideas from other people, which can be
;; expanded into actual projects later.
(push `("fs" "Ideas and Suggestions" entry
(file+headline org-company-file "Ideas and Suggestions")
(file ,(expand-file-name "capture-templates/suggestion.org" user-emacs-directory))
:prepend t
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;;; Templates for planning on a day-to-day basis
(push '("p" "Templates for Planning") org-capture-templates)
;; Deliberately plan out and make a routine out of start of day and
;; end of day activities.
(push `("ps" "The Start of Day Planning Routine" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/workday.start.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
(push `("pe" "The End of Day Reflection Routine" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/workday.end.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
(push `("pn" "The Next Day Intentions Routine" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/workday.next.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;;; Templates for capturing meetings, events, something happening at this time
(push '("m" "Templates for Capturing Meetings or Events") org-capture-templates)
;; Capture an upcoming meeting or one that has already happened
(push `("mp" "Meeting some other day" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/meeting.org" user-emacs-directory))
:prepend t
:clock-in t
:clock-resume t
:time-prompt t)
org-capture-templates)
;; Capture notes for an ongoing meeting or a meeting that's already
;; happened.
(push `("mn" "Meeting today" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/meeting.org" user-emacs-directory))
:prepend t
:clock-in t
:clock-resume t)
org-capture-templates)
;;; Templates for Capturing Tasks
(push '("t" "Templates for Capturing Tasks") org-capture-templates)
;; Set up a new habit for tracking. This should be refiled to the
;; correct location later.
(push `("th" "Habit" entry
(file+headline org-default-notes-file "My Habit Tracker")
(file ,(expand-file-name "capture-templates/habit.org" user-emacs-directory)))
org-capture-templates)
;; One-click Capture for replying to emails from notmuch. Creates a
;; task to remind you that you need to reply to this email.
(push `("tr" "Respond to email" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/reply.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t)
org-capture-templates)
;; One-click capture of links from the clipboard. Used in conjunction
;; with `org-protocol', or as a stand-alone to capture links.
(push `("tw" "Website Link Immediate Capture" entry
(file+olp org-default-notes-file "Links Captured from the Browser")
(file ,(expand-file-name "capture-templates/website.org" user-emacs-directory))
:immediate-finish t)
org-capture-templates)
;; A more nuanced capture for browser links, which I use for cleaning
;; out my browser 2/3 times a week.
(push `("tl" "Website Link Pinboard Capture" entry
(file+olp org-default-notes-file "Links Captured from the Browser")
(file ,(expand-file-name "capture-templates/pinboard.capture.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t)
org-capture-templates)
;; Capture a task where someone expects me to communicate when it's done
(push `("tj" "Jira or External-facing Task" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/jira.org" user-emacs-directory))
:clock-in t
:clock-resume t)
org-capture-templates)
;; One-click Capture for Tasks. Captures the task immediately and gets
;; out of your way.
(push `("ti" "Simple Task Immediate Finish" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/todo.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t)
org-capture-templates))
#+end_src
* Custom libraries
** The =prot-common.el= library
:PROPERTIES:
@ -7640,3 +7297,369 @@ Also see `prot-window-delete-popup-frame'." command)
;;; pet.el ends here
#+end_src
** The =vedang-personal.el= module
:PROPERTIES:
:CUSTOM_ID: h:0EAB9FBA-98AD-4E0E-BC01-71D1EC920B8D
:END:
I want this section to contain all the personal configuration that anyone using this repo should modify. But I don't know how to do this properly at the moment, in a way such that it's part of the repo, and yet only exported for me. I'll update this section as and when I figure it out.
*** My personal user settings
:PROPERTIES:
:CUSTOM_ID: h:9757A878-D383-47F4-94FD-98374954F83A
:CREATED: [2024-11-28 Thu 16:19]
:END:
#+begin_src emacs-lisp :tangle "custom-lisp/vedang-personal.el" :mkdirp yes
;;; Personal Basic settings
(use-package emacs
:ensure nil
:config
(setq user-mail-address "vedang@unravel.tech"))
#+end_src
*** My personal settings for ~org-capture~
:PROPERTIES:
:CUSTOM_ID: h:12636C22-D561-4726-8B37-10BD21737D54
:CREATED: [2024-11-28 Thu 16:20]
:END:
#+begin_src emacs-lisp :tangle "custom-lisp/vedang-personal.el"
;;;; org-capture
(use-package org-capture
:ensure nil
:config
;;; Default definitions for variables used in capture templates
(when (not (boundp 'org-blogpost-file))
(defvar org-blogpost-file org-default-notes-file
"File in which blogposts and microblogposts are stored."))
(when (not (boundp 'org-company-file))
(defvar org-company-file org-default-notes-file
"File in which company documentation is stored."))
;;; *CRITICAL NOTE* Read before modifying the push stack below:
;; Pushing to capture templates is a stack. What goes in first shows
;; up at the bottom of the capture templates list.
;;; Templates for thinking tools
(push '("T" "Templates for Helping Me Think") org-capture-templates)
;; Capture a decision that you've taken, for review and reflection later.
(push `("Td" "Decision Journal" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.decision.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create a Current Reality Tree for a problem
(push `("Tc" "Current Reality Tree" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.crt.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create an Evaporating Cloud for a problem
(push `("Te" "Evaporating Cloud" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.ec.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create a Future Reality Tree for a problem
(push `("Tf" "Future Reality Tree" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.frt.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create a Prerequisite Tree for a problem
(push `("Tp" "Prerequisite Tree" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.prt.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create a Transition Tree for a problem
(push `("Tt" "Transition Tree" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.trt.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Capture a new Business idea for sketching out / thinking through
(push `("Tb" "Business Canvas" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/business.canvas.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Capture a customer persona, note that this is always captured in
;; the current clocking task, and is something I should do under the
;; business canvas.
(push `("TP" "Customer Persona (under Business Canvas)" entry
(clock)
(file ,(expand-file-name "capture-templates/business.customer.persona.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Capture a customer journey through your product, note that this is
;; always captured in the current clocking task
(push `("Tj" "Customer Journey (under Business Canvas)" entry
(clock)
(file ,(expand-file-name "capture-templates/business.customer.journey.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;;; Templates for capturing data about myself on a day-to-day basis
(push '("d" "Templates for Capturing Data (personal)") org-capture-templates)
;; Capture weight / food. This seems hard to get into a laptop habit.
;; This is the kind of quantitative life that a mobile solution would
;; have helped with.
(push `("dw" "Weight Tracking" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/bodylog.weight.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t
:empty-lines 1)
org-capture-templates)
(push `("df" "Food Tracking" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/bodylog.food.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t
:empty-lines 1)
org-capture-templates)
(push `("dd" "Downtime Tracking" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/bodylog.dt.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t
:empty-lines 1)
org-capture-templates)
;;; Templates for capturing build in public ideas
(push '("b" "Templates for Capturing Build in Public") org-capture-templates)
;; Capture Micro-blogging
(push `("bm" "New Microblogging entry" entry
(file+olp+datetree org-blogpost-file "Microblogging")
(file ,(expand-file-name "capture-templates/microblog.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; New blogpost idea
(push `("bb" "New Blogpost entry" entry
(file+headline org-blogpost-file "Meta: Blogposts to write")
(file ,(expand-file-name "capture-templates/todo.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;;; Templates for when I want to capture specific feedback about something
(push '("f" "Templates for Feedback, Reflection, Journaling") org-capture-templates)
;; Capture feedback for people I am working with
(push `("fp" "Feedback for People I'm working with" item
(file+headline org-company-file "Feedback")
(file ,(expand-file-name "capture-templates/feedback.others.org" user-emacs-directory))
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; The monthly newsletter to send to investors, friends and mentors
(push `("fn" "Company Newsletters" entry
(file+headline org-company-file "Company Newsletters")
(file ,(expand-file-name "capture-templates/business.updates.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Capture suggestions / ideas from other people, which can be
;; expanded into actual projects later.
(push `("fs" "Ideas and Suggestions" entry
(file+headline org-company-file "Ideas and Suggestions")
(file ,(expand-file-name "capture-templates/suggestion.org" user-emacs-directory))
:prepend t
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;;; Templates for planning on a day-to-day basis
(push '("p" "Templates for Planning") org-capture-templates)
;; Deliberately plan out and make a routine out of start of day and
;; end of day activities.
(push `("ps" "The Start of Day Planning Routine" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/workday.start.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
(push `("pe" "The End of Day Reflection Routine" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/workday.end.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
(push `("pn" "The Next Day Intentions Routine" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/workday.next.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;;; Templates for capturing meetings, events, something happening at this time
(push '("m" "Templates for Capturing Meetings or Events") org-capture-templates)
;; Capture an upcoming meeting or one that has already happened
(push `("mp" "Meeting some other day" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/meeting.org" user-emacs-directory))
:prepend t
:clock-in t
:clock-resume t
:time-prompt t)
org-capture-templates)
;; Capture notes for an ongoing meeting or a meeting that's already
;; happened.
(push `("mn" "Meeting today" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/meeting.org" user-emacs-directory))
:prepend t
:clock-in t
:clock-resume t)
org-capture-templates)
;;; Templates for Capturing Tasks
(push '("t" "Templates for Capturing Tasks") org-capture-templates)
;; Set up a new habit for tracking. This should be refiled to the
;; correct location later.
(push `("th" "Habit" entry
(file+headline org-default-notes-file "My Habit Tracker")
(file ,(expand-file-name "capture-templates/habit.org" user-emacs-directory)))
org-capture-templates)
;; One-click Capture for replying to emails from notmuch. Creates a
;; task to remind you that you need to reply to this email.
(push `("tr" "Respond to email" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/reply.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t)
org-capture-templates)
;; One-click capture of links from the clipboard. Used in conjunction
;; with `org-protocol', or as a stand-alone to capture links.
(push `("tw" "Website Link Immediate Capture" entry
(file+olp org-default-notes-file "Links Captured from the Browser")
(file ,(expand-file-name "capture-templates/website.org" user-emacs-directory))
:immediate-finish t)
org-capture-templates)
;; A more nuanced capture for browser links, which I use for cleaning
;; out my browser 2/3 times a week.
(push `("tl" "Website Link Pinboard Capture" entry
(file+olp org-default-notes-file "Links Captured from the Browser")
(file ,(expand-file-name "capture-templates/pinboard.capture.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t)
org-capture-templates)
;; Capture a task where someone expects me to communicate when it's done
(push `("tj" "Jira or External-facing Task" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/jira.org" user-emacs-directory))
:clock-in t
:clock-resume t)
org-capture-templates)
;; One-click Capture for Tasks. Captures the task immediately and gets
;; out of your way.
(push `("ti" "Simple Task Immediate Finish" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/todo.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t)
org-capture-templates))
#+end_src
*** My personal settings for Ledger management
:PROPERTIES:
:CUSTOM_ID: h:D9F36A31-49C6-4481-9CE0-CF4A1616A4CF
:CREATED: [2024-12-05 Thu 16:45]
:END:
I use the incredible ledger-mode for all my personal finance tracking
#+begin_src emacs-lisp :tangle "custom-lisp/vedang-personal.el"
;;; Ledger for personal finance management, plain-text accounting
(use-package ledger-mode
:ensure t)
#+end_src
*** Finally, we provide the =unravel-langs.el= module
:PROPERTIES:
:CUSTOM_ID: h:29100A9B-3142-4458-8CE1-43798EB9AA13
:CREATED: [2024-12-05 Thu 16:47]
:END:
#+begin_src emacs-lisp :tangle "custom-lisp/vedang-personal.el"
(provide 'vedang-personal)
#+end_src

View file

@ -200,9 +200,4 @@ If the region is selected, retain the original behaviour, otherwise call
(use-package helpful
:ensure t)
(use-package emacs
:ensure nil
:config
(setq user-mail-address "vedang@unravel.tech"))
(provide 'unravel-essentials)

View file

@ -613,317 +613,4 @@ If WEEK-NUM is not provided, use the current week."
(setq org-habit-preceding-days 9)
(setq org-habit-show-all-today t))
;;;; org-capture
(use-package org-capture
:ensure nil
:config
;;; Default definitions for variables used in capture templates
(when (not (boundp 'org-blogpost-file))
(defvar org-blogpost-file org-default-notes-file
"File in which blogposts and microblogposts are stored."))
(when (not (boundp 'org-company-file))
(defvar org-company-file org-default-notes-file
"File in which company documentation is stored."))
;;; *CRITICAL NOTE* Read before modifying the push stack below:
;; Pushing to capture templates is a stack. What goes in first shows
;; up at the bottom of the capture templates list.
;;; Templates for thinking tools
(push '("T" "Templates for Helping Me Think") org-capture-templates)
;; Capture a decision that you've taken, for review and reflection later.
(push `("Td" "Decision Journal" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.decision.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create a Current Reality Tree for a problem
(push `("Tc" "Current Reality Tree" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.crt.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create an Evaporating Cloud for a problem
(push `("Te" "Evaporating Cloud" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.ec.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create a Future Reality Tree for a problem
(push `("Tf" "Future Reality Tree" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.frt.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create a Prerequisite Tree for a problem
(push `("Tp" "Prerequisite Tree" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.prt.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Create a Transition Tree for a problem
(push `("Tt" "Transition Tree" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/thinking.trt.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Capture a new Business idea for sketching out / thinking through
(push `("Tb" "Business Canvas" entry
(file+headline org-default-notes-file "Helping Me Think")
(file ,(expand-file-name "capture-templates/business.canvas.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Capture a customer persona, note that this is always captured in
;; the current clocking task, and is something I should do under the
;; business canvas.
(push `("TP" "Customer Persona (under Business Canvas)" entry
(clock)
(file ,(expand-file-name "capture-templates/business.customer.persona.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Capture a customer journey through your product, note that this is
;; always captured in the current clocking task
(push `("Tj" "Customer Journey (under Business Canvas)" entry
(clock)
(file ,(expand-file-name "capture-templates/business.customer.journey.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;;; Templates for capturing data about myself on a day-to-day basis
(push '("d" "Templates for Capturing Data (personal)") org-capture-templates)
;; Capture weight / food. This seems hard to get into a laptop habit.
;; This is the kind of quantitative life that a mobile solution would
;; have helped with.
(push `("dw" "Weight Tracking" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/bodylog.weight.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t
:empty-lines 1)
org-capture-templates)
(push `("df" "Food Tracking" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/bodylog.food.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t
:empty-lines 1)
org-capture-templates)
(push `("dd" "Downtime Tracking" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/bodylog.dt.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t
:empty-lines 1)
org-capture-templates)
;;; Templates for capturing build in public ideas
(push '("b" "Templates for Capturing Build in Public") org-capture-templates)
;; Capture Micro-blogging
(push `("bm" "New Microblogging entry" entry
(file+olp+datetree org-blogpost-file "Microblogging")
(file ,(expand-file-name "capture-templates/microblog.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; New blogpost idea
(push `("bb" "New Blogpost entry" entry
(file+headline org-blogpost-file "Meta: Blogposts to write")
(file ,(expand-file-name "capture-templates/todo.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;;; Templates for when I want to capture specific feedback about something
(push '("f" "Templates for Feedback, Reflection, Journaling") org-capture-templates)
;; Capture feedback for people I am working with
(push `("fp" "Feedback for People I'm working with" item
(file+headline org-company-file "Feedback")
(file ,(expand-file-name "capture-templates/feedback.others.org" user-emacs-directory))
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; The monthly newsletter to send to investors, friends and mentors
(push `("fn" "Company Newsletters" entry
(file+headline org-company-file "Company Newsletters")
(file ,(expand-file-name "capture-templates/business.updates.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;; Capture suggestions / ideas from other people, which can be
;; expanded into actual projects later.
(push `("fs" "Ideas and Suggestions" entry
(file+headline org-company-file "Ideas and Suggestions")
(file ,(expand-file-name "capture-templates/suggestion.org" user-emacs-directory))
:prepend t
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;;; Templates for planning on a day-to-day basis
(push '("p" "Templates for Planning") org-capture-templates)
;; Deliberately plan out and make a routine out of start of day and
;; end of day activities.
(push `("ps" "The Start of Day Planning Routine" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/workday.start.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
(push `("pe" "The End of Day Reflection Routine" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/workday.end.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
(push `("pn" "The Next Day Intentions Routine" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/workday.next.org" user-emacs-directory))
:prepend nil
:clock-in t
:clock-resume t
:empty-lines 1)
org-capture-templates)
;;; Templates for capturing meetings, events, something happening at this time
(push '("m" "Templates for Capturing Meetings or Events") org-capture-templates)
;; Capture an upcoming meeting or one that has already happened
(push `("mp" "Meeting some other day" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/meeting.org" user-emacs-directory))
:prepend t
:clock-in t
:clock-resume t
:time-prompt t)
org-capture-templates)
;; Capture notes for an ongoing meeting or a meeting that's already
;; happened.
(push `("mn" "Meeting today" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/meeting.org" user-emacs-directory))
:prepend t
:clock-in t
:clock-resume t)
org-capture-templates)
;;; Templates for Capturing Tasks
(push '("t" "Templates for Capturing Tasks") org-capture-templates)
;; Set up a new habit for tracking. This should be refiled to the
;; correct location later.
(push `("th" "Habit" entry
(file+headline org-default-notes-file "My Habit Tracker")
(file ,(expand-file-name "capture-templates/habit.org" user-emacs-directory)))
org-capture-templates)
;; One-click Capture for replying to emails from notmuch. Creates a
;; task to remind you that you need to reply to this email.
(push `("tr" "Respond to email" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/reply.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t)
org-capture-templates)
;; One-click capture of links from the clipboard. Used in conjunction
;; with `org-protocol', or as a stand-alone to capture links.
(push `("tw" "Website Link Immediate Capture" entry
(file+olp org-default-notes-file "Links Captured from the Browser")
(file ,(expand-file-name "capture-templates/website.org" user-emacs-directory))
:immediate-finish t)
org-capture-templates)
;; A more nuanced capture for browser links, which I use for cleaning
;; out my browser 2/3 times a week.
(push `("tl" "Website Link Pinboard Capture" entry
(file+olp org-default-notes-file "Links Captured from the Browser")
(file ,(expand-file-name "capture-templates/pinboard.capture.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t)
org-capture-templates)
;; Capture a task where someone expects me to communicate when it's done
(push `("tj" "Jira or External-facing Task" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/jira.org" user-emacs-directory))
:clock-in t
:clock-resume t)
org-capture-templates)
;; One-click Capture for Tasks. Captures the task immediately and gets
;; out of your way.
(push `("ti" "Simple Task Immediate Finish" entry
(file+olp+datetree org-default-notes-file)
(file ,(expand-file-name "capture-templates/todo.org" user-emacs-directory))
:clock-in t
:clock-resume t
:immediate-finish t)
org-capture-templates))
(provide 'unravel-org)