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))