summaryrefslogtreecommitdiff
path: root/config/init-notes.el
blob: 55d362056797e52baf1f313ffe6bcd15d76d159d (plain) (blame)
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
;;; init-notes.el --- for notes and tasks -*- lexical-binding: t -*-
;; Author: Franck Cuny <franck@fcuny.net>

;;; Commentary:

;; commentary

;;; Code:

(use-package howm
  :ensure t
  :init
  ;; Org-compatible filenames and syntax.
  (setq howm-file-name-format "%Y/%m/%Y-%m-%d-%H%M%S.org")
  (setq howm-view-title-header "*")

  ;; Use ripgrep for fast searching.
  (setq howm-view-use-grep t)
  (setq howm-view-grep-command "rg")
  (setq howm-view-grep-option "-nH --no-heading --color never")
  (setq howm-view-grep-extended-option nil)
  (setq howm-view-grep-fixed-option "-F")
  (setq howm-view-grep-expr-option nil)
  (setq howm-view-grep-file-stdin-option nil)

  ;; Make the "comefrom links" case-insensitive.
  (setq howm-keyword-case-fold-search t)

  ;; Get rid of the old-fashioned separators.
  (setq howm-view-summary-sep "\t")

  ;; Where to store data.
  (setq howm-directory "~/Documents/notes")
  (setq howm-home-directory howm-directory)
  :config
  (custom-set-faces
   '(howm-menu-list-face ((t (:foreground "#a9a9a9"))))
   '(howm-reminder-normal-face ((t (:foreground "#ab82ff"))))
   '(howm-reminder-today-face ((t (:background "#993333" :foreground "white"))))
   '(howm-reminder-todo-face ((t (:foreground "#ffb90f"))))))

(use-package org
  :hook
  (org-mode . turn-on-flyspell)
  (org-mode . visual-line-mode)
  (org-mode . org-indent-mode)

  :custom
  (org-directory "~/Documents/notes")
  
  (org-startup-folded t)
  (org-startup-indented t)
  (org-startup-with-inline-images t)

  ;; enable todo and checkbox dependencies
  (org-enforce-todo-dependencies t)
  (org-enforce-todo-checkbox-dependencies t)

  (org-hide-emphasis-markers t)
  (org-hide-leading-stars t)
  (org-pretty-entities t)

  (org-return-follows-link t)

  (org-export-backends '(html md))

  (org-imenu-depth 4)

  (org-insert-heading-respect-content t)

  (org-outline-path-complete-in-steps nil)

  (org-src-fontify-natively t)
  (org-src-preserve-indentation t)
  (org-src-tab-acts-natively t)
  (org-src-window-setup 'current-window)

  (org-yank-adjusted-subtrees t)

  (org-structure-template-alist
   '(("s" . "src")
     ("E" . "src emacs-lisp")
     ("p" . "src python")
     ("e" . "example")
     ("q" . "quote")
     ("V" . "verbatim"))))

(use-package org-auto-tangle
  :ensure t
  :hook (org-mode . org-auto-tangle-mode))

(use-package org-babel
  :no-require t
  :after (org)
  :config
  (org-babel-do-load-languages
   'org-babel-load-languages
   '((python     . t)
     (emacs-lisp . t)
     (calc       . t)
     (shell      . t)
     (sql        . t)
     (dot        . t)))
  (remove-hook 'kill-emacs-hook 'org-babel-remove-temporary-directory)
  (advice-add 'org-babel-edit-prep:emacs-lisp :after
              #'(lambda (_info) (run-hooks 'emacs-lisp-mode-hook))))

(provide 'init-notes)

;;; init-notes.el ends here