đź“–Get Things Done with Emacs
#+FILETAGS: inbox
to filter-out tags in agenda view
(setq org-agenda-hide-tags-regexp ".")
Here I can change category width
(setq org-agenda-prefix-format '((agenda . " %i %-12:c-12t% s") (todo . " %i %-12:c") (tags . " %i %-12:c") (search . " %i %-12:c")))
* Birthdays %%(org-anniversary 1976 6 1) Emacs is %d years old %%(org-anniversary 1953 3 16) Richard Stallman is %d years old
Thanks to Erik Anderson, we can also add a hook that will log when we activate a task by creating an “ACTIVATED” property the first time the task enters the NEXT state:
(defun log-todo-next-creation-date (&rest ignore) "Log NEXT creation time in the property drawer under the key 'ACTIVATED'" (when (and (string= (org-get-todo-state) "NEXT") (not (org-entry-get nil "ACTIVATED"))) (org-entry-put nil "ACTIVATED" (format-time-string "[%Y-%m-%d]")))) (add-hook 'org-after-todo-state-change-hook #'log-todo-next-creation-date)
Interesting setup for Agenda: (timegrid for today, all NEXT tasks, deadlines, inbox, tasks completed today)
(setq org-agenda-custom-commands '(("g" "Get Things Done (GTD)" ((agenda "" ((org-agenda-skip-function '(org-agenda-skip-entry-if 'deadline)) (org-deadline-warning-days 0))) (todo "NEXT" ((org-agenda-skip-function '(org-agenda-skip-entry-if 'deadline)) (org-agenda-prefix-format " %i %-12:c [%e] ") (org-agenda-overriding-header "\nTasks\n"))) (agenda nil ((org-agenda-entry-types '(:deadline)) (org-agenda-format-date "") (org-deadline-warning-days 7) (org-agenda-skip-function '(org-agenda-skip-entry-if 'notregexp "\\* NEXT")) (org-agenda-overriding-header "\nDeadlines"))) (tags-todo "inbox" ((org-agenda-prefix-format " -12t% s") (org-agenda-overriding-header "\nInbox\n"))) (tags "CLOSED>=\"<today>\"" ((org-agenda-overriding-header "\nCompleted today\n")))))))