From 894091ee557250dd7761e04c44576d39580ab02a Mon Sep 17 00:00:00 2001 From: Christopher James Hayward Date: Fri, 14 May 2021 17:14:59 -0400 Subject: [PATCH] (pinentry, writing) -> (roam, agenda, spelling, grammar) --- README.org | 2 +- docs/tasks.org.gpg | Bin 3139 -> 3167 bytes init.el | 2 +- modules/agenda.org | 38 +++++++ modules/grammar.org | 30 ++++++ modules/pinentry.org | 7 -- modules/roam.org | 167 ++++++++++++++++++++++++++++++ modules/spelling.org | 32 ++++++ modules/writing.org | 240 ------------------------------------------- 9 files changed, 269 insertions(+), 249 deletions(-) create mode 100644 modules/agenda.org create mode 100644 modules/grammar.org create mode 100644 modules/roam.org create mode 100644 modules/spelling.org delete mode 100644 modules/writing.org diff --git a/README.org b/README.org index 20abef1..fc493df 100644 --- a/README.org +++ b/README.org @@ -35,7 +35,7 @@ All of the options available for configuration are defined here. They may be ove terminal passwords pinentry desktop - writing + roam agenda spelling grammar presentations website capture diff --git a/docs/tasks.org.gpg b/docs/tasks.org.gpg index 0131d75f12e76c91981cc65852c939025daaf9ad..9584e9558fb051b3565b46254a6e6b5c653c2541 100644 GIT binary patch literal 3167 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 du7_vEN5R`J`8" + :head +" +,#+TITLE: %<%Y-%m-%d> +,#+AUTHOR: Christopher James Hayward + +,#+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil +,#+OPTIONS: skip:nil author:nil email:nil creator:nil timestamp:nil +")) +#+end_src + +* Templates + +Collection of capture templates for various contexts. Here is one for a generic document. + +#+begin_src emacs-lisp +(add-to-list 'org-roam-capture-templates + '("d" "Default" entry (function org-roam-capture--get-point) + "%?" + :file-name "docs/${slug}" + :unnarrowed t + :head +" +,#+TITLE: ${title} +,#+AUTHOR: Christopher James Hayward +,#+EMAIL: chris@chrishayward.xyz +")) +#+end_src + +** Course + +Capture template for a new course. Capture with =SPC r c c=. + +#+begin_src emacs-lisp +(add-to-list 'org-roam-capture-templates + '("c" "Course" plain (function org-roam-capture--get-point) + "%?" + :file-name "docs/courses/${slug}" + :unnarrowed t + :head +" +,#+TITLE: ${title} +,#+SUBTITLE: +,#+AUTHOR: Christopher James Hayward +,#+EMAIL: chris@chrishayward.xyz + +,#+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil +,#+OPTIONS: skip:nil author:nil email:nil creator:nil timestamp:nil +")) +#+end_src + +* Shortcuts + +Configure custom keybindings for ~org-roam~ behind =SPC r=: + ++ Find with =f= ++ Insert with =i= ++ Buffer with =b= ++ Capture with =c= + +#+begin_src emacs-lisp +(dotfiles/leader + "r" '(:ignore t :which-key "Roam") + "ri" '(org-roam-insert :which-key "Insert") + "rf" '(org-roam-find-file :which-key "Find") + "rc" '(org-roam-capture :which-key "Capture") + "rb" '(org-roam-buffer-toggle-display :which-key "Buffer")) +#+end_src + +Place keybindings for daily notes behind =SPC r d=: + ++ Date with =d= ++ Today with =t= ++ Tomorrow with =m= ++ Yesterday with =y= + +#+begin_src emacs-lisp +(dotfiles/leader + "rd" '(:ignore t :which-key "Dailies") + "rdd" '(org-roam-dailies-find-date :which-key "Date") + "rdt" '(org-roam-dailies-find-today :which-key "Today") + "rdm" '(org-roam-dailies-find-tomorrow :which-key "Tomorrow") + "rdy" '(org-roam-dailies-find-yesterday :which-key "Yesterday")) +#+end_src + +* Footnotes diff --git a/modules/spelling.org b/modules/spelling.org new file mode 100644 index 0000000..0dfd500 --- /dev/null +++ b/modules/spelling.org @@ -0,0 +1,32 @@ +#+TITLE: Spelling +#+AUTHOR: Christopher James Hayward +#+EMAIL: chris@chrishayward.xyz + +#+PROPERTY: header-args:emacs-lisp :tangle spelling.el :comments org +#+PROPERTY: header-args :results silent :eval no-export :comments org + +#+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil +#+OPTIONS: skip:nil author:nil email:nil creator:nil timestamp:nil + +Real time checking and one-shot methods to check and correct common spelling mistakes. + +* Config + +Configure ~ispell~ as a back-end with ~flyspell~ for real-time checking and highlighting of spelling mistakes. + +#+begin_src emacs-lisp +(use-package ispell + :after org + :custom (ispell-dictionary dotfiles/lang)) +#+end_src + +* Shortcuts + +Toggle highlighting within buffer specific contexts with =SPC t s=: + +#+begin_src emacs-lisp +(dotfiles/leader + "ts" '(flyspell-buffer :which-key "Spelling")) +#+end_src + +* Footnotes diff --git a/modules/writing.org b/modules/writing.org deleted file mode 100644 index 9ad0363..0000000 --- a/modules/writing.org +++ /dev/null @@ -1,240 +0,0 @@ -#+TITLE: Writing -#+AUTHOR: Christopher James Hayward -#+EMAIL: chris@chrishayward.xyz - -#+PROPERTY: header-args:emacs-lisp :tangle writing.el :comments org -#+PROPERTY: header-args :results silent :eval no-export :comments org - -#+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil -#+OPTIONS: skip:nil author:nil email:nil creator:nil timestamp:nil - -#+ATTR_ORG: :width 420px -#+ATTR_HTML: :width 420px -#+ATTR_LATEX: :width 420px -[[../docs/images/2021-02-13-example-roam.png]] - -I am using *Org mode*[fn:1] extensively throughout my writing. Most of the improvements are done in the [[file:core.org][Core]] module, but all of the management, encryption, synchronization, and organization of all of my writing happens here. - -* Improvements - -Real time checking and one-shot methods to check and correct common spelling and grammatical errors. - -** Spelling - -Configure *InteractiveSpell*[fn:2] as a backend with *FlySpell*[fn:3] for real time checking and highlighting. - -#+begin_src emacs-lisp -(use-package ispell - :after org - :custom (ispell-dictionary dotfiles/lang)) -#+end_src - -Toggle highlighting within buffers with =SPC t s=. - -#+begin_src emacs-lisp -(dotfiles/leader - "ts" '(flyspell-buffer :which-key "Spelling")) -#+end_src - -** Grammar - -I use *Writegood*[fn:4] to find common writing problems such as cliches and poor wording. Grammarly for the peons! - -#+begin_src emacs-lisp -(use-package writegood-mode - :after org - :config (writegood-mode)) -#+end_src - -Toggle *Writegood* mode with =SPC t w=. - -#+begin_src emacs-lisp -(dotfiles/leader - "tw" '(writegood-mode :which-key "Grammar")) -#+end_src - -* Knowledge base - -Download and install *Org roam*[fn:5], a plain text knowledge management system for Emacs built on top of *Org mode*[fn:1]. - -+ Notes can be arbitrarily referenced -+ Contexts created by linking topics and notes -+ Install dependencies on *Debian/Ubuntu* systems -+ Configure custom keybindings for roam behind =SPC r= - + Find with =f= - + Insert with =i= - + Buffer with =b= - + Capture with =c= - -#+begin_src emacs-lisp -(use-package org-roam - :hook (after-init . org-roam-mode) - :custom (org-roam-directory org-directory) - (org-roam-capture-templates '()) - (org-roam-dailies-capture-templates '()) - :config (dotfiles/leader "r" '(:ignore t :which-key "Roam") - "ri" '(org-roam-insert :which-key "Insert") - "rf" '(org-roam-find-file :which-key "Find") - "rc" '(org-roam-capture :which-key "Capture") - "rb" '(org-roam-buffer-toggle-display :which-key "Buffer"))) -#+end_src - -** File slugs - -The default behaviour of ~org-roam~ when creating a title slug is to replace any non alpha numerical (whitespace) to ~_~. I wanted to change this to use ~_~ and have done so here in my own definition. The only substantial difference from the original definition is the character used. - -+ Define a new ~title-to-slug~ function -+ Override ~org-roam-title-to-slug-function~ - -#+begin_src emacs-lisp -(with-eval-after-load 'org-roam - (require 'cl-lib) - (defun dotfiles/title-to-slug (title) - "Convert TITLE to a filename-suitable slug." - (cl-flet* ((nonspacing-mark-p (char) - (eq 'Mn (get-char-code-property char 'general-category))) - (strip-nonspacing-marks (s) - (apply #'string (seq-remove #'nonspacing-mark-p - (ucs-normalize-NFD-string s)))) - (cl-replace (title pair) - (replace-regexp-in-string (car pair) (cdr pair) title))) - (let* ((pairs `(("[^[:alnum:][:digit:]]" . "-") ;; Convert anything not alphanumeric. - ("--*" . "-") ;; Remove sequential dashes. - ("^-" . "") ;; Remove starting dashes. - ("-$" . ""))) ;; Remove ending dashes. - (slug (-reduce-from #'cl-replace (strip-nonspacing-marks title) pairs))) - (downcase slug)))) - (setq org-roam-title-to-slug-function #'dotfiles/title-to-slug)) -#+end_src - -** Web visualizer - -Including the extension *Org roam server*[fn:6] will run a web application that visualizes the *Org roam*[fn:5] database. Available whenever the editor is running at https://localhost:8080. The image at the top of this page is an example of the application running. - -#+begin_src emacs-lisp -(use-package org-roam-server - :hook (org-roam-mode . org-roam-server-mode)) -#+end_src - -** Daily note taking - -Use the =daily= note feature of *Org roam*[fn:5] to capture daily notes. Create the default capture template with some preconfigured headers. - -#+begin_src emacs-lisp -(with-eval-after-load 'org-roam - (add-to-list 'org-roam-dailies-capture-templates - '("d" "Default" entry (function org-roam-capture--get-point) - "* %?" - :file-name "docs/daily/%<%Y-%m-%d>" - :head -" -,#+TITLE: %<%Y-%m-%d> -,#+AUTHOR: Christopher James Hayward - -,#+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil -,#+OPTIONS: skip:nil author:nil email:nil creator:nil timestamp:nil -"))) - -#+end_src - -Place keybindings behind =SPC r d=. - -+ Date with =d= -+ Today with =t= -+ Tomorrow with =m= -+ Yesterday with =y= - -#+begin_src emacs-lisp -(dotfiles/leader - "rd" '(:ignore t :which-key "Dailies") - "rdd" '(org-roam-dailies-find-date :which-key "Date") - "rdt" '(org-roam-dailies-find-today :which-key "Today") - "rdm" '(org-roam-dailies-find-tomorrow :which-key "Tomorrow") - "rdy" '(org-roam-dailies-find-yesterday :which-key "Yesterday")) -#+end_src - -** Capture templates - -+ Capture template for generic documents - -#+begin_src emacs-lisp -(with-eval-after-load 'org-roam - (add-to-list 'org-roam-capture-templates - '("d" "Default" entry (function org-roam-capture--get-point) - "%?" - :file-name "docs/${slug}" - :unnarrowed t - :head -" -,#+TITLE: ${title} -,#+AUTHOR: Christopher James Hayward -,#+EMAIL: chris@chrishayward.xyz -"))) -#+end_src - -Custom capture template for courses. - -+ Capture a new buffer with =SPC r c c= - -#+begin_src emacs-lisp -(with-eval-after-load 'org-roam - (add-to-list 'org-roam-capture-templates - '("c" "Course" plain (function org-roam-capture--get-point) - "%?" - :file-name "docs/courses/${slug}" - :unnarrowed t - :head -" -,#+TITLE: ${title} -,#+SUBTITLE: -,#+AUTHOR: Christopher James Hayward -,#+EMAIL: chris@chrishayward.xyz - -,#+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil -,#+OPTIONS: skip:nil author:nil email:nil creator:nil timestamp:nil -"))) -#+end_src - -** Agenda integration - -#+ATTR_ORG: :width 420px -#+ATTR_HTML: :width 420px -#+ATTR_LATEX: :width 420px -[[../docs/images/2021-02-13-example-agenda.gif]] - -More capture templates for *Org roam*[fn:5] are defined here in the context of specific domains and topics. - -+ Configure agenda sources - -#+begin_src emacs-lisp -(setq org-agenda-files '("~/.emacs.d/" - "~/.emacs.d/docs/" - "~/.emacs.d/docs/courses/" - "~/.emacs.d/docs/daily/" - "~/.emacs.d/docs/notes/" - "~/.emacs.d/docs/posts/" - "~/.emacs.d/docs/slides/" - "~/.emacs.d/hosts/" - "~/.emacs.d/modules/")) -#+end_src - -+ Open an agenda buffer with =SPC a= - -#+begin_src emacs-lisp -(dotfiles/leader - "a" '(org-agenda :which-key "Agenda")) -#+end_src - -* Footnotes - -[fn:1] https://orgmode.org - -[fn:2] https://emacswiki.org/emacs/InteractiveSpell - -[fn:3] https://emacswiki.org/emacs/FlySpell - -[fn:4] https://github.com/bnbeckwith/writegood-mode - -[fn:5] https://github.com/org-roam/org-roam - -[fn:6] https://github.com/org-roam/org-roam-server