blob: b2691f573db89e3747df2b704a53cee6c2f11273 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
;; |------------------------------------|
;; | Org Config |
;; |------------------------------------|
(require 'bard-emacs-ui)
;; Org Variables
(setq org-directory "~/Notes/Org-Roam/")
(setq org-agenda-files (list "~/Notes/Org-Roam/todo.org"))
(add-hook 'org-mode-hook 'bard/text-hook)
(add-hook 'org-agenda-mode-hook 'hl-todo-mode)
;; Making org mode look nice
(setq org-startup-indented t
org-hide-emphasis-markers t
org-startup-with-inline-images t
org-image-actual-width '(300))
;; Org todo keywords
(setq org-todo-keywords
'((sequence "TODO" "WAIT" "DONE")))
;; Org Cliplink
(global-set-key (kbd "C-x p i") 'org-cliplink)
;; Org Agenda Faces
(custom-set-faces '(org-agenda-structure ((t (:inherit bold :foreground "#70a89f" :height 1.5 :family "Iosevka Comfy Motion Duo")))))
;; Org Agenda
(defun bard/choose-agenda ()
"For viewing my custom agenda"
(interactive)
(let ((agenda-views '("Default" "Monthly" "Yearly")))
(setq chosen-view (completing-read "Choose an agenda view: " agenda-views))
(cond
((string= chosen-view "Yearly")
(org-agenda nil "Y"))
((string= chosen-view "Monthly")
(org-agenda nil "M"))
((string= chosen-view "Default")
(org-agenda nil "D")))))
(global-set-key (kbd "<f6>") 'bard/choose-agenda)
;; Org Agenda
(setq org-agenda-custom-commands
`(("D" "Daily agenda and top priority tasks"
((tags-todo "*"
((org-agenda-skip-function '(org-agenda-skip-if nil '(timestamp)))
(org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done))
(org-agenda-overriding-header "All Tasks \n")))
(agenda "" ((org-agenda-span 1)
(org-agenda-start-day nil)
(org-deadline-warning-days 0)
(org-scheduled-past-days 0)
;; We don't need the `org-agenda-date-today'
;; highlight because that only has a practical
;; utility in multi-day views.
(org-agenda-day-face-function (lambda (date) 'org-agenda-date))
(org-agenda-format-date "%A %-e %B %Y")
(org-agenda-overriding-header "Today's agenda \n")))
;; write skip function that skips saturdays and sundays
(agenda "" ((org-agenda-span 7)
(org-deadline-warning-days 0)
(org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done))
(org-agenda-overriding-header "Upcoming this week \n")))))
("Y" "Yearly view for all tasks"
((agenda "" ((org-agenda-span 365)
(org-deadline-warning-days 2)
(org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done))
(org-agenda-overriding-header "Upcoming this Year\n")))))
("M" "Monthly view for all tasks"
((agenda "" ((org-agenda-span 31)
(org-deadline-warning-days 2)
(org-agenda-skip-function '(org-agenda-skip-entry-if 'todo 'done))
(org-agenda-overriding-header "Upcoming this month\n")))))))
;; Org capture templates
(define-key global-map (kbd "C-`") #'org-capture)
(require 'org-protocol)
(setq org-capture-templates
'(("h" "Homework" entry (file+olp "~/Notes/Org-Roam/todo.org" "Inbox" "Homework")
"* TODO %?")
("e" "Extra/Coding" entry (file+olp "~/Notes/Org-Roam/todo.org" "Inbox" "Extra/Coding")
"* TODO %?")
("r" "Reading List" entry (file+olp "~/Notes/Org-Roam/todo.org" "Inbox" "Immediate Reading List")
"* %?")
("p" "Protocol" entry (file+olp "~/Notes/Org-Roam/media.org" "Quotes")
"* Source: [[%:link][%:description]]\n#+BEGIN_QUOTE\n%i\n#+END_QUOTE\n%?")
("L" "Protocol Link" entry (file+olp "~/Notes/Org-Roam/media.org" "Watch/Read List")
"* [[%:link][%:description]] \nCaptured On: %U \n%?")
("j" "Journal" entry (file+datetree "~/Notes/Org-Roam/journal.org")
"* %U %^{Title}\n %?")
("a" "Appointments" entry (file+olp "~/Notes/Org-Roam/todo.org" "Appointments")
"* %^{Task}\n %^t\n %?")))
;; Org Roam capture templates
(setq org-roam-capture-templates
'(("d" "default" plain
"\n* Tags: \n%? \n\n"
:if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+TITLE: ${title}\n")
:unnarrowed t)
("n" "notes" plain
"\n\n\n* Tags :: %? \n\n* ${title} \n"
:if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+TITLE: ${title}\n")
:unnarrowed t)
("b" "bio" plain
"#+ANKI_DECK: Bio \n\n* Tags :: [[id:cfe7bda9-b154-4d6b-989f-6af778a98cbd][Biology]] \n\n* %? \n"
:if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+TITLE: ${title}\n")
:unnarrowed t)
("u" "apush" plain
"#+ANKI_DECK: APUSH \n\n* Tags :: [[id:06334c1d-5c06-4b70-bfd8-a074c0c36706][APUSH]] \n\n* %? \n"
:if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+TITLE: ${title}\n")
:unnarrowed t)
("s" "snapshot" plain
(file "~/Notes/Org/snapshot_template.org")
:if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+TITLE: ${title}\n")
:unnarrowed t)
("i" "idea" plain
"\n* Tags: \n%? \n\n"
:if-new (file+head "Ideas/%<%Y%m%d%H%M%S>-${slug}.org" "#+TITLE: ${title}\n")
:unnarrowed t)))
|