basic org-roam and org-caldav implementation for testing

This commit is contained in:
paul-loedige
2023-11-29 21:32:38 +01:00
parent 42bac11266
commit 9e69a2eb70
2 changed files with 68 additions and 5 deletions
+1
View File
@@ -0,0 +1 @@
Œ
+67 -5
View File
@@ -12,10 +12,14 @@
* Table of Contents :toc: * Table of Contents :toc:
- [[#config-file-headers][Config File Headers]] - [[#config-file-headers][Config File Headers]]
- [[#initel][init.el]]
- [[#packagesel][packages.el]]
- [[#configel][config.el]]
- [[#doom-modules][Doom Modules]] - [[#doom-modules][Doom Modules]]
- [[#general-configuration][General Configuration]] - [[#general-configuration][General Configuration]]
- [[#user-information][User Information]] - [[#user-information][User Information]]
- [[#visual-settings][Visual Settings]] - [[#visual-settings][Visual Settings]]
- [[#authentication][Authentication]]
- [[#multilanguage-spellcheck][Multilanguage Spellcheck]] - [[#multilanguage-spellcheck][Multilanguage Spellcheck]]
- [[#latex][LaTeX]] - [[#latex][LaTeX]]
- [[#set-pdf-viewer][Set PDF Viewer]] - [[#set-pdf-viewer][Set PDF Viewer]]
@@ -23,10 +27,13 @@
- [[#org-mode][Org Mode]] - [[#org-mode][Org Mode]]
- [[#default-location][Default Location]] - [[#default-location][Default Location]]
- [[#enable-header-numbering][Enable Header Numbering]] - [[#enable-header-numbering][Enable Header Numbering]]
- [[#setup][Setup]]
- [[#caldav-sync][CalDAV Sync]]
- [[#org-roam][Org Roam]]
* Config File Headers * Config File Headers
We start by simply defining the standard headers used by the three files. These headers come from the initial files generated by =doom install=, and contain either some Emacs-LISP relevant indicators like =lexical-binding=, or instructions about the contents of the file. We start by simply defining the standard headers used by the three files. These headers come from the initial files generated by =doom install=, and contain either some Emacs-LISP relevant indicators like =lexical-binding=, or instructions about the contents of the file.
** init.el
#+html: <details><summary>init.el</summary> #+html: <details><summary>init.el</summary>
#+begin_src emacs-lisp :tangle init.el #+begin_src emacs-lisp :tangle init.el
;;; init.el -*- lexical-binding: t; -*- ;;; init.el -*- lexical-binding: t; -*-
@@ -52,6 +59,7 @@ We start by simply defining the standard headers used by the three files. These
#+end_src #+end_src
#+html: </details> #+html: </details>
** packages.el
#+html: <details><summary>packages.el</summary> #+html: <details><summary>packages.el</summary>
#+begin_src emacs-lisp :tangle packages.el #+begin_src emacs-lisp :tangle packages.el
;; -*- no-byte-compile: t; -*- ;; -*- no-byte-compile: t; -*-
@@ -110,6 +118,7 @@ We start by simply defining the standard headers used by the three files. These
#+end_src #+end_src
#+html: </details> #+html: </details>
** config.el
#+html: <details><summary>config.el</summary> #+html: <details><summary>config.el</summary>
#+begin_src emacs-lisp :tangle config.el #+begin_src emacs-lisp :tangle config.el
;;; $DOOMDIR/config.el -*- lexical-binding: t; -*- ;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-
@@ -314,7 +323,7 @@ We start by simply defining the standard headers used by the three files. These
;;nim ; python + lisp at the speed of c ;;nim ; python + lisp at the speed of c
;;nix ; I hereby declare "nix geht mehr!" ;;nix ; I hereby declare "nix geht mehr!"
;;ocaml ; an objective camel ;;ocaml ; an objective camel
org ; organize your plain life in plain text (org +roam2) ; organize your plain life in plain text
;;php ; perl's insecure younger brother ;;php ; perl's insecure younger brother
;;plantuml ; diagrams for confusing people more ;;plantuml ; diagrams for confusing people more
;;purescript ; javascript, but functional ;;purescript ; javascript, but functional
@@ -343,7 +352,7 @@ We start by simply defining the standard headers used by the three files. These
;;(wanderlust +gmail) ;;(wanderlust +gmail)
:app :app
;;calendar calendar
;;emms ;;emms
;;everywhere ; *leave* Emacs!? You must be joking ;;everywhere ; *leave* Emacs!? You must be joking
;;irc ; how neckbeards socialize ;;irc ; how neckbeards socialize
@@ -355,8 +364,6 @@ We start by simply defining the standard headers used by the three files. These
(default +bindings +smartparens)) (default +bindings +smartparens))
#+end_src #+end_src
#+RESULTS:
* General Configuration * General Configuration
** User Information ** User Information
#+begin_src emacs-lisp :tangle config.el #+begin_src emacs-lisp :tangle config.el
@@ -389,6 +396,12 @@ Until I get used to the [[https://github.com/Greduan/emacs-theme-gruvbox][evil-s
(setq display-line-numbers-type 'relative) (setq display-line-numbers-type 'relative)
#+end_src #+end_src
** Authentication
Authentication information will be stored in a encrypted file that is part of my dotfiles
#+begin_src emacs-lisp :tangle config.el
(setq auth-sources
'((:source "~/.config/doom/.authinfo.gpg")))
#+end_src
* Multilanguage Spellcheck * Multilanguage Spellcheck
Enables use of multiple dictionaries. In my case German and English Enables use of multiple dictionaries. In my case German and English
#+begin_src emacs-lisp :tangle config.el #+begin_src emacs-lisp :tangle config.el
@@ -427,3 +440,52 @@ This function could also become useful if we ever want to extend the compile com
#+begin_src emacs-lisp :tangle config.el #+begin_src emacs-lisp :tangle config.el
(setq org-startup-numerated t) (setq org-startup-numerated t)
#+end_src #+end_src
** ToDo Setup
*** Progress States
To get a more nuanced overview of my current TODOs I add more progress states.
| | TODO | BLOCKED | IN_PROGRESS | REVIEW | TESTING | | DONE | DELEGATED | CANCELED |
|------------+------+---------+-------------+--------+---------+---+------+-----------+----------|
| Access Key | t | b | i | r | t | | d | | c |
| Log Type | time | note | time | note | note | | time | note | note |
#+begin_src emacs-lisp :tangle config.el
(setq org-todo-keywords
'((sequence "TODO(t!)" "IN_PROGRESS(i!)" "BLOCKED(b@)" "REVIEW(r@)" "TESTING(t@)" "|" "DONE(d!)" "DELEGATED(!)" "CANCELED(c@)")))
#+end_src
** CalDAV Sync
[[https://github.com/dengste/org-caldav][org-caldav]] provides a tool for syncing with a CalDAV server (in my case Nextcloud).
A lot of the config is also taken from [[https://www.reddit.com/r/orgmode/comments/8rl8ep/comment/e0sb5j0/?utm_source=share&utm_medium=web3x&utm_name=web3xcss&utm_term=1&utm_content=share_button][this]] reddit post.
*** org-caldav installation
#+begin_src emacs-lisp :tangle packages.el
(package! org-caldav)
#+end_src
*** configure calendars
add the calendars to the org-caldav config
#+begin_src emacs-lisp :tangle config.el
(after! org-caldav
(setq org-caldav-url "https://cloud.ploedige.com/remote.php/dav/calendars/paul-loedige")
(setq org-caldav-calendars
'((:calendar-id "org-test" :files ("~/org/calendars/org_test.org")
:inbox "~/org/calendars/org_test.org"))))
#+end_src
and add them to the org agenda as well
#+begin_src emacs-lisp :tangle config.el
(after! org
(setq org-agenda-files '("~/org/calendars")))
#+end_src
*** enable TODOs
#+begin_src emacs-lisp :tangle config.el
(after! org-caldav
(setq org-icalendar-include-todo 'all
org-caldav-sync-todo t))
#+end_src
** Org Roam
*** set base directory
Both the org files themselves and the database should be located in the same directory to enable syncing via Nextcloud
#+begin_src emacs-lisp :tangle config.el
(after! org
(setq org-roam-directory (file-truename "~/org/org-roam"))
(setq org-roam-db-location "~/org/org-roam/org-roam.db")
(org-roam-db-autosync-mode))
#+end_src