dkellner-org.el 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. ;; dkellner-org.el --- my life in plain text
  2. ;;
  3. ;; See http://orgmode.org/ .
  4. ;; Global keybindings to quickly view my agenda and capture thoughts.
  5. (bind-key "C-c a" #'org-agenda)
  6. (bind-key "C-c c" #'dkellner/org-capture)
  7. (defun dkellner/org-capture ()
  8. (interactive)
  9. (org-capture nil "i"))
  10. ;; Basic configuration: set main org files for agenda/capturing and
  11. ;; TODO-keywords.
  12. (setq org-directory "~/org/")
  13. (setq org-agenda-files '("~/org/main.org"))
  14. (setq org-refile-targets (quote (("main.org" :maxlevel . 2)
  15. ("shopping.org" :maxlevel . 1)
  16. ("someday.org" :level . 1))))
  17. (setq org-todo-keywords '((sequence "TODO(t)" "NEXT(n)" "WAITING(w)" "|"
  18. "DONE(d)" "DEFERRED(f)")))
  19. (setq org-startup-folded t)
  20. (setq org-log-into-drawer t)
  21. (setq org-agenda-todo-ignore-scheduled 'all)
  22. (setq org-agenda-todo-ignore-deadlines 'all)
  23. (setq org-agenda-tags-todo-honor-ignore-options t)
  24. (setq org-agenda-restore-windows-after-quit t)
  25. (setq org-time-clocksum-format "%d:%02d")
  26. (setq org-enforce-todo-dependencies t)
  27. (setq org-columns-default-format
  28. "%40ITEM(Task) %3Priority(Pr.) %16Effort(Estimated Effort){:} %CLOCKSUM{:}")
  29. (setq org-export-with-sub-superscripts nil)
  30. (setq org-export-allow-bind-keywords t)
  31. ;; I mostly use the capture template for "Inbox" to put new ideas, todos etc.
  32. ;; in my `main.org' file for later processing (GTD-style).
  33. (setq org-capture-templates
  34. '(("i" "Inbox" entry (file+headline "~/org/main.org" "Inbox") "* %?")
  35. ("j" "Journal" entry (file+datetree "~/org/journal.org")
  36. "* %?" :kill-buffer t)))
  37. ;; Enable habit tracking. For more information see
  38. ;; http://orgmode.org/org.html#Tracking-your-habits .
  39. (require 'org-habit)
  40. ;; My custom agenda command is tailored to suit my workflow.
  41. (setq org-agenda-custom-commands
  42. '(("c" "Weekly overview"
  43. ((agenda "" ((org-agenda-span 8)))
  44. (todo "TODO")))
  45. ("f" "Overview: fiedlbuehl"
  46. ((agenda "" ((org-agenda-span 'day)
  47. (org-agenda-sorting-strategy '(habit-down time-up tag-up priority-down))))
  48. (tags-todo "+fiedlbuehl-TODO=\"NEXT\"")
  49. (tags-todo "+work-TODO=\"NEXT\"")
  50. (tags-todo "+laptop-TODO=\"NEXT\"")
  51. (tags-todo "+phone-TODO=\"NEXT\"")
  52. (tags-todo "+internet-TODO=\"NEXT\"")
  53. (tags-todo "+guitar-TODO=\"NEXT\"")
  54. (tags-todo "+errands-TODO=\"NEXT\"")
  55. (tags-todo "+shopping-TODO=\"NEXT\"")))
  56. ("h" "Overview: danang"
  57. ((agenda "" ((org-agenda-span 'day)
  58. (org-agenda-sorting-strategy '(habit-down time-up tag-up priority-down))))
  59. (tags-todo "+danang-TODO=\"NEXT\"")
  60. (tags-todo "+work-TODO=\"NEXT\"")
  61. (tags-todo "+laptop-TODO=\"NEXT\"")
  62. (tags-todo "+phone-TODO=\"NEXT\"")
  63. (tags-todo "+internet-TODO=\"NEXT\"")
  64. (tags-todo "+errands-TODO=\"NEXT\"")
  65. (tags-todo "+shopping-TODO=\"NEXT\"")))
  66. ("o" "Overview: office"
  67. ((agenda "" ((org-agenda-span 'day)))
  68. (tags-todo "+office-TODO=\"NEXT\"")
  69. (tags-todo "+work-TODO=\"NEXT\"")
  70. (tags-todo "+laptop-TODO=\"NEXT\"")
  71. (tags-todo "+phone-TODO=\"NEXT\"")
  72. (tags-todo "+internet-TODO=\"NEXT\"")
  73. (tags-todo "+errands-TODO=\"NEXT\"")
  74. (tags-todo "+shopping-TODO=\"NEXT\"")))
  75. ("." "Overview: elsewhere"
  76. ((agenda "" ((org-agenda-span 'day)))
  77. (tags-todo "+work-TODO=\"NEXT\"")
  78. (tags-todo "+laptop-TODO=\"NEXT\"")
  79. (tags-todo "+phone-TODO=\"NEXT\"")
  80. (tags-todo "+internet-TODO=\"NEXT\"")
  81. (tags-todo "+errands-TODO=\"NEXT\"")
  82. (tags-todo "+shopping-TODO=\"NEXT\"")))))
  83. ;; Enable more languages for Babel, especially useful for
  84. ;; "Literate Devops", see https://www.youtube.com/watch?v=dljNabciEGg .
  85. (org-babel-do-load-languages 'org-babel-load-languages '((emacs-lisp . t)
  86. (python . t)
  87. (shell . t)
  88. (dot . t)))
  89. ;; Eye candy!
  90. (setq org-hide-leading-stars t)
  91. (use-package org-bullets
  92. :config
  93. (add-hook 'org-mode-hook 'org-bullets-mode))
  94. ;; Simple presentations inside Emacs.
  95. (use-package org-tree-slide)
  96. ;; I put this in an own function because I had problems when doing
  97. ;; `set-face-foreground' with Emacs running as a daemon. It did not apply the
  98. ;; setting for newly created frames.
  99. (defun dkellner/beautify-org ()
  100. "Make org-mode look more beautiful."
  101. (dolist (face '(org-level-1 org-level-2 org-level-3))
  102. (set-face-background face nil)
  103. (set-face-attribute face nil :box nil :height 1.0))
  104. (set-face-foreground 'org-level-1 (face-foreground 'org-agenda-structure))
  105. (set-face-foreground 'org-level-2 (face-foreground 'default)))
  106. (add-hook 'org-mode-hook #'dkellner/beautify-org)
  107. (add-hook 'org-mode-hook (lambda () (auto-fill-mode 1)))
  108. (use-package org-pomodoro
  109. :bind ("C-c p" . org-pomodoro)
  110. :config
  111. (setq org-pomodoro-format "● %s"
  112. org-pomodoro-short-break-format "◔ %s"
  113. org-pomodoro-long-break-format "◕ %s"
  114. org-pomodoro-audio-player "aplay"))
  115. (provide 'dkellner-org)