From 874f6337c65217040b8f3394e9fbdb88c2aa54f5 Mon Sep 17 00:00:00 2001 From: Inhji Date: Mon, 18 Mar 2024 16:46:04 +0100 Subject: [PATCH] add org-super-agenda and org-caldav --- config/dot_config/doom/config.el | 58 +++++++++++++++++++++--- config/dot_config/doom/config.org | 71 +++++++++++++++++++++++++++--- config/dot_config/doom/packages.el | 1 + 3 files changed, 116 insertions(+), 14 deletions(-) diff --git a/config/dot_config/doom/config.el b/config/dot_config/doom/config.el index f981946..651d6b9 100644 --- a/config/dot_config/doom/config.el +++ b/config/dot_config/doom/config.el @@ -5,6 +5,12 @@ (interactive) (doom-project-find-file +user-org-path)) +(defun org-path (filename) + "Expand filename relative to the default org-path" + (expand-file-name filename +user-org-path)) + + + (defun my-org-inline-css-hook (exporter) "Insert custom inline css" (when (eq exporter 'html) @@ -95,11 +101,6 @@ (use-package! org :config - (progn (defun org-path (filename) - "Expand filename relative to the default org-path" - (expand-file-name filename +user-org-path))) - (progn ) - (setq ;; General org-directory +user-org-path org-log-into-drawer "LOGBOOK" @@ -110,7 +111,7 @@ ;; Org Agenda org-agenda-show-all-dates t - org-agenda-span 4 + org-agenda-span 2 org-agenda-start-day "+0d" org-agenda-tag-filter-preset '("-drill") org-agenda-time-grid @@ -126,7 +127,7 @@ ;; Org Todo org-todo-keywords - '((sequence "TODO(t)" "|" "DONE(d)") + '((sequence "TODO(t)" "DOING(g)" "|" "DONE(d)" "CANCEL(c)") (sequence "THIS(T)" "EXAMPLE")) ;; Org Capture @@ -308,6 +309,21 @@ :config (setq org-auto-tangle-default nil) :hook (org-mode . org-auto-tangle-mode)) +;; URL of the caldav server +(setq org-caldav-url "https://my.green-cloud.at/remote.php/dav/calendars/johnnie@posteo.de") + +;; calendar ID on server +(setq org-caldav-calendar-id "persnlich") + +;; Org filename where new entries from calendar stored +(setq org-caldav-inbox (org-path "Calendar.org")) + +;; Additional Org files to check for calendar events +(setq org-caldav-files nil) + +;; Usually a good idea to set the timezone manually +(setq org-icalendar-timezone "Europe/Berlin") + (after! org-drill (setq org-drill-scope 'agenda)) @@ -324,3 +340,31 @@ ;; (after! org-roam ;; (setq org-roam-directory "~/Notes/Org/Roam") ;; (setq org-roam-dailies-directory "Daily")) + +(use-package! org-super-agenda + :config + (setq org-super-agenda-groups + '(;; Each group has an implicit boolean OR operator between its selectors. + (:name "Important" + ;; Single arguments given alone + ;;:tag "bills" + :priority "A") + (:name "Habits" + :habit t) + + (:name "Appointments" + :file-path "Calendar\.org") + + (:name "Shopping" + :tag "shopping") + ;; Set order of multiple groups at once + (:priority<= "B" + ;; Show this section after "Today" and "Important", because + ;; their order is unspecified, defaulting to 0. Sections + ;; are displayed lowest-number-first. + :order 1) + ;; After the last group, the agenda will display items that didn't + ;; match any of these groups, with the default order position of 99 + )) + :init + (org-super-agenda-mode t)) diff --git a/config/dot_config/doom/config.org b/config/dot_config/doom/config.org index c0dfc1b..e1c162d 100644 --- a/config/dot_config/doom/config.org +++ b/config/dot_config/doom/config.org @@ -25,9 +25,11 @@ This config file is built on doom-emacs ~3.0.0-pre~ and emacs ~29.2~. It is heav - [[#novel][nov.el]] - [[#olivetti][olivetti]] - [[#org-auto-tangle][org-auto-tangle]] + - [[#org-caldav][org-caldav]] - [[#org-drill][org-drill]] - [[#org-noter][org-noter]] - [[#org-roam][org-roam]] + - [[#org-super-agenda][org-super-agenda]] * Header This header will be the first codeblock in the config file. @@ -45,6 +47,12 @@ This header will be the first codeblock in the config file. (interactive) (doom-project-find-file +user-org-path)) +(defun org-path (filename) + "Expand filename relative to the default org-path" + (expand-file-name filename +user-org-path)) + + + (defun my-org-inline-css-hook (exporter) "Insert custom inline css" (when (eq exporter 'html) @@ -180,11 +188,6 @@ There are a few things to point out here: (use-package! org :config - (progn (defun org-path (filename) - "Expand filename relative to the default org-path" - (expand-file-name filename +user-org-path))) - (progn ) - (setq ;; General org-directory +user-org-path org-log-into-drawer "LOGBOOK" @@ -195,7 +198,7 @@ There are a few things to point out here: ;; Org Agenda org-agenda-show-all-dates t - org-agenda-span 4 + org-agenda-span 2 org-agenda-start-day "+0d" org-agenda-tag-filter-preset '("-drill") org-agenda-time-grid @@ -211,7 +214,7 @@ There are a few things to point out here: ;; Org Todo org-todo-keywords - '((sequence "TODO(t)" "|" "DONE(d)") + '((sequence "TODO(t)" "DOING(g)" "|" "DONE(d)" "CANCEL(c)") (sequence "THIS(T)" "EXAMPLE")) ;; Org Capture @@ -444,6 +447,29 @@ This package automatically tangles all sourceblocks in an org file whenever that :hook (org-mode . org-auto-tangle-mode)) #+end_src +** org-caldav + +#+begin_src emacs-lisp + +;; URL of the caldav server +(setq org-caldav-url "https://my.green-cloud.at/remote.php/dav/calendars/johnnie@posteo.de") + +;; calendar ID on server +(setq org-caldav-calendar-id "persnlich") + +;; Org filename where new entries from calendar stored +(setq org-caldav-inbox (org-path "Calendar.org")) + +;; Additional Org files to check for calendar events +(setq org-caldav-files nil) + +;; Usually a good idea to set the timezone manually +(setq org-icalendar-timezone "Europe/Berlin") + +#+end_src + +#+RESULTS: + ** org-drill A package for learning and memorizing using *spaced repetition*, inspired by applications like Anki. @@ -479,3 +505,34 @@ Zettelkasten in org-mode. ;; (setq org-roam-dailies-directory "Daily")) #+end_src +** org-super-agenda + +#+begin_src emacs-lisp +(use-package! org-super-agenda + :config + (setq org-super-agenda-groups + '(;; Each group has an implicit boolean OR operator between its selectors. + (:name "Important" + ;; Single arguments given alone + ;;:tag "bills" + :priority "A") + (:name "Habits" + :habit t) + + (:name "Appointments" + :file-path "Calendar\.org") + + (:name "Shopping" + :tag "shopping") + ;; Set order of multiple groups at once + (:priority<= "B" + ;; Show this section after "Today" and "Important", because + ;; their order is unspecified, defaulting to 0. Sections + ;; are displayed lowest-number-first. + :order 1) + ;; After the last group, the agenda will display items that didn't + ;; match any of these groups, with the default order position of 99 + )) + :init + (org-super-agenda-mode t)) +#+end_src diff --git a/config/dot_config/doom/packages.el b/config/dot_config/doom/packages.el index 46750a6..48ce7c3 100644 --- a/config/dot_config/doom/packages.el +++ b/config/dot_config/doom/packages.el @@ -16,6 +16,7 @@ (package! nov) (package! olivetti) (package! org-auto-tangle) +(package! org-caldav) (package! org-drill) (package! org-habit-stats) (package! org-noter)