#+property: header-args :lexical t :tangle yes :comments yes :results silent :shebang ";; -*- lexical-binding: t" :tangle-mode (identity #o644) #+title: Org (and related) mode configuration * General configuration #+begin_src emacs-lisp (use-package org :ensure t :custom ((org-export-backends '(ascii html latex texinfo))) :init (setq org-adapt-indentation t org-catch-invisible-edits 'smart org-complete-tags-always-offer-all-agenda-tags t org-cycle-separator-lines 0 ;; no blank lines when all colapsed org-deadline-warning-days 14 org-default-notes-file (expand-file-name "inbox.org" org-directory) org-directory jao-org-dir org-display-remote-inline-images 'download ;; 'skip 'cache org-ellipsis " .." ;; ↴ org-email-link-description-format "Email %c: %s" org-enforce-todo-dependencies t org-fast-tag-selection-single-key 'expert ;; org-list-demote-modify-bullet '(("+" . "-") ("-" . "+") ("*" . "+")) org-link-frame-setup '((gnus . (lambda (&optional x) (jao-open-gnus-frame))) (file . find-file-other-window)) org-log-done nil org-modules '(bbdb bibtex info eww eshell git-link) org-odd-levels-only t org-outline-path-complete-in-steps nil org-refile-allow-creating-parent-nodes 'confirm org-refile-targets '((nil :maxlevel . 5) (org-agenda-files :maxlevel . 5)) org-refile-use-outline-path 'file org-return-follows-link t org-reverse-note-order t org-special-ctrl-a/e t org-src-fontify-natively t org-startup-folded t org-tag-alist nil org-tags-column -75 org-todo-keywords '((sequence "TODO(t)" "STARTED(s!)" "|" "DONE(d!)") (sequence "REPLY(r)" "WAITING(w!)" "|" "DONE(d!)") (sequence "TOREAD(T)" "READING(R!)" "|" "READ(a!)") (sequence "|" "CANCELLED(x!)" "SOMEDAY(o!)" "DONE(d!)")) org-use-fast-todo-selection t org-use-speed-commands nil ;; t and then ? to see help org-gnus-prefer-web-links nil)) (require 'org) #+end_src * Agenda #+begin_src emacs-lisp (setq ;; org-agenda-custom-commands ;; '(("w" todo "WAITING" nil) ;; ("W" agenda "" ((org-agenda-ndays 21)))) org-agenda-files (mapcar (lambda (f) (expand-file-name f jao-org-dir)) '("inbox.org" "bigml.org")) org-agenda-current-time-string "*" org-agenda-time-grid '((daily today require-timed) (800 1000 1200 1400 1600 1800 2000) "" "·") org-agenda-include-diary t org-agenda-include-inactive-timestamps t org-agenda-inhibit-startup nil org-agenda-restore-windows-after-quit t org-agenda-show-all-dates t org-agenda-skip-deadline-if-done t org-agenda-skip-scheduled-if-done nil org-agenda-span 14 org-agenda-start-on-weekday nil org-agenda-window-setup 'current-window) #+end_src * Capture templates #+BEGIN_SRC emacs-lisp (setq org-capture-templates '(("t" "TODO" entry (file+headline "inbox.org" "Todo") "* TODO %?\n %i%a" :prepend t) ("r" "REPLY" entry (file+headline "inbox.org" "Todo") "* REPLY %:subject%?\n %t\n %i%a" :prepend t) ("a" "Appointment" entry (file+olp "inbox.org" "Appointments") "* %^T %?\n %a" :time-prompt t) ("i" "Inbox note" entry (file+headline "inbox.org" "Notes") "* %a\n %i%?(added on: %u)" :prepend t))) ;; (org-capture-upgrade-templates org-capture-templates) #+END_SRC * MIME and file apps #+BEGIN_SRC emacs-lisp (setq org-file-apps '((system . mailcap) (".*\\.djvu" . system) (t . emacs))) #+END_SRC * Appearance #+begin_src emacs-lisp ;; Show hidden emphasis markers (use-package org-appear :ensure t :hook (org-mode . org-appear-mode)) ;; #+caption: Image caption. ;; #+attr_org: :width 100 ;; [[file:path/to/image.png]] (setq org-startup-indented nil org-pretty-entities nil org-hide-emphasis-markers t org-hide-leading-stars t org-startup-with-inline-images t org-image-actual-width '(300)) #+end_src * LaTeX #+begin_src emacs-lisp (use-package org-fragtog :after org :ensure t :hook ((org-mode . org-fragtog-mode))) (require 'org-fragtog) (setq org-format-latex-options `(:foreground default :background ,(if (jao-colors-scheme-dark-p) "black" "white") :scale 1.25 :html-foreground "black" :html-background "Transparent" :html-scale 1.0 :matchers ("begin" "$1" "$" "$$" "\\(" "\\[")) org-preview-latex-image-directory (expand-file-name "~/.emacs.d/cache/ltximg/") org-latex-hyperref-template nil org-highlight-latex-and-related '(latex script entities)) (require 'ox-latex) (use-package cdlatex :ensure t :hook ((org-mode . org-cdlatex-mode)) :diminish ((cdlatex-mode . " £") (org-cdlatex-mode . " £"))) #+end_src * Export (minted) #+begin_src emacs-lisp (setq org-latex-listings 'minted org-latex-packages-alist '(("" "minted")) org-latex-pdf-process '("pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f" "pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f")) #+end_src * Babel and literate programming - [[http://cachestocaches.com/2018/6/org-literate-programming][Literate Programming with Org-mode]] - [[http://howardism.org/Technical/Emacs/literate-devops.html][Literate DevOps]] #+begin_src emacs-lisp (setq org-src-window-setup 'other-window) ;; current-window (require 'org-tempo nil t) ;;