summaryrefslogtreecommitdiff
path: root/emacs/.config/emacs-v2/lisp/kj-org.el
diff options
context:
space:
mode:
Diffstat (limited to 'emacs/.config/emacs-v2/lisp/kj-org.el')
-rw-r--r--emacs/.config/emacs-v2/lisp/kj-org.el251
1 files changed, 0 insertions, 251 deletions
diff --git a/emacs/.config/emacs-v2/lisp/kj-org.el b/emacs/.config/emacs-v2/lisp/kj-org.el
deleted file mode 100644
index b6fda9c..0000000
--- a/emacs/.config/emacs-v2/lisp/kj-org.el
+++ /dev/null
@@ -1,251 +0,0 @@
-;;; -*- lexical-binding: t; -*-
-
-(use-package org
- :config
- (org-babel-do-load-languages 'org-babel-load-languages
- '((emacs-lisp . t)
- (sql . t)
- (shell . t)))
- (setq org-confirm-babel-evaluate nil
- org-return-follows-link t
- )
-
- ;; Install the link type
- (org-add-link-type "notmuch" 'org-notmuch-open)
- (add-hook 'org-store-link-functions 'org-notmuch-store-link)
-
- (defun org-notmuch-store-link ()
- "Store a link to a notmuch search or message."
- (when (eq major-mode 'notmuch-show-mode)
- (let* ((message-id (notmuch-show-get-prop :id))
- (subject (notmuch-show-get-subject))
- (to (notmuch-show-get-to))
- (from (notmuch-show-get-from))
- desc link)
- (org-store-link-props :type "notmuch" :from from :to to
- :subject subject :message-id message-id)
- (setq desc (org-email-link-description))
- (setq link (concat "notmuch:" "id:" message-id))
- (org-add-link-props :link link :description desc)
- link)))
-
- (defun org-notmuch-open (path)
- "Follow a notmuch message link specified by PATH."
- (org-notmuch-follow-link path))
-
- (defun org-notmuch-follow-link (search)
- "Follow a notmuch link to SEARCH.
-
-Can link to more than one message, if so all matching messages are shown."
- (require 'notmuch)
- (notmuch-show (org-link-unescape search)))
-
- (org-add-link-type "notmuch-search" 'org-notmuch-search-open)
- (add-hook 'org-store-link-functions 'org-notmuch-search-store-link)
-
- (defun org-notmuch-search-store-link ()
- "Store a link to a notmuch search or message."
- (when (eq major-mode 'notmuch-search-mode)
- (let ((link (concat "notmuch-search:"
- (org-link-escape notmuch-search-query-string)))
- (desc (concat "Notmuch search: " notmuch-search-query-string)))
- (org-store-link-props :type "notmuch-search"
- :link link
- :description desc)
- link)))
-
- (defun org-notmuch-search-open (path)
- "Follow a notmuch message link specified by PATH."
- (message path)
- (org-notmuch-search-follow-link path))
-
- (defun org-notmuch-search-follow-link (search)
- "Follow a notmuch link by displaying SEARCH in notmuch-search mode."
- (require 'notmuch)
- (notmuch-search (org-link-unescape search)))
-
- ;; 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)
-
- (defvar org-publish-project-alist)
- (defun kj/find-agenda-files-containing-tag (tag)
- (setq org-agenda-archives-mode nil)
- (let* ((org-agenda-archives-mode nil)
- (candidates (org-agenda-files nil 'ifmode))
- (matcher (cdr (org-make-tags-matcher tag)))
- (files))
- ;; (message "Results:")
- (dolist (file candidates files)
- (org-check-agenda-file file)
- (with-current-buffer (org-get-agenda-file-buffer file)
- ;; (message "%S" (org-scan-tags 'agenda matcher nil))
- (when (org-scan-tags 'agenda matcher nil)
- (push file files))))))
-
- (defun kj/org-publish (&optional project force)
- (interactive)
- (setq project (or project "all"))
- (setq force (or force current-prefix-arg))
- (setq org-agenda-files (list org-roam-directory))
- (let* ((static-files-re (string-join '("css" "txt" "jpg" "png" "gif" "svg") "\\|"))
- (files-to-include (kj/find-agenda-files-containing-tag kj/publish-tag))
- ;; Disable org babel exports during publish entirely to speed up publish.
- ;; This messes up babel output handling.
- ;; (org-export-use-babel nil)
- (org-babel-default-header-args
- (kj/assq-replace '((:exports . "both")
- (:eval . "never-export"))
- org-babel-default-header-args))
- (org-publish-project-alist
- `(
- ("static"
- :base-directory ,(concat org-roam-directory "/static")
- :base-extension ,static-files-re
- :recursive t
- :publishing-directory ,(concat kj/publish-directory "/static")
- :publishing-function org-publish-attachment)
- ("source"
- :base-directory ,org-roam-directory
- :base-extension "org"
- :exclude ".*"
- :include ,files-to-include
- :recursive t
- :publishing-directory ,kj/publish-directory
- :publishing-function org-publish-attachment)
- ("html"
- :base-directory ,org-roam-directory
- :base-extension "org"
- :recursive t
- :exclude ".*"
- :include ,files-to-include
- :publishing-directory ,kj/publish-directory
- :publishing-function org-html-publish-to-html
-
- :with-broken-links t
- :with-toc nil
- :with-latex t
- :with-drawers t
- :with-title t
- :section-numbers nil
-
- ;; HTML options
- :html-toplevel-hlevel 2
- :html-preamble ""
- :html-postamble ""
- :html-html5-fancy t
- :html-doctype "html5"
- :html-head "<link rel=\"stylesheet\" type=\"text/css\" href=\"static/org.css\"/>"
- :html-head-include-scripts nil
- :html-head-include-default-style nil
- :html-container article)
-
- ("all" :components ("static" "source" "html")))))
-
- (org-publish project force)))
- ; (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
- :after org
- :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")) notifications nil))))
- :bind
- (("C-c o p" . org-pomodoro)))
-
-(use-package org-tidy
- :after org
- :hook (org-mode . org-tidy-mode))
-
-(provide 'kj-org)