diff --git a/home/emacs/config.org b/home/emacs/config.org index 49de11ac..160397d1 100644 --- a/home/emacs/config.org +++ b/home/emacs/config.org @@ -3,13 +3,103 @@ #+EMAIL: evie@xenia.me.uk #+FILETAGS: :emacs:config:org: -* TODO Initial config +* Common defaults +* Org-mode +For reference information, see [[https://orgmode.com][Org-mode website]] + +#+BEGIN_SRC emacs-lisp :results output silent + (setq org-directory "~/Org" + org-default-notes-file (expand-file-name "notes.org" org-directory) + org-pretty-entities-include-sub-superscripts t + org-pretty-entities-include-sub-superscripts t + org-tags-column 0 + org-modern-tag nil + org-outline-path-complete-in-steps nil + org-refile-use-outline-path t + org-refile-allow-creating-parent-nodes t + org-refile-use-outline-path 'file + org-refile-targets '((nil :maxlevel . 3) + (org-agenda-files :maxlevel . 3))) +#+END_SRC + +** Keymaps +#+begin_src emacs-lisp :results output silent + (keymap-global-set "C-c o a" #'org-agenda) + (keymap-global-set "C-c o n" #'org-capture) + (keymap-global-set "C-c o l" #'org-capture-goto-last-stored) + (keymap-global-set "C-c o j j" #'org-journal-new-entry) + (keymap-global-set "C-c o j n" #'org-journal-new-date-entry) + (keymap-global-set "C-c o j s" #'org-journal-new-scheduled-entry) + + (add-hook 'org-mode-hook #'org-modern-mode) + (add-hook 'org-agenda-finalize-hook #'org-modern-agenda) +#+end_src + +** org-agenda +#+begin_src emacs-lisp :results output silent + (setq org-agenda-files (list (expand-file-name org-directory) + (expand-file-name "journal" org-directory) + (expand-file-name "projects" org-directory)) + org-agenda-sticky nil + org-agenda-window-setup 'current-window + org-agenda-prefix-format '((agenda . " %-12:c%?-12t% s") + (todo . " %-12:c") + (tags . " %-12:c") + (search . " %-12:c"))) +#+end_src + +** org-journal +#+BEGIN_SRC emacs-lisp :results output silent + (setq org-journal-dir (expand-file-name "journal" org-directory) + org-journal-file-type 'monthly + org-journal-file-format "%Y-%m.org") +#+END_SRC + +** Capture templates +#+BEGIN_SRC emacs-lisp :results output silent + (setq org-capture-templates + '(("n" "Note" entry + (file+headline "inbox.org" "Note") + "* %?" + :prepend t + :empty-lines 1) + ("t" "Task" entry + (file+headline "inbox.org" "Task") + "* TODO %?" + :prepend t + :empty-lines 1) + )) +#+END_SRC + +** Citar +#+begin_src emacs-lisp :results output silent + (setq citar-bibliography '("~/.references/main.bib") + citar-library-paths '("~/.references/library") + citar-notes-paths '("~/.references/notes") + citar-symbols '((file "F" . "󰂺") + (note "N" . "󰎞") + (link "L" . "󰌹"))) + (when (require 'citar nil :noerror) + (keymap-global-set "C-c o c o" #'citar-open)) +#+end_src + +** Khalel +#+begin_src emacs-lisp :results output silent + (setq khalel-import-org-file (expand-file-name "calendar.org" org-directory) + khalel-import-org-file-read-only nil + khalel-import-org-file-confirm-overwrite nil + khalel-import-start-date "-30d" + khalel-import-end-date "+30d") + (when (require 'khalel nil :noerror) + (add-hook 'org-agenda-mode-hook #'khalel-import-events) + (khalel-add-capture-template "e")) +#+end_src * Copy (to sort) For now I'll just copy all config into this file, to confirm that it works properly. Will reorganise into separate sections later -** Init.el +** TODO Init.el #+BEGIN_SRC emacs-lisp ;;; Initial phase. @@ -43,7 +133,7 @@ Will reorganise into separate sections later (set-keyboard-coding-system 'utf-8) #+END_SRC -** Defaults +** TODO Defaults #+BEGIN_SRC emacs-lisp ;;; Code: (setq load-prefer-newer t @@ -84,7 +174,7 @@ Will reorganise into separate sections later #+END_SRC -** UI +** TODO UI #+BEGIN_SRC emacs-lisp (setq use-dialog-box nil fill-column 80 @@ -202,7 +292,7 @@ Will reorganise into separate sections later #+END_SRC -** Email +** TODO Email #+BEGIN_SRC emacs-lisp (setq sendmail-program (executable-find "msmtp") send-mail-function #'smtpmail-send-it @@ -292,7 +382,7 @@ Will reorganise into separate sections later #+END_SRC -** Feeds +** TODO Feeds #+BEGIN_SRC emacs-lisp (let ((elfeed-base-directory "~/.elfeed")) (setq elfeed-db-directory (expand-file-name "db" elfeed-base-directory) @@ -308,7 +398,7 @@ Will reorganise into separate sections later (elfeed-tube-setup))) #+END_SRC -** IDE +** TODO IDE #+BEGIN_SRC emacs-lisp (when (require 'rainbow-delimiters nil :noerror) (add-hook 'prog-mode-hook #'rainbow-delimiters-mode)) @@ -334,7 +424,7 @@ Will reorganise into separate sections later (add-hook 'prog-mode-hook #'yas-minor-mode)) #+END_SRC -*** Ligatures +*** TODO Ligatures #+BEGIN_SRC emacs-lisp (defun fira-code-mode--make-alist (list) "Generate prettify-symbols alist from LIST." @@ -396,7 +486,7 @@ Will reorganise into separate sections later (fira-code-mode) #+END_SRC -** Media +** TODO Media #+BEGIN_SRC emacs-lisp (when (require 'emms-setup nil :noerror) (setq emms-player-list '(emms-player-mpv) @@ -421,74 +511,7 @@ Will reorganise into separate sections later ("P" emms-pause)))) #+END_SRC -** Org -#+BEGIN_SRC emacs-lisp - (setq org-directory "~/Org" - org-pretty-entities-include-sub-superscripts t - org-pretty-entities-include-sub-superscripts t - org-tags-column 0 - org-modern-tag nil - org-agenda-files '("~/Org/" "~/Org/journal/" "~/Org/projects/") - org-agenda-sticky t - org-agenda-window-setup 'current-window - org-agenda-prefix-format '((agenda . " %-12:c%?-12t% s") - (todo . " %-12:c") - (tags . " %-12:c") - (search . " %-12:c")) - org-journal-dir (expand-file-name "journal" org-directory) - org-journal-file-type 'monthly - org-journal-file-format "%Y-%m.org" - org-refile-use-outline-path t - org-refile-allow-creating-parent-nodes t - org-refile-use-outline-path 'file - org-refile-targets '((nil :maxlevel . 3) - (org-agenda-files :maxlevel . 3)) - org-outline-path-complete-in-steps nil - org-default-notes-file (expand-file-name "notes.org" org-directory)) - - (keymap-global-set "C-c o a" #'org-agenda) - (keymap-global-set "C-c o n" #'org-capture) - (keymap-global-set "C-c o l" #'org-capture-goto-last-stored) - (keymap-global-set "C-c o j j" #'org-journal-new-entry) - (keymap-global-set "C-c o j n" #'org-journal-new-date-entry) - (keymap-global-set "C-c o j s" #'org-journal-new-scheduled-entry) - - (add-hook 'org-mode-hook #'org-modern-mode) - (add-hook 'org-agenda-finalize-hook #'org-modern-agenda) - - (setq org-capture-templates - '(("n" "Note" entry - (file+headline "inbox.org" "Note") - "* %?" - :prepend t - :empty-lines 1) - ("t" "Task" entry - (file+headline "inbox.org" "Task") - "* TODO %?" - :prepend t - :empty-lines 1) - )) - - (setq citar-bibliography '("~/.references/main.bib") - citar-library-paths '("~/.references/library") - citar-notes-paths '("~/.references/notes") - citar-symbols '((file "F" . "󰂺") - (note "N" . "󰎞") - (link "L" . "󰌹"))) - (when (require 'citar nil :noerror) - (keymap-global-set "C-c o c o" #'citar-open)) - - (setq khalel-import-org-file (expand-file-name "calendar.org" org-directory) - khalel-import-org-file-read-only nil - khalel-import-org-file-confirm-overwrite nil - khalel-import-start-date "-30d" - khalel-import-end-date "+30d") - (when (require 'khalel nil :noerror) - (add-hook 'org-agenda-mode-hook #'khalel-import-events) - (khalel-add-capture-template "e")) -#+END_SRC - -** Project +** TODO Project #+BEGIN_SRC emacs-lisp (setq project-switch-use-entire-map t project-switch-commands @@ -502,14 +525,14 @@ Will reorganise into separate sections later (require 'magit nil :noerror) #+END_SRC -** Social +** TODO Social #+BEGIN_SRC emacs-lisp (setq mastodon-instance-url "https://tech.lgbt" mastodon-active-user "Tux922") (require 'mastodon nil :noerror) #+END_SRC -** Completion (Crafted) +** TODO Completion (Crafted) #+BEGIN_SRC emacs-lisp ;;; Vertico (when (require 'vertico nil :noerror) @@ -616,7 +639,7 @@ Will reorganise into separate sections later (add-hook 'eshell-mode-hook #'crafted-completion-corfu-eshell)) #+END_SRC -** IDE (Crafted) +** TODO IDE (Crafted) #+BEGIN_SRC emacs-lisp ;;; Eglot (defun crafted-ide--add-eglot-hooks (mode-list) @@ -711,7 +734,7 @@ Will reorganise into separate sections later (add-hook 'ibuffer-hook #'crafted-ide-enhance-ibuffer-with-ibuffer-project)) #+END_SRC -** Org (Crafted) +** TODO Org (Crafted) #+BEGIN_SRC emacs-lisp ;; Return or left-click with mouse follows link (customize-set-variable 'org-return-follows-link t) @@ -745,7 +768,7 @@ Will reorganise into separate sections later (add-hook 'org-mode-hook #'crafted-org-enhance-electric-pair-inhibit-predicate) #+END_SRC -** Workspaces (Crafted) +** TODO Workspaces (Crafted) #+BEGIN_SRC emacs-lisp (with-eval-after-load 'tabspaces (customize-set-variable 'tabspaces-use-filtered-buffers-as-default t) @@ -759,7 +782,7 @@ Will reorganise into separate sections later (project--ensure-read-project-list) #+END_SRC -** Writing (Crafted) +** TODO Writing (Crafted) #+BEGIN_SRC emacs-lisp ;;; Whitespace (defun crafted-writing-configure-whitespace (use-tabs &optional use-globally &rest enabled-modes)