summaryrefslogtreecommitdiff
path: root/emacs/.config/emacs-kj/lisp/kj-org.el
blob: 9636df6c308dfcac628c1511ef2d046ec5768f47 (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
;;; -*- lexical-scope: t; -*-

(use-package org
  :config
  (org-babel-do-load-languages 'org-babel-load-languages
			       '((emacs-lisp . t)
				 (shell . t)))
  (setq org-confirm-babel-evaluate nil
        org-return-follows-link t
        )

  ;; If you use `org' and don't want your org files in the default location below,
;; change `org-directory'. It must be set before org loads!
(setq org-directory "~/org/")
(setq org-todo-keywords
      '((sequence
         "TODO(t)" "ACTIVE(a!)" "WAIT(w@/!)" "|" "DONE(d!)" "CANCELED(c@)")))
(setq org-refile-use-outline-path nil)
(setq org-refile-targets '((nil . (:maxlevel . 2))))
(setq org-log-into-drawer t)
(setq org-agenda-log-mode-items '(closed clock state))
(setq org-agenda-start-day nil)
(setq org-agenda-block-separator nil)
(setq org-agenda-compact-blocks t)
(setq org-agenda-start-with-log-mode nil)
(setq org-habit-show-all-today t)
(setq org-agenda-time-grid '((daily today require-timed) (800 1600) "......" "----------------------"))
(setq org-roam-directory (concat org-directory "roam/"))
(setq-default org-agenda-files '())
(dolist (file '("tasks.org"
                "running-2022.org"))
  (add-to-list 'org-agenda-files (concat org-roam-directory file)))
(setq org-roam-db-location (concat org-roam-directory "/org-roam.db"))
(setq org-export-with-toc nil)
(setq deft-directory org-directory)
(setq deft-recursive t)
;; Org html export
(setq org-html-htmlize-output-type 'css)
;; Website publish settings.
(defvar kj/publish-tag "publish")
(defvar kj/publish-directory "/ssh:orbekk@dragon.orbekk.com:/storage/srv/kj.orbekk.com")
(add-to-list 'org-modules 'org-habit)

					; (setq org-appear-autolinks t)
					; (use-package! org-appear
					;   :hook (org-mode . org-appear-mode))

(setq org-log-done 'time)
(setq org-todo-keywords
      '((sequence
         "TODO(t)"  ; A task that needs doing & is ready to do
         "PROJ(p)"  ; A project, which usually contains other tasks
         "LOOP(r)"  ; A recurring task
         "STRT(s)"  ; A task that is in progress
         "WAIT(w)"  ; Something external is holding up this task
         "HOLD(h)"  ; This task is paused/on hold because of me
         "IDEA(i)"  ; An unconfirmed and unapproved task or notion
         "|"
         "DONE(d!)"  ; Task successfully completed
         "KILL(k)") ; Task was cancelled, aborted or is no longer applicable
        (sequence
         "[ ](T)"   ; A task that needs doing
         "[-](S)"   ; Task is in progress
         "[?](W)"   ; Task is being held up or paused
         "|"
         "[X](D)")  ; Task was completed
        (sequence
         "|"
         "OKAY(o)"
         "YES(y)"
         "NO(n)")))

(setq org-journal-file-type 'weekly)
(setq org-journal-dir org-roam-directory)
(setq org-journal-file-format "journal-%Y-%m-%d.org")
(setq org-journal-enable-agenda-integration t)
(defun kj/org-journal-init ()
  (interactive)
  (save-excursion
    (goto-char (point-min))
    (org-id-get-create)
    (org-set-property "category" "journal")))

(defun kj/org-journal-file-header (time)
  (format-time-string "#+title: Week of %F (%W)\n"
                      (org-journal--convert-time-to-file-type-time time)))
(setq org-journal-file-header #'kj/org-journal-file-header)
(add-hook 'org-journal-after-header-create-hook 'kj/org-journal-init)

  ;; Org
  (add-to-list 'org-export-backends 'md)

  (require 'org-tempo))

(defun org-archive-done-tasks ()
  (interactive)
  (org-map-entries
   (lambda ()
     (org-archive-subtree)
     (setq org-map-continue-from (org-element-property :begin (org-element-at-point))))
   "/DONE" 'file))

(use-package org-pomodoro
  :ensure t
  :commands (org-pomodoro)
  :config
  (setq
   org-pomodoro-manual-break t
   org-pomodoro-time-format "%m"
   org-pomodoro-format "🍅%s"
   org-pomodoro-play-sounds nil
   alert-user-configuration (quote ((((:category . "org-pomodoro")) libnotify nil)))))

(provide 'kj-org)