summaryrefslogblamecommitdiffstats
path: root/orgsettings.el
blob: 51efcb819e245d0e435b59631e62f5a03f755a42 (plain) (tree)








































































































































































































                                                                                                                  
;;; package --- Summary

;;; Commentary:
;; Putting org settings into its separate file.

;;; Code:
(require 'org)

;; remove tags from the agenda view
(setq org-agenda-remove-tags t)

;; START indented
(setq org-startup-indented t)

;; START folded
(setq org-startup-folded t)

;; START hidden asterisks
(setq org-hide-leading-stars t)

;; basic agenda stuff
(setq org-directory "~/Nextcloud/org")
(setq org-agenda-files "~/Nextcloud/org/agenda-files.org")
(setq org-default-notes-file (concat org-directory "/refile.org"))
(setq diary-file "~/Nextcloud/org/emacs-diary")
;; set day view as default
(setq org-agenda-span 'day)

(define-key global-map "\C-cl" 'org-store-link)
(define-key global-map "\C-ca" 'org-agenda)
(setq org-log-done 'time)
(setq org-agenda-include-diary t)
(setq org-return-follows-link t) ;; not working! use C-c C-o instead - that is from org and it works


;; enable python for Org-babel (doing source code stuff in org mode)
     (org-babel-do-load-languages
      'org-babel-load-languages
      '((emacs-lisp . nil)
        (python . t)))

;; Enable state logging enable for the TODO state in org mode i.e. the "!" part
 (setq org-todo-keywords
       (quote
        ((sequence "TODO(t!)" "NEXT(n!)" "READ(r!)" "WRITE(o!)" "FIXME(f!)" "BUG(b!)" "|" "DONE(d!)")
         (sequence "WAITING(w@/!)" "SOMEDAY(s@/!)" "|" "CANCELLED(c@/!)"))))

;; Capture shit
(define-key global-map "\C-cc" 'org-capture)
(setq org-default-notes-file "~/Nextcloud/org/refile.org")
(setq org-capture-templates
      (quote (("z" "Todo" entry (file "~/Nextcloud/org/todo.org")
               "* TODO %?")
              ("o" "On-call log" entry (file "~/Nextcloud/org/oncall-logs.org")
               "* TODO %? :oncall:\nDetails of alert: \nEntered on %U\n")
              ("j" "Journal" entry (file+datetree "~/Nextcloud/org/journal.org")
               "* %?\nEntered on %U\n %i\n %a")
              ("e" "Emacs Tip" entry (file+headline "~/Nextcloud/org/emacs-tips.org" "Emacs Tips")
               "* %?\n %i\n %a")
              ("r" "RAM TODO/FIXME/BUG" entry (file+headline "~/Nextcloud/org/ram.org" "Tasks")
               "* %?\n%a"))))


;; test for colourising TODO tags
(setq org-tag-faces
      (quote (("code" :foreground "green yellow")
          ("read" :foreground "orange")
          ("urgent" :foreground "red" :background "white" :underline t)
          ("laptop" :foreground "orange")
          ("home" :foreground "orchid")
          ("work" :foreground "tomaton" :underline t)
          ("ram" :foreground "orange red")
          ("brainstorm" :foreground "aquamarine")
          ("research" :foreground "mint cream")
          ("oncall" :foreground "yellow" :weight bold)
          ("repeating" :foreground "pale turquoise")
          ("phone" :foreground "hot pink"))))

;; remap some keys
;; (global-set-key (kbd "<f1>") 'org-agenda)

;; colourize the headline tags
(setq org-todo-keyword-faces
      (quote (("TODO" :foreground "red" :weight bold)
              ("NEXT" :foreground "cyan" :weight bold)
          ("FIXME" :foreground "yellow" :weight bold)
          ("BUG" :foreground "yellow" :weight bold)
              ("DONE" :foreground "forest green" :weight bold)
              ("READ" :foreground "orange" :weight bold)
              ("WRITE" :foreground "magenta" :weight bold)
              ("CANCELLED" :foreground "forest green" :weight bold)
              ("WAITING" :foreground "MediumOrchid1" :weight bold)
              ("SOMEDAY" :foreground "forest green" :weight bold))))

;; use fast selection
(setq org-use-fast-todo-selection t)

;; getting much of this stuff form http://doc.norang.ca/org-mode.html by the way
;; use shift and arrows to change stage a TODO item without logging the change, which is great for fixing mistakes
(setq org-treat-S-cursor-todo-selection-as-state-change nil)

;; tag stuff automatically dependent on a change of state
(setq org-todo-state-tags-triggers
      (quote (("CANCELLED" ("CANCELLED" . t))
              ("WAITING" ("WAITING" . t))
              ("HOLD" ("WAITING") ("HOLD" . t))
              (done ("WAITING") ("HOLD"))
              ("TODO" ("WAITING") ("CANCELLED") ("HOLD"))
              ("NEXT" ("WAITING") ("CANCELLED") ("HOLD"))
              ("DONE" ("WAITING") ("CANCELLED") ("HOLD")))))


;; START ---STUFF PULLED FROM emacs-leuven.el ----START
;; REMOVE THIS SECTION AND LOAD emacs-leuven.el again in init.el
;; if you want to go back to full emacs-leuven config

;; Settings for time grid for agenda display.
(setq org-agenda-time-grid '((daily remove-match)
                               ""
                               (0600 0800 1000 1200 1400 1600 1800 2000 2200)))

;; String for the current time marker in the agenda.
(setq org-agenda-current-time-string "Right now")

;; 10.4.3 Sorting structure for the agenda items of a single day.
(setq org-agenda-sorting-strategy   ; custom value
      '((agenda time-up category-up priority-down effort-down)
        (todo category-up priority-down effort-down)
        (tags category-up priority-down effort-down)
        (search category-up)))

;; Format string for displaying dates in the daily/weekly agenda
;; and in the timeline.
(setq org-agenda-format-date
      (concat                         ; "\n"
              "%Y-%m-%d" " %a "
              ;; (make-string (1- (window-width)) (string-to-char "_"))))
              (make-string 65 (string-to-char " "))
              "_"
              ;; (make-string 1 ?\u25AE)
              ))

  ;; Faces for specific Priorities (#A, #B and #C).
  (setq org-priority-faces
        '((?A . (:foreground "#CC0000" :background "#FFE3E3"))
          (?B . (:foreground "#64992C" :background "#EBF4DD"))
          (?C . (:foreground "#64992C" :background "#FFFFFF"))))

;; END ---STUFF PULLED FROM emacs-leuven.el ----END

(setq org-agenda-custom-commands
      (quote (("N" "Agenda and NEXT TODOs"
	       ((agenda "")
		(todo "NEXT")))
	      ("y" "Agenda and All TODOS"
	       ((agenda "")
		(alltodo ""))))

;; BELOW IS A BIGGER EXAMPLE OF THE FUNC ABOVE
;; setting custom views in the agenda ------- learned a lot about elist doing this!
;; (setq org-agenda-custom-commands
;;       (quote (("A" "Agenda and All TODOs"
;;                ((agenda "")
;;                 (alltodo "")))
;;               ("N" "Agenda and NEXT TODOs"
;;                ((agenda "")
;;                 (todo "NEXT")))
;;               ("G" "Agenda, NEXT and All TODOs"
;;                ((agenda "")
;;                 (todo "NEXT")
;;                 (alltodo "")))
;;               ("R" "Agenda and READ TODOs"
;;                ((agenda "")
;;                 (todo "READ")))
;;               ("c" "Code BUG/FIXME"
;;                ((agenda "")
;;                 (todo "BUG")
;;                 (todo "FIXME")))
;;               ("o" "On-call logs"
;;                ((agenda "")
;;                 (tags "oncall"
;;                       (quote (org-agenda-overriding-header "On Call Logs")))))
;;               ("r" "RAM stuff"
;;                ((agenda "")
;;                 (tags "ram"
;;                       (quote (org-agenda-overriding-header "RAM Stuff")))))
;;               ("H" "Agenda and Habits"
;;                ((agenda "")
;;                 (tags-todo "STYLE=\"habit\""
;;                        (quote (org-agenda-overriding-header "Habits"))))))))

;; use a single archive file for org
(setq org-archive-location "~/Nextcloud/org/archive/archive.org::* From %s")

;; refiling properly (or generally because everything is included)
(setq org-refile-targets (quote ((nil :maxlevel . 9)
                 (org-agenda-files :maxlevel . 9))))

(setq org-ellipsis "...")

;; END OF ORG MODE STUFF