193 lines
5.9 KiB
Org Mode
193 lines
5.9 KiB
Org Mode
|
#+title: Setup Fschl Org Configuration
|
||
|
#+PROPERTY: header-args:emacs-lisp :tangle ./fschl-org.el :mkdirp yes
|
||
|
|
||
|
* Basic configuration
|
||
|
|
||
|
** Additional Packages
|
||
|
|
||
|
#+begin_src emacs-lisp
|
||
|
;;; fschl-org.el -- Fschl Crafted Emacs user customization file -*- lexical-binding: t; -*-
|
||
|
;; This file is generated from fschl-org.org. If you want to edit the
|
||
|
;; configuration, DO NOT edit fschl-org.el, edit fsch-org.org, instead.
|
||
|
|
||
|
;;(add-to-list 'package-selected-packages 'org-roam)
|
||
|
(add-to-list 'package-selected-packages 'ox-latex)
|
||
|
(add-to-list 'package-selected-packages 'ox-koma-letter)
|
||
|
(add-to-list 'package-selected-packages 'ox-moderncv)
|
||
|
(package-install-selected-packages :noconfirm)
|
||
|
#+end_src
|
||
|
|
||
|
** Configure Org-Roam
|
||
|
#+begin_src emacs-lisp
|
||
|
;;(setq org-roam-directory (file-truename "~/org-roam"))
|
||
|
;;(org-roam-db-autosync-mode)
|
||
|
#+end_src
|
||
|
** Setup Org-mode Key Map
|
||
|
#+begin_src emacs-lisp
|
||
|
(keymap-global-set "C-c c" #'org-capture)
|
||
|
(keymap-global-set "C-c l" #'org-store-link)
|
||
|
(global-set-key (kbd "<f8>") #'org-agenda)
|
||
|
(global-set-key (kbd "<f7>") #'org-cycle-agenda-files)
|
||
|
#+end_src
|
||
|
|
||
|
** Setup Agenda Files
|
||
|
|
||
|
#+begin_src emacs-lisp
|
||
|
(setq org-default-notes-file "~/Documents/Org/tasks.org")
|
||
|
(setq org-agenda-files
|
||
|
(quote ("~/Documents/Org/tasks.org"
|
||
|
"~/Documents/Org/journal.org"
|
||
|
"~/Documents/Org/private.org"
|
||
|
"~/Documents/Org/projects.org"
|
||
|
"~/Documents/Org/birthdays.org")))
|
||
|
#+end_src
|
||
|
|
||
|
Add Week to Calendar
|
||
|
|
||
|
#+begin_src emacs-lisp
|
||
|
(setq calendar-week-start-day 1)
|
||
|
(setq calendar-intermonth-text
|
||
|
'(propertize
|
||
|
(format "%2d"
|
||
|
(car
|
||
|
(calendar-iso-from-absolute
|
||
|
(calendar-absolute-from-gregorian (list month day year)))))
|
||
|
'font-lock-face 'font-lock-warning-face))
|
||
|
|
||
|
(setq calendar-intermonth-header
|
||
|
(propertize "KW" ; or e.g. "Wk"
|
||
|
'font-lock-face 'font-lock-keyword-face))
|
||
|
#+end_src
|
||
|
|
||
|
#+begin_src emacs-lisp
|
||
|
(setq org-todo-keywords
|
||
|
(quote ((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d)")
|
||
|
(sequence "WAITING(w@/!)" "HOLD(h@/!)" "|" "CANCELLED(c@/!)" "PHONE" "MEETING"))))
|
||
|
(setq org-todo-keyword-faces
|
||
|
(quote (("TODO" :foreground "red" :weight bold)
|
||
|
("NEXT" :foreground "blue" :weight bold)
|
||
|
("DONE" :foreground "forest green" :weight bold)
|
||
|
("WAITING" :foreground "orange" :weight bold)
|
||
|
("HOLD" :foreground "magenta" :weight bold)
|
||
|
("CANCELLED" :foreground "forest green" :weight bold)
|
||
|
("MEETING" :foreground "forest green" :weight bold)
|
||
|
("PHONE" :foreground "forest green" :weight bold))))
|
||
|
#+end_src
|
||
|
|
||
|
** Setup Capture Templates
|
||
|
|
||
|
- https://orgmode.org/manual/Template-elements.html
|
||
|
- https://orgmode.org/manual/Template-expansion.html
|
||
|
|
||
|
*** Export Letter
|
||
|
|
||
|
#+begin_src emacs-lisp
|
||
|
(eval-after-load 'ox '(require 'ox-koma-letter))
|
||
|
(eval-after-load 'ox '(require 'ox-moderncv))
|
||
|
(eval-after-load 'ox-koma-letter
|
||
|
'(progn
|
||
|
(add-to-list 'org-latex-classes
|
||
|
'("Brief-de-modern"
|
||
|
"\\documentclass\[Brief-de-modern\]\{scrlttr2\}
|
||
|
\[DEFAULT-PACKAGES]
|
||
|
\[PACKAGES]
|
||
|
\[EXTRA]"))
|
||
|
|
||
|
;; \\usepackage[english]{babel}
|
||
|
;; \\setkomavar{frombank}{(1234)\\,567\\,890}
|
||
|
|
||
|
(setq org-koma-letter-default-class "Brief-de-modern")))
|
||
|
#+end_src
|
||
|
|
||
|
*** Capture Templates
|
||
|
|
||
|
#+begin_src emacs-lisp
|
||
|
(setq org-capture-templates
|
||
|
'(("t" "todo list item" entry
|
||
|
(file+olp+datetree "~/Documents/Org/tasks.org")
|
||
|
"* TODO %?\n SCHEDULED: %^T"
|
||
|
:tree-type month
|
||
|
)
|
||
|
("T" "todo list item with source" entry
|
||
|
(file+olp+datetree "~/Documents/Org/tasks.org")
|
||
|
"* TODO %?\n %a \n SCHEDULED: %^T \n %^G \n"
|
||
|
:tree-type month
|
||
|
)
|
||
|
|
||
|
("r" "Todo research some website/software" entry
|
||
|
(file+olp+datetree "~/Documents/Org/tasks.org")
|
||
|
"* TODO %?\n SCHEDULED: %^T \n %^L \n"
|
||
|
:tree-type month
|
||
|
)
|
||
|
; ("l" "letter to Documents/letters/<datetime.org>"
|
||
|
; entry (file fschl/create-org-letter)
|
||
|
; "* Preamble :noexport:
|
||
|
;# #+TITLE: ?
|
||
|
;# #+DATE:
|
||
|
;
|
||
|
;#+SUBJECT: Betreff des Briefs
|
||
|
;
|
||
|
;#+LCO: Absender-Frieder
|
||
|
;# #+LCO: Absender-Marcelle
|
||
|
;# #+LCO: Absender-FamilieSchlesier
|
||
|
;#+LCO: Brief-de-modern
|
||
|
;#+STARTUP: showall
|
||
|
;
|
||
|
;* To-address :to:
|
||
|
;
|
||
|
;# * From :from:
|
||
|
;
|
||
|
;* Sehr geehrte Damen und Herren,
|
||
|
;?
|
||
|
;
|
||
|
;* Mit freundlichen Grüßen, :closing:
|
||
|
;
|
||
|
;Frieder Schlesier"
|
||
|
; )
|
||
|
("m" "Schedule a meeting" entry
|
||
|
(file+headline "~/Documents/Org/tasks.org")
|
||
|
"* MEETING %?\n SCHEDULED: %^T\n %a"
|
||
|
)
|
||
|
("p" "Schedule a phone call" entry
|
||
|
(file+headline "~/Documents/Org/tasks.org")
|
||
|
"* PHONE %?\n SCHEDULED: %^T\\n %a"
|
||
|
)
|
||
|
("a" "Articles: keep notes of online articles"
|
||
|
entry
|
||
|
(file+datetree "~/Documents/Org/journal.org")
|
||
|
"* %? \n%x \n %u\n- $?"
|
||
|
:tree-type month
|
||
|
:kill-buffer t
|
||
|
:empty-lines-before 1)
|
||
|
)
|
||
|
)
|
||
|
#+end_src
|
||
|
|
||
|
** TODO not sure if we actually need this
|
||
|
#+begin_src emacs-lisp
|
||
|
(setq org-ref-default-bibliography '("~/Documents/references/references.bib")
|
||
|
org-ref-pdf-directory "~/Documents/references/"
|
||
|
org-ref-bibliography-notes "~/Documents/references/notes.org")
|
||
|
#+end_src
|
||
|
|
||
|
** Auto-tangle on save
|
||
|
|
||
|
Whenever you edit =init.org= in Emacs and save it, it updates =init.el= in
|
||
|
the same directory.
|
||
|
|
||
|
See the [[https://orgmode.org/manual/Extracting-Source-Code.html][Org Manual]] for details and alternatives.
|
||
|
|
||
|
#+begin_src emacs-lisp
|
||
|
;; Tangle the code blocks to fschl-org.el on save.
|
||
|
(defun org-babel-tangle-config ()
|
||
|
(when (string-equal (buffer-file-name)
|
||
|
(expand-file-name "fschl-org.org" user-emacs-directory))
|
||
|
;; Dynamic scoping to the rescue
|
||
|
(let ((org-confirm-babel-evaluate nil))
|
||
|
(org-babel-tangle))))
|
||
|
|
||
|
(add-hook 'org-mode-hook
|
||
|
(lambda ()
|
||
|
(add-hook 'after-save-hook #'org-babel-tangle-config)))
|
||
|
#+end_src
|