|
|
|
|
@ -624,6 +624,11 @@ |
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|
|
(setq org-agenda-skip-deadline-if-done t) |
|
|
|
|
#+END_SRC |
|
|
|
|
Custom separator |
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|
|
(setq org-agenda-block-separator ?─) |
|
|
|
|
#+END_SRC |
|
|
|
|
|
|
|
|
|
Ideally I should tag some tasks as “break” tasks, which are suitable to be |
|
|
|
|
taken care of during a pomodoro break. Such tasks should be marked with |
|
|
|
|
tags ~:5m:~ and ~:20m:~ according to the estimate on the time it would take to |
|
|
|
|
@ -645,6 +650,71 @@ |
|
|
|
|
(tags-todo "5m") |
|
|
|
|
(tags-todo "20m"))))) |
|
|
|
|
#+END_SRC |
|
|
|
|
Custom agenda view |
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|
|
(defun org-agenda-prepare (&optional name) |
|
|
|
|
(let ((filter-alist (if org-agenda-persistent-filter |
|
|
|
|
(with-current-buffer |
|
|
|
|
(get-buffer-create org-agenda-buffer-name) |
|
|
|
|
(list `(tag . ,org-agenda-tag-filter) |
|
|
|
|
`(re . ,org-agenda-regexp-filter) |
|
|
|
|
`(effort . ,org-agenda-effort-filter) |
|
|
|
|
`(cat . ,org-agenda-category-filter)))))) |
|
|
|
|
(if (org-agenda-use-sticky-p) |
|
|
|
|
(progn |
|
|
|
|
(put 'org-agenda-tag-filter :preset-filter nil) |
|
|
|
|
(put 'org-agenda-category-filter :preset-filter nil) |
|
|
|
|
(put 'org-agenda-regexp-filter :preset-filter nil) |
|
|
|
|
;; Popup existing buffer |
|
|
|
|
(org-agenda-prepare-window (get-buffer org-agenda-buffer-name) |
|
|
|
|
filter-alist) |
|
|
|
|
(message "Sticky Agenda buffer, use `r' to refresh") |
|
|
|
|
(or org-agenda-multi (org-agenda-fit-window-to-buffer)) |
|
|
|
|
(throw 'exit "Sticky Agenda buffer, use `r' to refresh")) |
|
|
|
|
(setq org-todo-keywords-for-agenda nil) |
|
|
|
|
(put 'org-agenda-tag-filter :preset-filter |
|
|
|
|
org-agenda-tag-filter-preset) |
|
|
|
|
(put 'org-agenda-category-filter :preset-filter |
|
|
|
|
org-agenda-category-filter-preset) |
|
|
|
|
(put 'org-agenda-regexp-filter :preset-filter |
|
|
|
|
org-agenda-regexp-filter-preset) |
|
|
|
|
(put 'org-agenda-effort-filter :preset-filter |
|
|
|
|
org-agenda-effort-filter-preset) |
|
|
|
|
(if org-agenda-multi |
|
|
|
|
(progn |
|
|
|
|
(setq buffer-read-only nil) |
|
|
|
|
(goto-char (point-max)) |
|
|
|
|
(unless (or (bobp) org-agenda-compact-blocks |
|
|
|
|
(not org-agenda-block-separator)) |
|
|
|
|
(insert "\n" |
|
|
|
|
(if (stringp org-agenda-block-separator) |
|
|
|
|
org-agenda-block-separator |
|
|
|
|
(make-string (window-width) org-agenda-block-separator)) |
|
|
|
|
"\n\n")) |
|
|
|
|
(narrow-to-region (point) (point-max))) |
|
|
|
|
(setq org-done-keywords-for-agenda nil) |
|
|
|
|
;; Setting any org variables that are in org-agenda-local-vars |
|
|
|
|
;; list need to be done after the prepare call |
|
|
|
|
(org-agenda-prepare-window |
|
|
|
|
(get-buffer-create org-agenda-buffer-name) filter-alist) |
|
|
|
|
(setq buffer-read-only nil) |
|
|
|
|
(org-agenda-reset-markers) |
|
|
|
|
(let ((inhibit-read-only t)) (erase-buffer)) |
|
|
|
|
(org-agenda-mode) |
|
|
|
|
(setq org-agenda-buffer (current-buffer)) |
|
|
|
|
(setq org-agenda-contributing-files nil) |
|
|
|
|
(setq org-agenda-columns-active nil) |
|
|
|
|
(org-agenda-prepare-buffers (org-agenda-files nil 'ifmode)) |
|
|
|
|
(setq org-todo-keywords-for-agenda |
|
|
|
|
(org-uniquify org-todo-keywords-for-agenda)) |
|
|
|
|
(setq org-done-keywords-for-agenda |
|
|
|
|
(org-uniquify org-done-keywords-for-agenda)) |
|
|
|
|
(setq org-agenda-last-prefix-arg current-prefix-arg) |
|
|
|
|
(setq org-agenda-this-buffer-name org-agenda-buffer-name) |
|
|
|
|
(and name (not org-agenda-name) |
|
|
|
|
(setq-local org-agenda-name name))) |
|
|
|
|
(setq buffer-read-only nil)))) |
|
|
|
|
#+END_SRC |
|
|
|
|
*** Reverting stuff from orgzly |
|
|
|
|
#+BEGIN_SRC emacs-lisp |
|
|
|
|
(defun org-revert-all-orgzly-buffers (&optional ALL) |
|
|
|
|
|