org-roam
repository on GitHub. Org Roam is Roam Research in org-mode maybe. a Knowledge Management Tool for Emacs org-mode in nonlinear
Zettelkasten
fashion. It is for now the root of my personal Knowledge Base, the repository which feeds
my Arcology, where
I develop thoughts and make plans, and where the CCE is developed. It is configured quite simply,
with a keymap exposed to me on <SPC>r
via Evil Leader. One of these days
I'll build a cleaner abstraction defining these maps.
Rather than install org-roam with the system wide load-path, on
systems with home-manager it's included through MELPA. To build from
local checkout: #+ARROYO_HOME_EPKGS: overrides/org-roam.nix
which injects this override in to Arroyo
Emacs's package index:
-roam = epkgs.melpaPackages.org-roam.overrideAttrs(old: {
orgsrc = /home/rrix/Code/org-roam;
});
I unconditionally need sqlite3 installed in my home-manager:
{pkgs, ...}:
{
home.packages = [ pkgs.sqlite ];
}
My org-roam
configuration is basically
pedestrian, I can hit <SPC>r
to get
to the org-roam-prefix-map
keymap below
which includes all the sort of functions I would want to perform on a
node or to browse to a new one. Pressing M-.
in insert mode will allow me to quickly link
to any roam node.
; (use-package emacsql-sqlite3)
use-package buttercup)
(defun cce/org-roam-mode-hook ()
(
(setq-local completion-at-point-functions'tags-completion-at-point-function completion-at-point-functions)))
(delq use-package org-roam
(
:hook
(org-mode . cce/org-roam-mode-hook)
:initsetq org-roam-v2-ack t)
(setq org-roam-directory (expand-file-name "~/org/"))
(
:configsetq org-roam-directory (expand-file-name "~/org/"))
(setq org-roam-link-title-format "%s")
(#'org-roam-mode-sections #'org-roam-unlinked-references-section)
(add-to-list
(org-roam-db-autosync-mode)"r" :prefix-map org-roam-prefix-map
:bind (:map evil-leader--default-map :prefix "aa" . org-roam-alias-add)
("ar" . org-roam-alias-remove)
("ka" . org-roam-ref-add)
("kr" . org-roam-ref-remove)
("Ta" . org-roam-tag-add)
("Tr" . org-roam-tag-remove)
("f" . org-roam-node-find)
("g" . org-roam-show-graph)
("i" . org-roam-node-insert)
("K" . org-roam-ref-find)
("l" . org-roam-buffer-toggle)
("L" . org-roam-buffer-display-dedicated)
("r" . org-roam-node-random))
(
:bind (:map evil-insert-state-map"M-." . org-roam-node-insert)
("C-c r" . org-roam-node-insert))) (
I have a lot of work still to expand upon this, but for now I just use the defaults. These are not included in my configuration:
setq org-roam-capture-templates '())
(
'org-roam-capture-templates
(add-to-list "d" "default" plain #'org-roam--capture-get-point
'("%?"
"${slug}"
:file-name "#+TITLE: ${title}\n"
:head t)) :unnarrowed
provide 'cce/org-roam) (