1
0
Fork 0

feat(emacs): add org workspace switching

Signed-off-by: Lucas Sta Maria <lucas@priime.dev>
This commit is contained in:
Lucas Sta Maria 2024-03-11 20:09:38 -04:00
parent 1277ea33d2
commit eb5344339c
No known key found for this signature in database
GPG key ID: F07FB16A826E3B47

View file

@ -10,7 +10,30 @@
(require 'org-modern) (require 'org-modern)
;; Templates for org-mode ;; Templates for org-mode
(require 'org-tempo) (require 'org-tempo)
(require 's)
;; Multiple Org Workspaces
(defvar org-workspaces-alist
'(("docs" . ("~/org/docs/" . "~/.emacs.d/org-roam.db"))
("cs 2800" . ("~/docs/notes/cs/2800/lectures/" . "~/docs/notes/cs/2800/lectures/org-roam.db"))
("cs 3620" . ("~/docs/notes/cs/3620/lectures/" . "~/docs/notes/cs/3620/lectures/org-roam.db"))))
(defun org-switch-workspace (&optional workspace-name)
"Switch the current org-roam-directory to WORKSPACE-NAME."
(interactive)
(defconst default-workspace-name (caar org-workspaces-alist))
(defconst prompt-message (format "Org Roam Workspace (default \"%s\")"
default-workspace-name))
(let ((workspace-name
(or workspace-name
(completing-read prompt-message org-workspaces-alist))))
(when (s-blank? workspace-name)
(error "Requires valid workspace"))
(setq org-roam-directory (cadr (assoc workspace-name org-workspaces-alist)))
(setq org-roam-db-location (cddr (assoc workspace-name org-workspaces-alist)))
(org-roam-db-sync t)))
;; Settings
(setq org-hide-emphasis-markers t) (setq org-hide-emphasis-markers t)
(setq org-adapt-indentation nil) (setq org-adapt-indentation nil)
(setq org-confirm-babel-evaluate nil) (setq org-confirm-babel-evaluate nil)