My configuration
I like to combine all of my personal knowledge into a central location; my
org-directory
and giornata-directory
are one and the same - their path being
~/journal
- while denote-directory
is located within a subdirectory called
notes/
.
~/journal
├── 2023/
├── 2024/
├── notes/
├── books.org
├── plants.org
├── tasks.org
└── tasks.org_archive
Of all the markup formats in its category, Markdown is clearly the most widely adopted and supported. I don't want to limit myself in terms of external integrations so Markdown seems like the right choice.
(setopt giornata-directory org-directory
giornata-front-matter "---\ndate: %A, %y-%m-%d\n---\n\n")
Journaling for me is about introspection, having today's journal entry as the welcome screen presents me with an opportunity to review my thoughts without demanding any additional action. I like to see the journal only past a particular hour of the day, 19:00, about the time I usually would've had something to write about.
(defun my-giornata-welcome-screen ()
"If nighttime, invoke `giornata-today' and return the buffer.
Otherwise, invoke `scratch-buffer'."
(let ((hour (decoded-time-hour (decode-time (current-time)))))
(cond ((>= hour 19) (giornata-today) (current-buffer))
(t (scratch-buffer)))))
(setopt initial-buffer-choice #'my-giornata-welcome-screen)
I've bound C-c j
to giornata-today
like so:
(keymap-global-set "C-c j" #'giornata-today)
I've taken away the keybindings of calendar
keeping only the few that matter
to me, mine are intuitive in the sense that they do not diverge from Emacs'
keybinding patterns.
(setq calendar-mode-map
(let ((map (make-keymap)))
(suppress-keymap map)
(dolist (symbol '(mark-word
mark-sexp mark-paragraph
mark-defun mark-whole-buffer mark-page
narrow-to-region downcase-region upcase-region
kill-region copy-region-as-kill capitalize-region
previous-line next-line))
(define-key map (vector 'remap symbol) 'calendar-not-implemented))
(keymap-set map "RET" #'giornata-from-calendar)
(keymap-set map "<mouse-1>" #'giornata-from-calendar)
(keymap-set map "q" #'calendar-exit)
(keymap-set map "t" #'calendar-goto-today)
(keymap-set map "f" #'calendar-forward-day)
(keymap-set map "b" #'calendar-backward-day)
(keymap-set map "M-f" #'calendar-forward-week)
(keymap-set map "M-b" #'calendar-backward-week)
(keymap-set map "C-f" #'calendar-forward-month)
(keymap-set map "C-b" #'calendar-backward-month)
(keymap-set map "C-x ]" #'calendar-forward-year)
(keymap-set map "C-x [" #'calendar-backward-year)
(keymap-set map "C-a" #'calendar-beginning-of-month)
(keymap-set map "C-e" #'calendar-end-of-month)
(keymap-set map "M-a" #'calendar-beginning-of-week)
(keymap-set map "M-e" #'calendar-end-of-week)
(keymap-set map "M-<" #'calendar-beginning-of-year)
(keymap-set map "M->" #'calendar-end-of-year)
(keymap-set map "M-=" #'calendar-count-days-region)
(keymap-set map "C-SPC" #'calendar-set-mark)
(keymap-set map "<remap> <kill-ring-save>" #'+calendar-copy-date-as-kill)
;; Hide the "Edit" and "Search" tabs from the menu bar
(keymap-set map "<menu-bar> <edit>" #'undefined)
(keymap-set map "<menu-bar> <search>" #'undefined)
map))