(use-package org :ensure nil :hook ((org-mode . turn-on-auto-fill) (org-mode . abbrev-mode) (org-mode . flyspell-mode)) :init (org-clock-persistence-insinuate) :bind (("C-c l" . org-store-link) ("C-c a" . org-agenda) ("C-c c" . org-capture) ("C-c b" . org-switchb)) :init (org-babel-lob-ingest "~/.emacs.d/library-of-babel.org") (setq org-capture-templates '()) :custom (abbrev-suggest t) (org-hide-emphasis-markers nil) (org-default-notes-file "notes.org") (org-insert-mode-line-in-empty-file t) (org-adapt-indentation nil) (org-agenda-prefix-format '((agenda . " %i %-12:c%?-12t%-6e% s") (todo . " %i %-12:c %-6e") (tags . " %i %-12:c") (search . " %i %-12:c"))) (org-agenda-dim-blocked-tasks nil) (org-agenda-inhibit-startup nil) (org-agenda-span 14) (org-agenda-start-on-weekday 1) (org-agenda-include-diary t) (org-clock-out-remove-zero-time-clocks t) (org-clock-persist t) (org-clock-rounding-minutes 30) (org-confirm-babel-evaluate nil) (org-duration-format (quote h:mm)) (org-export-dispatch-use-expert-ui nil) (org-export-default-language "en") (org-export-with-smart-quotes t) (org-export-with-emphasize t) (org-export-with-special-strings t) (org-export-with-fixed-width t) (org-export-with-timestamps nil) (org-export-preserve-breaks nil) (org-export-with-sub-superscripts nil) (org-export-with-archived-trees nil) (org-export-with-author t) (org-export-with-broken-links t) (org-export-with-clocks nil) (org-export-with-creator nil) (org-export-with-drawers nil) (org-export-with-date t) (org-export-with-entities t) (org-export-with-email t) (org-export-with-footnotes t) (org-export-headline-levels 3) (org-export-with-inlinetasks nil) (org-export-with-section-numbers t) (org-export-with-planning nil) (org-export-with-priority nil) (org-export-with-properties nil) (org-export-with-statistics-cookies nil) (org-export-with-tags nil) (org-export-with-tasks nil) (org-export-with-latex t) (org-export-time-stamp-file nil) (org-export-with-title t) (org-export-with-toc t) (org-export-with-todo-keywords nil) (org-export-with-tables t) (org-export-date-timestamp-format "%a, %d %b %Y %R %z") (org-confirm-babel-evaluate nil) (org-export-backends '(ascii html latex md odt texinfo)) (org-global-properties '(("EFFORT_ALL" . "0:30 1:00 2:00 3:00 5:00 8:00"))) (org-html-doctype "html5") (org-html-html5-fancy t) (org-log-done (quote time)) (org-refile-targets '((nil :maxlevel . 3))) (org-startup-folded t) (org-startup-truncated nil) (org-src-fontify-natively t) (org-src-tab-acts-natively t) (org-src-window-setup 'other-window) (org-time-stamp-rounding-minutes '(30 30)) (org-todo-keywords '((sequence "TODO" "DOING(!)" "DONE(!)") (sequence "RECRUIT" "INTERVIEW" "QDA" "DOC" "REVIEW"))) (org-use-property-inheritance nil) (org-attach-store-link-p 'attached) :config (setq time-stamp-active t time-stamp-start "#\\+[dD][aA][tT][eE]:[ \t]*" time-stamp-end "$" time-stamp-format "[%Y-%02m-%02d %3a]") (add-hook 'before-save-hook 'time-stamp nil) (when (eq system-type 'windows-nt) (setq org-babel-sqlite3-command "c:/msys64/ucrt64/bin/sqlite3.exe")) (org-babel-do-load-languages 'org-babel-load-languages '((emacs-lisp . t) (lisp . t) (gnuplot . t) (python . t) (sqlite . t) (shell . t) (plantuml . t) (C . t))) ;; work with org-agenda dispatcher [c] "Today Clocked Tasks" to view today's clocked tasks. (defun org-agenda-log-mode-colorize-block () "Set different line spacing based on clock time duration." (save-excursion (let* ((colors (cl-case (alist-get 'background-mode (frame-parameters)) ('light (list "#d8dee9" "#e5e9f0" "#eceff4")) ('dark (list "#bf616a" "#d08770" "#ebcb8b" "#a3be8c" "#b48ead")))) pos duration) (nconc colors colors) (goto-char (point-min)) (while (setq pos (next-single-property-change (point) 'duration)) (goto-char pos) (when (and (not (equal pos (point-at-eol))) (setq duration (org-get-at-bol 'duration))) ;; larger duration bar height (let ((line-height (if (< duration 15) 1.0 (+ 0.5 (/ duration 30)))) (ov (make-overlay (point-at-bol) (1+ (point-at-eol))))) (overlay-put ov 'face `(:background ,(car colors) :foreground "black")) (setq colors (cdr colors)) (overlay-put ov 'line-height line-height) (overlay-put ov 'line-spacing (1- line-height)))))))) (add-hook 'org-agenda-finalize-hook #'org-agenda-log-mode-colorize-block)) (setq org-html-protect-char-alist '(("&" . "&") ("<" . "<") (">" . ">") (":lambda:" . "λ") (":python:" . "🐍") (":whale:" . "🐳") (":turtle:" . "🐢") (":dash:" . "💨") (":party:" . "🥳") (":see-no-evil:" . "🙈") (":cloud:" . "☁️") (":abacus:" . "🧮") (":desktop:" . "🖥️") (":rocket:" . "🚀") (":unicorn:" . "🦄") (":recycling:" . "♻") (":crystalball:" . "🔮") (":photography:" . "📷") (":money:" . "💵") (":-)" . "😊") (":-(" . "😞"))) ;; Notes are always in the context of a specific task. (add-to-list 'org-capture-templates '("N" "Power Note" entry (file "agenda/notes.org") "* %K\n- Entered on %U\n- %F\n\n%i\n%?" :empty-lines 1)) ;; A task can be everything to do which involves some kind of physical activity. (add-to-list 'org-capture-templates '("t" "Task" entry (file "agenda/tasks.org") "* TODO %? :TASK:\nEntered on %U")) ;; Remember me of an important event. (add-to-list 'org-capture-templates '("a" "Appointment" entry (file "agenda/appointments.org") "* %? :APPOINTMENT:\n%T\n")) ;; Capture a meeting (add-to-list 'org-capture-templates '("m" "Meeting" entry (file "agenda/meetings.org") "* %^{Topic} :MEETING:\n%T\n%?" :clock-in t :empty-lines 1)) ;; A journal is an unordered collection of thougths and ideas. (add-to-list 'org-capture-templates '("j" "Journal" entry (file "agenda/journal.org") "* %? :JOURNAL:\nEntered on %T\n\n" :empty-lines 1)) ;; Capture activities in a chronological order. (add-to-list 'org-capture-templates '("l" "Log" entry (file+olp+datetree "agenda/logbook.org") "* %T - %^{Activity} :LOG:\n%?" :clock-in t :empty-lines 1)) ;; Record general hours (add-to-list 'org-capture-templates '("A" "Allgemein" table-line (file+olp "agenda/hours.org") "| %u | %^{Stunden} | %? |")) (add-to-list 'org-capture-templates '("u" "UTM Parameters" entry (file+headline "utm.org" "UTM Parameters") "* %^{Campaign Name}\n:PROPERTIES:\n:Source: %^{utm_source}\n:Medium: %^{utm_medium}\n:Term: %^{utm_term}\n:Content: %^{utm_content}\n:END:\n")) (use-package org-roam :after org :init (setq org-roam-v2-ack t) (setq org-roam-db-location "~/org-roam.db") (require 'org-roam-dailies) :bind (("C-c r l" . org-roam-buffer-toggle) ("C-c r f" . org-roam-node-find) ("C-c r g" . org-roam-graph) ("C-c r i" . org-roam-node-insert) ("C-c r c" . org-roam-capture) ("C-c r j" . org-roam-dailies-map) :map org-roam-dailies-map ("t" . org-roam-dailies-capture-today) ("y" . org-roam-dailies-capture-yesterday) ("T" . org-roam-dailies-capture-tomorrow) :map org-mode-map ("C-M-i" . completion-at-point)) :custom (org-roam-completion-everywhere nil) (org-roam-dailies-capture-templates '(("d" "default" entry "* %<%R> %?" :if-new (file+head "%<%F>.org" "#+title: %<%F>\n")))) (org-roam-capture-templates '(("d" "default" plain "%?" :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n#+date: %U\n") :unnarrowed t) ("n" "Note" plain "%?" :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n#+date: %U\n%l\n\n%i") :unnarrowed t) ("p" "user" plain "%?" :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n#+date: %U\n* Jobs\n* Pains\n* Gains\n") :unnarrowed t)))) (use-package org-tree-slide :bind ("" . org-tree-slide-mode) :custom (org-image-actual-width nil)) (use-package org-web-tools :defer t :custom (org-web-tools-pandoc-sleep-time 0.4)) ;; (use-package ob-go ;; :after org) (use-package ox-reveal :after org) ;; (use-package ox-pandoc ;; :after org ;; :custom ;; (org-pandoc-options-for-beamer-pdf '((pdf-engine . "xelatex")))) ;; (defun me/write-readme-md-on-save () ;; ;; when README.org, also write README.md on save ;; (when (string-match "README" (buffer-file-name)) ;; (make-local-variable 'after-save-hook) ;; (add-hook 'after-save-hook ;; (lambda () (let ((outfile (org-export-output-file-name ".md"))) ;; (org-export-to-file 'md outfile)))))) ;; (add-hook 'org-mode-hook 'me/write-readme-md-on-save) ;; (use-package ob-go ;; :after org ;; :config ;; (append '((go . t)) org-babel-load-languages)) (use-package ob-http :after org :config (append '((http . t)) org-babel-load-languages)) ;; (use-package ob-racket ;; :after org ;; :pin manual ;; :config ;; (append '((racket . t) (scribble . t)) org-babel-load-languages)) ;; (use-package ox-rss ;; :after org) (use-package ob-restclient :after org :config (append '((restclient . t)) org-babel-load-languages))