#+TITLE: Emacs literate config
-#+STARTUP: noindent
#+PROPERTY: header-args :tangle yes
* Header
(("C-c l" . org-store-link)
("C-c a" . org-agenda)
("C-c c" . org-capture)
- ("C-c b" . org-switchb)
("<f10>" . org-clock-out)
("<f2>" . org-clock-goto)
:map org-mode-map
*** Configuration
**** General options
#+BEGIN_SRC emacs-lisp
-(with-eval-after-load 'org-mode (add-to-list 'org-export-backends 'md))
-
-(setq org-startup-indented t
- org-indent-indentation-per-level tab-width
- org-startup-folded 'fold
- org-startup-with-inline-images t
- org-cycle-inline-images-display t
- org-cycle-separator-lines 0
- org-blank-before-new-entry '((heading) (plain-list-item . auto))
- org-M-RET-may-split-line nil
- org-treat-S-cursor-todo-selection-as-state-change nil
- org-treat-insert-todo-heading-as-state-change nil
- org-table-export-default-format "orgtbl-to-csv"
- org-list-allow-alphabetical t
- org-fold-catch-invisible-edits 'show-and-error
- org-ellipsis "↴"
- org-tags-column 0
- org-reverse-note-order t
- org-enforce-todo-dependencies t
- org-enforce-todo-checkbox-dependencies t
- org-fontify-done-headline nil
- org-fontify-todo-headline nil
- org-src-fontify-natively nil
- org-goto-interface 'outline-path-completion
- org-outline-path-complete-in-steps nil
- org-goto-auto-isearch nil
- org-special-ctrl-a/e t
- org-special-ctrl-k t
- org-return-follows-link t
- org-yank-adjusted-subtrees t
- org-src-window-setup 'current-window
- org-src-preserve-indentation t)
+ (with-eval-after-load 'org-mode (add-to-list 'org-export-backends 'md))
+
+ (setq org-startup-indented t
+ org-indent-indentation-per-level tab-width
+ org-startup-folded 'fold
+ org-startup-with-inline-images t
+ org-cycle-inline-images-display t
+ org-cycle-separator-lines 0
+ org-M-RET-may-split-line nil
+ org-list-allow-alphabetical t
+ org-fold-catch-invisible-edits 'show-and-error
+ org-ellipsis "↴"
+ org-tags-column 0
+ org-reverse-note-order t
+ org-enforce-todo-dependencies t
+ org-enforce-todo-checkbox-dependencies t
+ org-fontify-done-headline nil
+ org-src-fontify-natively nil
+ org-goto-interface 'outline-path-completion
+ org-outline-path-complete-in-steps nil
+ org-goto-auto-isearch nil
+ org-special-ctrl-a/e t
+ org-special-ctrl-k t
+ org-return-follows-link t
+ org-yank-adjusted-subtrees t
+ org-src-window-setup 'current-window
+ org-src-preserve-indentation t)
#+END_SRC
**** Time Clocking
#+BEGIN_SRC emacs-lisp
(org-clock-persistence-insinuate)
-(setq org-clock-history-length 10
- org-clock-in-resume t
+(setq org-clock-in-resume t
org-clock-out-remove-zero-time-clocks t
org-clock-persist t
org-clock-persist-query-resume nil
**** Agenda and Capture
***** Agenda settings
#+BEGIN_SRC emacs-lisp
-;; (add-hook 'org-agenda-mode-hook #'hl-line-mode)
-
(setq org-agenda-files (append '("~/org/")
(file-expand-wildcards "~/projects/*/")
(file-expand-wildcards "~/.emacs.d/config.org"))
org-agenda-span 'day
org-deadline-warning-days 30
org-agenda-window-setup 'current-window
- org-agenda-time-grid '((daily today remove-match)
+ org-agenda-time-grid '((daily today require-timed remove-match)
(600 800 1200 1700 1800)
- " ――――― "
- "")
- org-agenda-tags-column 50
+ " ┄┄┄┄┄ "
+ "┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄")
org-agenda-remove-tags t
- org-agenda-skip-additional-timestamps-same-entry t
- org-agenda-skip-deadline-if-done t
- org-agenda-skip-scheduled-if-done t
org-agenda-prefix-format '((agenda . " %?-12t% s")
(todo . " ")
(tags . " ")
(search . " "))
- org-agenda-scheduled-leaders '("BOOKED: " "Booked %2d d. ago: ")
- org-agenda-deadline-leaders '("DEADLINE: " "In %3d d.: " "%2d d. ago: ")
+ org-agenda-scheduled-leaders '("Booked: " "Booked %dd. ago: ")
+ org-agenda-deadline-leaders '("Deadline: " "In %dd.: " "Died %dd. ago: ")
org-read-date-prefer-future 'time
org-agenda-show-all-dates nil
org-agenda-start-with-log-mode t
org-agenda-log-mode-items '(closed clock state)
org-log-done 'time
- org-log-into-drawer nil
- org-log-state-notes-insert-after-drawers t
- org-log-state-notes-into-drawer nil)
+ org-log-state-notes-insert-after-drawers t)
#+END_SRC
***** Custom Agendas
#+BEGIN_SRC emacs-lisp
(defvar *re/org-agenda-undertakings*
'(tags "open" ((org-agenda-skip-function
- '(org-agenda-skip-entry-if 'notregexp "^\\*\\* "))
- (org-agenda-overriding-header "UNDERTAKINGS:"))))
+ '(org-agenda-skip-entry-if 'notregexp "^\\*\\*\\* "))
+ (org-agenda-overriding-header "UNDERTAKIŊS:"))))
(defvar *re/org-agenda-waiting*
'(todo "WAITING" ((org-agenda-skip-function
- '(org-agenda-skip-entry-if 'regexp "^\\*\\* "))
- (org-agenda-overriding-header "WAITING:"))))
+ '(org-agenda-skip-entry-if 'regexp "^\\*\\*\\* "))
+ (org-agenda-overriding-header "WAITIŊ:"))))
(defvar *re/org-agenda-two-week-overview*
'(agenda "" ((org-agenda-span 14)
(org-agenda-start-day "+1d")
(org-agenda-start-on-weekday nil)
- (org-agenda-overriding-header "TWO-WEEK UPCOMING:"))))
+ (org-agenda-overriding-header "TWO-WEEK UPCOMIŊ:"))))
(setq org-agenda-custom-commands `(("f" "Maybe Someday" tags "someday" ((org-agenda-overriding-header "SOMEDAY:")))
("i" "Inbox" ,@*re/org-agenda-inbox*)
***** Capture Templates
#+BEGIN_SRC emacs-lisp
(setq org-capture-templates '(("i" "Inbox" entry
- (file "gtd.org")
- "* %^{Description} :inbox:\n%U\n%?"
+ (file+olp "gtd.org" "Inbox")
+ "* %^{Description}\n%U\n%?"
:prepend t)
("n" "Next Action" entry
- (file "gtd.org")
- "* %^{Description} \n%U\n%?"
+ (file+olp "gtd.org" "Next")
+ "* %^{Description}\n%U\n%?"
:prepend t)
("u" "Undertaking" entry
(file+olp "gtd.org" "Undertakings")
org-attach-id-to-path-function-list '(org-attach-id-ts-folder-format
org-attach-id-uuid-folder-format))
-(defun re/org-auto-generate-ids-in-file ()
- "Add ID properties to all headlines in the current
- file which do not already have one."
- (interactive)
- (org-map-entries 'org-id-get-create))
-
(defun re/org-save-all ()
"Save all `org-agenda-files' without user confirmation."
(interactive)
#+END_SRC
**** Archiving
#+BEGIN_SRC emacs-lisp
-(defun re/org-archive-all ()
- "Archive all tasks marked `DONE' in agenda files"
- (interactive)
- (message "Archiving all completed tasks in org-agenda-files...")
- (org-map-entries (lambda ()
- (org-archive-subtree)
- (setq org-map-continue-from (org-element-property
- :begin
- (org-element-at-point))))
- "/DONE"
- 'agenda)
- (message "Archiving all completed tasks in org-agenda-files... done"))
-
(setq org-archive-location (concat "~/org/old.org_keep::datetree/")
org-agenda-text-search-extra-files '(agenda-archives))