dotfiles/dot_config/emacs/lisp/init-org.el

102 lines
3.8 KiB
EmacsLisp

;;; org-mode.el --- org-mode customizations -*- lexical-binding: t -*-
;; Author: Andrew Scott <git at andyscott dot me>
;; Keywords: org, convenience, tools
;; URL: https://codeberg.org/andyscott/dotfiles
;; This file is not part of GNU Emacs
;; Copyright (c) 2024 Andrew Scott
;; MIT No Attribution
;; Permission is hereby granted, free of charge, to any person obtaining a copy of this
;; software and associated documentation files (the "Software"), to deal in the Software
;; without restriction, including without limitation the rights to use, copy, modify,
;; merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
;; permit persons to whom the Software is furnished to do so.
;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
;; INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
;; PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
;; HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
;; OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
;;; Commentary:
;; My org-mode customizations.
;;; Code:
(use-package org
:bind
(:map global-map
("C-c a" . org-agenda)
("C-c c" . org-capture)
("C-c l" . org-store-link))
:config
(setopt org-agenda-files (list (concat org-directory "/personal")
(concat org-directory "/projects")
(concat org-directory "/work"))
org-hide-emphasis-markers t
org-log-done 'time
org-return-follows-link t
org-todo-keywords '((sequence "TODO(t)" "IN-PROGRESS(i@/!)" "|"
"DONE(d!)" "BLOCKED(b@)" "WONT-DO(w@/!)" ))
org-todo-keyword-faces '(("TODO" . (icon-button))
("IN-PROGRESS" . (tool-bar))
("BLOCKED" . (match))
("WONT-DO" . (org-done))))
(setopt org-capture-templates
`(
("m" "Personal")
("mj" "Log Entry"
entry (file+datetree ,(concat org-directory "/personal/log.org"))
"* %?"
:empty-lines 1)
("mn" "Note"
entry (file+headline ,(concat org-directory "/personal/notes.org") "Note to self...")
"* %?"
:empty-lines 1)
("mt" "Todo"
entry (file+headline ,(concat org-directory "/personal/todo.org") "Personal Tasks")
"* TODO [#B] %?\n:Created: %T\n "
:empty-lines 1)
("p" "Projects")
("pn" "Note"
entry (file+headline ,(concat org-directory "/projects/notes.org") "Project Notes")
"** %?"
:empty-lines 1)
("pt" "Todo"
entry (file+headline ,(concat org-directory "/projects/todo.org") "Project Tasks")
"* TODO [#B] %?\n:Created: %T\n%i\n%a\nNotes: "
:empty-lines 0)
("w" "Work")
("wn" "Note"
entry (file+headline "~/Nextcloud/Documents/org/work/notes.org" "Work notes")
"** %?"
:empty-lines 0)
("wt" "Todo"
entry (file+headline "~/Nextcloud/Documents/org/work/todo.org" "Work tasks")
"* TODO [#B] %?\n:Created: %T\n%i\n%a\nNotes: "
:empty-lines 0)))
:hook (org-mode . org-indent-mode)
:init
(setopt org-directory "~/Nextcloud/Documents/org")
;; (bind-keys :prefix-map as/org-prefix-map
;; :prefix "C-c o"
;; ("d" . org-priority-down)
;; ("u" . org-priority-up)
;; ("r" . org-shiftmetaright)
;; ("l" . org-shiftmetaleft))
)
(provide 'init-org)
;;; org-mode.el ends here