Browse Source

Remove 'brain'

main
parent
commit
c2f4c68438
  1. 222
      README.org
  2. 5
      hosts/ubuntu.el
  3. 4
      init.el
  4. 1
      modules/core.el
  5. 9
      modules/interface.el
  6. 127
      modules/writing.el

222
README.org

@ -41,7 +41,7 @@ Assuming you have completed all of the following tasks prior to proceeding furth
Load the host configuration. Load the host configuration.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(let ((host-file (concat "~/.local/source/dotfiles/hosts/" system-name ".el")))
(let ((host-file (concat user-emacs-directory "/hosts/" system-name ".el")))
(when (file-exists-p host-file) (when (file-exists-p host-file)
(load-file host-file))) (load-file host-file)))
#+end_src #+end_src
@ -50,7 +50,7 @@ Load the enabled modules.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(dolist (m dotfiles/modules) (dolist (m dotfiles/modules)
(let ((mod-file (concat "~/.local/source/dotfiles/modules/" (symbol-name m) ".el")))
(let ((mod-file (concat dotfiles/home "/modules/" (symbol-name m) ".el")))
(when (file-exists-p mod-file) (when (file-exists-p mod-file)
(load-file mod-file)))) (load-file mod-file))))
#+end_src #+end_src
@ -80,10 +80,11 @@ Add the modules you want to initialize to the ~dotfiles/modules~ variable.
interface)) interface))
#+end_src #+end_src
Specify the cache directory.
Specify the ~home~ and ~cache~ directories.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(defvar dotfiles/cache "~/.cache/emacs") (defvar dotfiles/cache "~/.cache/emacs")
(defvar dotfiles/home user-emacs-directory)
#+end_src #+end_src
Functionality like =completion= and =hints= can be delayed to avoid popups for common manuevers. Adjust this value to your personal taste. Functionality like =completion= and =hints= can be delayed to avoid popups for common manuevers. Adjust this value to your personal taste.
@ -99,20 +100,12 @@ Avoid the infamous *Emacs pinky* by binding =SPC= as a leader key, utilizing the
(defvar dotfiles/leader-key-global "C-SPC") (defvar dotfiles/leader-key-global "C-SPC")
#+end_src #+end_src
Define where the source repositories are stored, with most projects being relative from that directory.
Define where the source repositories are stored, for integration with the *Projects* module.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(defvar dotfiles/src "~/.local/source/") (defvar dotfiles/src "~/.local/source/")
#+end_src #+end_src
The brain project provides the basis for my agenda, notes, blog, and presentations.
#+begin_src emacs-lisp
(defvar dotfiles/brain (concat dotfiles/src "brain/"))
(defvar dotfiles/notes (concat dotfiles/brain "notes/"))
(defvar dotfiles/bib (concat dotfiles/brain "resources.bib"))
#+end_src
Secret keys and passwords are stored in a seperate repository. Secret keys and passwords are stored in a seperate repository.
#+begin_src emacs-lisp #+begin_src emacs-lisp
@ -226,6 +219,7 @@ Emacs' default user interface is horrendous, but with less than 10 lines of code
(setq org-ellipsis " ▾" (setq org-ellipsis " ▾"
org-log-done 'time org-log-done 'time
org-log-into-drawer t org-log-into-drawer t
org-directory dotfiles/home
org-src-preserve-indentation t) org-src-preserve-indentation t)
(org-babel-do-load-languages (org-babel-do-load-languages
@ -599,9 +593,7 @@ Connect our custom hooks and configure the input keys, a custom layer for defini
:header-args: :tangle ~/.local/source/dotfiles/modules/writing.el :results silent :header-args: :tangle ~/.local/source/dotfiles/modules/writing.el :results silent
:END: :END:
I am using [[https://orgmode.org][Org-mode]] extensively for writing projects for different purposes. Improvements beyond what are required for my Literate Programming platform include:
[[https://github.com/integral-dw/org-superstar-mode][Org-superstar-mode]] for making headline stars more *super*.
I am using [[https://orgmode.org][Org-mode]] extensively for writing projects for different purposes. Most of the improvements are done in the *Core* module for the Literate programming configuration. [[https://github.com/integral-dw/org-superstar-mode][Org-superstar-mode]] for making headline stars more *super*.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package org-superstar (use-package org-superstar
@ -689,165 +681,12 @@ Create a keybinding to open the mail dashboard with =SPC m=.
"m" '(mu4e :which-key "Mail")) "m" '(mu4e :which-key "Mail"))
#+end_src #+end_src
*** Brain
[[https://github.com/org-roam/org-roam][Org-roam]] is a rudimentary roam replica built on =Org mode=.
#+begin_src emacs-lisp
(use-package org-roam
:hook (after-init . org-roam-mode)
:custom (org-roam-directory dotfiles/brain))
#+end_src
[[https://github.com/org-roam/org-roam-server][Org-roam-server]] is a web application that visualizes the =Org roam= database, available when Emacs' running at [[http://localhost:8080][localhost:8080]].
#+begin_src emacs-lisp
(use-package org-roam-server
:hook (org-roam-mode . org-roam-server-mode))
#+end_src
Configure keybindings behind =SPC r=.
+ Find with =f=
+ Buffer with =b=
+ Capture with =c=
+ Dailies with =d=
#+begin_src emacs-lisp
(dotfiles/leader
"r" '(:ignore t :which-key "Roam")
"rf" '(org-roam-find-file :which-key "Find")
"rb" '(org-roam-buffer-toggle-display :which-key "Buffer")
"rc" '(org-roam-capture :which-key "Capture")
"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
Configure the default capture template for new topics.
#+begin_src emacs-lisp
(setq org-roam-capture-templates
'(("d" "Default" plain (function org-roam-capture--get-point)
"%?"
:file-name "${slug}"
:head "#+TITLE: ${title}\n"
:unnarrowed t)))
#+end_src
Configure the default capture template for daily entries.
#+begin_src emacs-lisp
(setq org-roam-dailies-capture-templates
'(("d" "Default" entry (function org-roam-capture--get-point)
"* %?"
:file-name "daily/%<%Y-%m-%d>"
:head "#+TITLE: %<%Y-%m-%d>\n")))
#+end_src
*** Notes
#+begin_src emacs-lisp
(use-package org-noter
:after org
:config
(setq org-noter-always-create-frame nil
org-noter-notes-search-path dotfiles/notes))
#+end_src
#+begin_src emacs-lisp
(use-package org-pdftools
:hook (org-mode . org-pdftools-setup-link))
#+end_src
#+begin_src emacs-lisp
(use-package org-noter-pdftools
:after org-noter
:config
(with-eval-after-load 'pdf-annot
(add-hook 'pdf-annot-active-handler-functions #'org-noter-pdftools-jump-to-note)))
#+end_src
#+begin_src emacs-lisp
(setq bibtex-completion-notes-path dotfiles/notes
bibtex-completion-bibliography dotfiles/bib
bibtex-completion-pdf-field "file"
bibtex-completion-notes-template-multiple-files
(concat
"#+TITLE: ${title}\n"
"#+ROAM_KEY: cite:${=key=}\n"
"#* TODO Notes\n"
":PROPERTIES:\n"
":CUSTOM_ID: ${=key}\n"
":NOTER_DOCUMENT: %(orb-process-file-field \"${=key=}\")\n"
":AUTHOR: ${author-abbrev}\n"
":JOURNAL: ${journaltitle}\n"
":DATE: ${date}\n"
":YEAR: ${year}\n"
":DOI: ${doi}\n"
":URL: ${url}\n"
":END:\n\n"))
#+end_src
#+begin_src emacs-lisp
(use-package org-ref
:config
(setq org-ref-completion-library 'org-ref-helm-cite
org-ref-get-pdf-filename-function 'org-ref-get-pdf-filename-helm-bibtex
org-ref-default-bibliography dotfiles/bib
org-ref-bibliography-notes dotfiles/notes
org-ref-notes-directory dotfiles/notes
org-ref-notes-function 'orb-edit-notes
org-ref-note-title-format "* TODO %y - %t\n
:PROPERTIES:\n
:CUSTOM_ID: %k\n
:NOTER_DOCUMENT: %F\n
:ROAM_KEY: cite:%k\n
:AUTHOR: %9a\n
:JOURNAL: %j\n
:YEAR: %y\n
:VOLUME: %v\n
:PAGES: %p\n
:DOI: %D\n
:URL: %U\n
:END:\n\n"))
#+end_src
#+begin_src emacs-lisp
(use-package org-roam-bibtex
:after (org-roam)
:hook (org-roam-mode . org-roam-bibtex-mode)
:config
(setq orb-preformat-keywords
'("=key=" "title" "url" "file" "author-or-editor" "keywords")))
#+end_src
#+begin_src emacs-lisp
(add-to-list 'org-roam-capture-templates
'("n" "Notes" plain (function org-roam-capture--get-point)
""
:file-name "notes/${slug}"
:head "#+TITLE: ${=key=}: ${title}\n\n
#+ROAM_KEY:${ref}\n\n* ${title}\n
:PROPERTIES:\n
:CUSTOM_ID: ${=key=}\n
:URL: ${url}\n
:AUTHOR: ${author-or-editor}\n
:NOTER_DOCUMENT:%(orb-process-file-field \"${=key=}\")\n
:NOTER_PAGE:\n
:END:\n\n"))
#+end_src
*** Agenda *** Agenda
Configure agenda sources. Configure agenda sources.
+ Dailies ~~/.local/source/brain/daily/~
+ Secrets ~~/.local/source/secrets/org/~
#+begin_src emacs-lisp #+begin_src emacs-lisp
(setq org-agenda-files '("~/.local/source/brain/daily/"
"~/.local/source/secrets/org/"))
(setq org-agenda-files '("~/.local/source/secrets/org/"))
#+end_src #+end_src
Open an agenda buffer with =SPC a=. Open an agenda buffer with =SPC a=.
@ -859,27 +698,13 @@ Open an agenda buffer with =SPC a=.
*** Blogging *** Blogging
I use [[https://gohugo.io][Hugo]] for my personal [[https://chrishayward.xyz][website]], which I write in =Org-mode= before compiling to =hugo-markdown=.
[[https://github.com/kaushalmodi/ox-hugo][Ox-hugo]], configured for =one-post-per-file= is my technique for managing my blog.
I use [[https://gohugo.io][Hugo]] for my personal [[https://chrishayward.xyz][website]], which I write in =Org-mode= before compiling to =hugo-markdown=. [[https://github.com/kaushalmodi/ox-hugo][Ox-hugo]], configured for =one-post-per-file= is my technique for managing my blog.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package ox-hugo (use-package ox-hugo
:after ox) :after ox)
#+end_src #+end_src
Creaate a capture template for blog posts in the =posts= sub directory.
#+begin_src emacs-lisp
(add-to-list 'org-roam-capture-templates
'("b" "Blogging" plain (function org-roam-capture--get-point)
"%?"
:file-name "posts/${slug}"
:head "#+TITLE: ${title}\n
#+HUGO_BASE_DIR: ~/.local/source/website\n
#+HUGO_SECTION: posts\n"))
#+end_src
*** Screencasts *** Screencasts
Create screencasts with =one-frame-per-action= GIF recording via [[https://github.com/takaxp/emacs-gif-screencast][emacs-gif-screencast]]. Create screencasts with =one-frame-per-action= GIF recording via [[https://github.com/takaxp/emacs-gif-screencast][emacs-gif-screencast]].
@ -888,12 +713,12 @@ Create screencasts with =one-frame-per-action= GIF recording via [[https://githu
+ High quality images + High quality images
+ Optimized size + Optimized size
It requires the installation of ~scrot~ and ~convert~ from the =ImageMagick= library.
It requires the installation of ~scrot~, ~gifsicle~, and ~convert~ from the =ImageMagick= library.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package gif-screencast (use-package gif-screencast
:custom :custom
(gif-screencast-output-directory (concat dotfiles/brain "screens/")))
(gif-screencast-output-directory (concat dotfiles/home "images/")))
#+end_src #+end_src
Screencast controls behind =SPC s=. Screencast controls behind =SPC s=.
@ -909,9 +734,7 @@ Screencast controls behind =SPC s=.
*** Presentations *** Presentations
Produce high quality presentations that work anywhere with =HTML/JS= and the [[https://revealjs.com][Reveal.js]] package.
[[https://github.com/hexmode/ox-reveal][Ox-reveal]], configured to use a =cdn= allows us to produce ones that are not dependent on a local version of =Reveal.js=.
Produce high quality presentations that work anywhere with =HTML/JS= and the [[https://revealjs.com][Reveal.js]] package. [[https://github.com/hexmode/ox-reveal][Ox-reveal]], configured to use a =cdn= allows us to produce ones that are not dependent on a local version of =Reveal.js=.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(use-package ox-reveal (use-package ox-reveal
@ -919,16 +742,6 @@ Produce high quality presentations that work anywhere with =HTML/JS= and the [[h
:custom (org-reveal-root "https://cdn.jsdelivr.net/reveal.js/3.9.2/")) :custom (org-reveal-root "https://cdn.jsdelivr.net/reveal.js/3.9.2/"))
#+end_src #+end_src
Create a capture template for presentations stored in the =slides= sub directory.
#+begin_src emacs-lisp
(add-to-list 'org-roam-capture-templates
'("p" "Presentation" plain (function org-roam-capture--get-point)
"%?"
:file-name "slides/${slug}"
:head "#+TITLE: ${title}\n"))
#+end_src
** Projects ** Projects
:PROPERTIES: :PROPERTIES:
:header-args: :tangle ~/.local/source/dotfiles/modules/projects.el :results silent :header-args: :tangle ~/.local/source/dotfiles/modules/projects.el :results silent
@ -1216,14 +1029,15 @@ Load a theme with =SPC t t=.
Enable font ligatures via [[https://github.com/jming422/fira-code-mode][fira-code-mode]], perform this action *only* when ~Fira Code~ is set as the current font. Enable font ligatures via [[https://github.com/jming422/fira-code-mode][fira-code-mode]], perform this action *only* when ~Fira Code~ is set as the current font.
#+begin_src emacs-lisp #+begin_src emacs-lisp
;; (use-package fira-code-mode
;; :config
;; (global-fira-code-mode))
(use-package fira-code-mode
:hook (prog-mode org-mode))
#+end_src #+end_src
Toggle global ligature mode with =SPC t g=.
#+begin_src emacs-lisp #+begin_src emacs-lisp
;; (use-package fira-code-mode
;; :hook prog-mode)
(dotfiles/leader
"tg" '(global-fira-code-mode :which-key "Ligatures"))
#+end_src #+end_src
*** Dashboard *** Dashboard

5
hosts/ubuntu.el

@ -7,6 +7,7 @@
interface)) interface))
(defvar dotfiles/cache "~/.cache/emacs") (defvar dotfiles/cache "~/.cache/emacs")
(defvar dotfiles/home user-emacs-directory)
(defvar dotfiles/idle 0.0) (defvar dotfiles/idle 0.0)
@ -15,9 +16,5 @@
(defvar dotfiles/src "~/.local/source/") (defvar dotfiles/src "~/.local/source/")
(defvar dotfiles/brain (concat dotfiles/src "brain/"))
(defvar dotfiles/notes (concat dotfiles/brain "notes/"))
(defvar dotfiles/bib (concat dotfiles/brain "resources.bib"))
(defvar dotfiles/secrets (concat dotfiles/src "secrets/")) (defvar dotfiles/secrets (concat dotfiles/src "secrets/"))
(defvar dotfiles/passwords (concat dotfiles/src "passwords/")) (defvar dotfiles/passwords (concat dotfiles/src "passwords/"))

4
init.el

@ -1,8 +1,8 @@
(let ((host-file (concat "~/.local/source/dotfiles/hosts/" system-name ".el")))
(let ((host-file (concat user-emacs-directory "/hosts/" system-name ".el")))
(when (file-exists-p host-file) (when (file-exists-p host-file)
(load-file host-file))) (load-file host-file)))
(dolist (m dotfiles/modules) (dolist (m dotfiles/modules)
(let ((mod-file (concat "~/.local/source/dotfiles/modules/" (symbol-name m) ".el")))
(let ((mod-file (concat dotfiles/home "/modules/" (symbol-name m) ".el")))
(when (file-exists-p mod-file) (when (file-exists-p mod-file)
(load-file mod-file)))) (load-file mod-file))))

1
modules/core.el

@ -40,6 +40,7 @@
(setq org-ellipsis "" (setq org-ellipsis ""
org-log-done 'time org-log-done 'time
org-log-into-drawer t org-log-into-drawer t
org-directory dotfiles/home
org-src-preserve-indentation t) org-src-preserve-indentation t)
(org-babel-do-load-languages (org-babel-do-load-languages

9
modules/interface.el

@ -35,12 +35,11 @@
(dotfiles/leader (dotfiles/leader
"tt" '(load-theme t t :which-key "Theme")) "tt" '(load-theme t t :which-key "Theme"))
;; (use-package fira-code-mode
;; :config
;; (global-fira-code-mode))
(use-package fira-code-mode
:hook (prog-mode org-mode))
;; (use-package fira-code-mode
;; :hook prog-mode)
(dotfiles/leader
"tg" '(global-fira-code-mode :which-key "Ligatures"))
(use-package dashboard (use-package dashboard
:config :config

127
modules/writing.el

@ -42,116 +42,7 @@
(dotfiles/leader (dotfiles/leader
"m" '(mu4e :which-key "Mail")) "m" '(mu4e :which-key "Mail"))
(use-package org-roam
:hook (after-init . org-roam-mode)
:custom (org-roam-directory dotfiles/brain))
(use-package org-roam-server
:hook (org-roam-mode . org-roam-server-mode))
(dotfiles/leader
"r" '(:ignore t :which-key "Roam")
"rf" '(org-roam-find-file :which-key "Find")
"rb" '(org-roam-buffer-toggle-display :which-key "Buffer")
"rc" '(org-roam-capture :which-key "Capture")
"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"))
(setq org-roam-capture-templates
'(("d" "Default" plain (function org-roam-capture--get-point)
"%?"
:file-name "${slug}"
:head "#+TITLE: ${title}\n"
:unnarrowed t)))
(setq org-roam-dailies-capture-templates
'(("d" "Default" entry (function org-roam-capture--get-point)
"* %?"
:file-name "daily/%<%Y-%m-%d>"
:head "#+TITLE: %<%Y-%m-%d>\n")))
(use-package org-noter
:after org
:config
(setq org-noter-always-create-frame nil
org-noter-notes-search-path dotfiles/notes))
(use-package org-pdftools
:hook (org-mode . org-pdftools-setup-link))
(use-package org-noter-pdftools
:after org-noter
:config
(with-eval-after-load 'pdf-annot
(add-hook 'pdf-annot-active-handler-functions #'org-noter-pdftools-jump-to-note)))
(setq bibtex-completion-notes-path dotfiles/notes
bibtex-completion-bibliography dotfiles/bib
bibtex-completion-pdf-field "file"
bibtex-completion-notes-template-multiple-files
(concat
"#+TITLE: ${title}\n"
"#+ROAM_KEY: cite:${=key=}\n"
"#* TODO Notes\n"
":PROPERTIES:\n"
":CUSTOM_ID: ${=key}\n"
":NOTER_DOCUMENT: %(orb-process-file-field \"${=key=}\")\n"
":AUTHOR: ${author-abbrev}\n"
":JOURNAL: ${journaltitle}\n"
":DATE: ${date}\n"
":YEAR: ${year}\n"
":DOI: ${doi}\n"
":URL: ${url}\n"
":END:\n\n"))
(use-package org-ref
:config
(setq org-ref-completion-library 'org-ref-helm-cite
org-ref-get-pdf-filename-function 'org-ref-get-pdf-filename-helm-bibtex
org-ref-default-bibliography dotfiles/bib
org-ref-bibliography-notes dotfiles/notes
org-ref-notes-directory dotfiles/notes
org-ref-notes-function 'orb-edit-notes
org-ref-note-title-format "* TODO %y - %t\n
:PROPERTIES:\n
:CUSTOM_ID: %k\n
:NOTER_DOCUMENT: %F\n
:ROAM_KEY: cite:%k\n
:AUTHOR: %9a\n
:JOURNAL: %j\n
:YEAR: %y\n
:VOLUME: %v\n
:PAGES: %p\n
:DOI: %D\n
:URL: %U\n
:END:\n\n"))
(use-package org-roam-bibtex
:after (org-roam)
:hook (org-roam-mode . org-roam-bibtex-mode)
:config
(setq orb-preformat-keywords
'("=key=" "title" "url" "file" "author-or-editor" "keywords")))
(add-to-list 'org-roam-capture-templates
'("n" "Notes" plain (function org-roam-capture--get-point)
""
:file-name "notes/${slug}"
:head "#+TITLE: ${=key=}: ${title}\n\n
#+ROAM_KEY:${ref}\n\n* ${title}\n
:PROPERTIES:\n
:CUSTOM_ID: ${=key=}\n
:URL: ${url}\n
:AUTHOR: ${author-or-editor}\n
:NOTER_DOCUMENT:%(orb-process-file-field \"${=key=}\")\n
:NOTER_PAGE:\n
:END:\n\n"))
(setq org-agenda-files '("~/.local/source/brain/daily/"
"~/.local/source/secrets/org/"))
(setq org-agenda-files '("~/.local/source/secrets/org/"))
(dotfiles/leader (dotfiles/leader
"a" '(org-agenda :which-key "Agenda")) "a" '(org-agenda :which-key "Agenda"))
@ -159,17 +50,9 @@
(use-package ox-hugo (use-package ox-hugo
:after ox) :after ox)
(add-to-list 'org-roam-capture-templates
'("b" "Blogging" plain (function org-roam-capture--get-point)
"%?"
:file-name "posts/${slug}"
:head "#+TITLE: ${title}\n
#+HUGO_BASE_DIR: ~/.local/source/website\n
#+HUGO_SECTION: posts\n"))
(use-package gif-screencast (use-package gif-screencast
:custom :custom
(gif-screencast-output-directory (concat dotfiles/brain "screens/")))
(gif-screencast-output-directory (concat dotfiles/home "images/")))
(dotfiles/leader (dotfiles/leader
"s" '(:ignore t :which-key "Screencast") "s" '(:ignore t :which-key "Screencast")
@ -179,9 +62,3 @@
(use-package ox-reveal (use-package ox-reveal
:after ox :after ox
:custom (org-reveal-root "https://cdn.jsdelivr.net/reveal.js/3.9.2/")) :custom (org-reveal-root "https://cdn.jsdelivr.net/reveal.js/3.9.2/"))
(add-to-list 'org-roam-capture-templates
'("p" "Presentation" plain (function org-roam-capture--get-point)
"%?"
:file-name "slides/${slug}"
:head "#+TITLE: ${title}\n"))
Loading…
Cancel
Save