Compare commits
2
Commits
ab1bbc6577
...
d0447731da
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d0447731da | ||
|
|
b6d246ab38 |
+68
-51
@@ -81,7 +81,6 @@
|
||||
- [[#lsp-functions][LSP Functions]]
|
||||
- [[#neotree-functions][Neotree Functions]]
|
||||
- [[#org-functions][Org Functions]]
|
||||
- [[#org-roam-functions][Org Roam Functions]]
|
||||
- [[#projectile-functions][Projectile Functions]]
|
||||
- [[#selectrum-functions][Selectrum Functions]]
|
||||
- [[#which-key-functions][Which-Key Functions]]
|
||||
@@ -368,7 +367,6 @@ Places buffers as tabs in a bar at the top.
|
||||
helpful-mode
|
||||
mu4e-view-mode
|
||||
neotree-mode
|
||||
org-roam-backlinks-mode
|
||||
shell-mode)
|
||||
. centaur-tabs-local-mode)
|
||||
:config
|
||||
@@ -417,24 +415,58 @@ Setup =org-roam=.
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package org-roam
|
||||
:hook (emacs-startup . org-roam-mode)
|
||||
:hook (org-roam-backlinks-mode . dot/hook-disable-line-numbers)
|
||||
:hook (org-roam-backlinks-mode . dot/hook-disable-mode-line)
|
||||
:defer 5
|
||||
:init
|
||||
(setq org-roam-v2-ack t)
|
||||
:config
|
||||
(setq org-image-actual-width nil)
|
||||
(setq org-roam-completion-system 'default)
|
||||
(setq org-image-actual-width nil) ;; TODO: Move to org section
|
||||
(setq org-roam-db-location (expand-file-name "org-roam.db" dot-cache-dir))
|
||||
(setq org-roam-directory (expand-file-name "./" org-directory))
|
||||
;; Exclude Syncthing backup directory
|
||||
(setq org-roam-file-exclude-regexp "\\.stversions")
|
||||
(setq org-roam-title-to-slug-function #'dot/org-roam-title-to-slug)
|
||||
(setq org-roam-verbose nil)
|
||||
|
||||
;; Templates used when creating a new file
|
||||
(setq org-roam-capture-templates
|
||||
'(("d" "default" plain #'org-roam-capture--get-point
|
||||
'(("d" "default" plain
|
||||
"%?"
|
||||
:file-name "%<%Y%m%d%H%M%S>-${slug}" :head "#+TITLE: ${title}\n#+ROAM_TAGS: %^{Roam tags}\n" :unnarrowed t))))
|
||||
:target (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+TITLE: ${title}\n#+FILETAGS: %^{File tags}\n")
|
||||
:unnarrowed t)))
|
||||
|
||||
(defun dot/org-roam-node-insert-immediate (arg &rest args)
|
||||
(interactive "P")
|
||||
(let ((args (push arg args))
|
||||
(org-roam-capture-templates (list (append (car org-roam-capture-templates)
|
||||
'(:immediate-finish t)))))
|
||||
(apply #'org-roam-node-insert args)))
|
||||
|
||||
(cl-defmethod org-roam-node-slug ((node org-roam-node))
|
||||
"Return the slug of NODE, strip out common words."
|
||||
(let* ((title (org-roam-node-title node))
|
||||
(words (split-string title " "))
|
||||
(common-words '("a" "an" "and" "as" "at" "by" "is" "it" "of" "the" "to"))
|
||||
(title (string-join (seq-remove (lambda (element) (member element common-words)) words) "_"))
|
||||
(pairs '(("c\\+\\+" . "cpp") ;; convert c++ -> cpp
|
||||
("c#" . "cs") ;; convert c# -> cs
|
||||
("[^[:alnum:][:digit:]]" . "_") ;; convert anything not alphanumeric
|
||||
("__*" . "_") ;; remove sequential underscores
|
||||
("^_" . "") ;; remove starting underscore
|
||||
("_$" . "")))) ;; remove ending underscore
|
||||
(cl-flet* ((cl-replace (title pair)
|
||||
(replace-regexp-in-string (car pair) (cdr pair) title)))
|
||||
(downcase (-reduce-from #'cl-replace title pairs)))))
|
||||
|
||||
;; Right-align org-roam-node-tags in the completion menu without a length limit
|
||||
;; Source: https://github.com/org-roam/org-roam/issues/1775#issue-971157225
|
||||
(setq org-roam-node-display-template "${title} ${tags:0}")
|
||||
(setq org-roam-node-annotation-function #'dot/org-roam-annotate-tag)
|
||||
(defun dot/org-roam-annotate-tag (node)
|
||||
(let ((tags (mapconcat 'identity (org-roam-node-tags node) " #")))
|
||||
(unless (string-empty-p tags)
|
||||
(concat
|
||||
(propertize " " 'display `(space :align-to (- right ,(+ 2 (length tags)))))
|
||||
(propertize (concat "#" tags) 'face 'bold)))))
|
||||
|
||||
(org-roam-setup))
|
||||
#+END_SRC
|
||||
|
||||
Enable [[https://www.orgroam.com/manual.html#Roam-Protocol][Roam Protocol]], needed to process =org-protocol://= links
|
||||
@@ -447,9 +479,10 @@ Enable [[https://www.orgroam.com/manual.html#Roam-Protocol][Roam Protocol]], nee
|
||||
|
||||
;; Templates used when creating a new file from a bookmark
|
||||
(setq org-roam-capture-ref-templates
|
||||
'(("r" "ref" plain #'org-roam-capture--get-point
|
||||
'(("r" "ref" plain
|
||||
"%?"
|
||||
:file-name "${slug}" :head "#+TITLE: ${title}\n#+ROAM_KEY: ${ref}\n\n${body}" :unnarrowed t))))
|
||||
:target (file+head "${slug}.org" "#+TITLE: ${title}\n \n${body}")
|
||||
:unnarrowed t))))
|
||||
#+END_SRC
|
||||
|
||||
The roam-ref protocol bookmarks to add:
|
||||
@@ -462,27 +495,17 @@ javascript:location.href =
|
||||
+ '&body=' + encodeURIComponent(window.getSelection())
|
||||
#+END_SRC
|
||||
|
||||
Setup =org-roam-server=.
|
||||
Setup =org-roam-ui=, runs at http://127.0.0.1:35901.
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(use-package simple-httpd
|
||||
:after org-roam)
|
||||
|
||||
(use-package org-roam-server
|
||||
:after (org-roam simple-httpd)
|
||||
(use-package org-roam-ui
|
||||
:after org-roam
|
||||
;; :hook (emacs-startup . org-roam-ui-mode)
|
||||
:config
|
||||
(setq org-roam-server-host "127.0.0.1")
|
||||
(setq org-roam-server-port 8080)
|
||||
(setq org-roam-server-network-arrows "from")
|
||||
(setq org-roam-server-style
|
||||
(concat
|
||||
"button#toggle-preview { margin: 4px; }"
|
||||
"div#view-menu { margin: 4px; }"
|
||||
"div#controls { right: 4px; left: 4px; bottom: 4px; }"
|
||||
"button#toggle-list-type-button { margin: 0 4px; }"
|
||||
"label#colormode { transform: translate(-25%, 0); }"
|
||||
"label.toggle-off.btn-sm { padding-left: 0px; }"
|
||||
)))
|
||||
(setq org-roam-ui-follow t)
|
||||
(setq org-roam-ui-open-on-start t)
|
||||
(setq org-roam-ui-sync-theme nil) ;; FIXME: Make this work (org-roam-ui-get-theme)
|
||||
(setq org-roam-ui-update-on-save t))
|
||||
#+END_SRC
|
||||
|
||||
Easily searchable .org files via Deft.
|
||||
@@ -913,6 +936,7 @@ Debug Adapter Protocol.
|
||||
(mu4e-alert-enable-notifications))
|
||||
|
||||
(use-package smtpmail ; built-in
|
||||
:ensure nil
|
||||
:init (setq smtpmail-default-smtp-server "mail.riyyi.com")
|
||||
:config
|
||||
(setq smtpmail-smtp-server "mail.riyyi.com")
|
||||
@@ -922,9 +946,11 @@ Debug Adapter Protocol.
|
||||
(setq smtpmail-queue-mail nil))
|
||||
|
||||
(use-package sendmail ; built-in
|
||||
:ensure nil
|
||||
:config (setq send-mail-function 'smtpmail-send-it))
|
||||
|
||||
(use-package message ; built-in
|
||||
:ensure nil
|
||||
:config
|
||||
(setq message-kill-buffer-on-exit t)
|
||||
(setq message-send-mail-function 'smtpmail-send-it))
|
||||
@@ -1655,18 +1681,6 @@ If point is on:
|
||||
)))
|
||||
#+END_SRC
|
||||
|
||||
*** Org Roam Functions
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
(defun dot/org-roam-title-to-slug (title)
|
||||
"Convert TITLE to a filename-suitable slug, strip out common words."
|
||||
(let* ((common-words '("a" "an" "and" "as" "at" "by" "is" "it" "of" "the" "to"))
|
||||
(title (replace-regexp-in-string "\\(c\\+\\+\\)" "cpp" title))
|
||||
(title (replace-regexp-in-string "\\(c\\#\\)" "cs" title))
|
||||
(words (split-string (org-roam--title-to-slug title) "\_")))
|
||||
(string-join (seq-remove (lambda (element) (member element common-words)) words) "_")))
|
||||
#+END_SRC
|
||||
|
||||
*** Projectile Functions
|
||||
|
||||
#+BEGIN_SRC emacs-lisp
|
||||
@@ -1936,6 +1950,10 @@ Set keybinds to functionality of installed packages.
|
||||
(define-key magit-log-select-mode-map (kbd "M-c") #'magit-log-select-pick)
|
||||
(define-key magit-log-select-mode-map (kbd "M-k") #'magit-log-select-quit))
|
||||
|
||||
;; Org-roam
|
||||
(with-eval-after-load 'org-roam
|
||||
(define-key org-roam-mode-map [down-mouse-1] #'org-roam-visit-thing))
|
||||
|
||||
;; Minibuffer completion selection
|
||||
(general-def minibuffer-local-map
|
||||
"M-h" #'abort-recursive-edit
|
||||
@@ -2195,15 +2213,14 @@ General.el ~leader key binds.
|
||||
"n" '(:ignore t :which-key "notes")
|
||||
"n a" '(org-agenda :which-key "Org agenda")
|
||||
"n r" '(:ignore t :which-key "org-roam")
|
||||
"n r b" '(org-roam-switch-to-buffer :which-key "Switch buffer")
|
||||
"n r c" '(org-roam-capture :which-key "Capture")
|
||||
"n r C" '(org-roam-db-build-cache :which-key "Build cache")
|
||||
"n r f" '(org-roam-find-file :which-key "Find file")
|
||||
"n r g" '(org-roam-graph-show :which-key "Show graph")
|
||||
"n r i" '(org-roam-insert :which-key "Insert")
|
||||
"n r I" '(org-roam-insert-immediate :which-key "Insert (without capture)")
|
||||
"n r r" '(org-roam :which-key "Toggle side-buffer")
|
||||
"n r s" '(org-roam-server-mode :which-key "Toggle server")
|
||||
"n r C" '(org-roam-db-sync :which-key "Build cache")
|
||||
"n r f" '(org-roam-node-find :which-key "Find node")
|
||||
"n r g" '(org-roam-graph :which-key "Show graph")
|
||||
"n r i" '(org-roam-node-insert :which-key "Insert")
|
||||
"n r I" '(dot/org-roam-node-insert-immediate :which-key "Insert (without capture)")
|
||||
"n r r" '(org-roam-buffer-toggle :which-key "Toggle buffer")
|
||||
"n r s" '(org-roam-ui-mode :which-key "Toggle server")
|
||||
|
||||
;; Projectile
|
||||
"p" '(:keymap projectile-command-map :package projectile :which-key "projectile")
|
||||
|
||||
Reference in New Issue
Block a user