mirror of https://github.com/Flinner/dots.git
feat(emacs): org-ql + org-super-agenda
This commit is contained in:
parent
7dbda566e8
commit
bbd553b847
|
@ -293,7 +293,7 @@ Single Esc to Quit, instead of *three*
|
|||
** Function keys
|
||||
#+begin_src emacs-lisp
|
||||
(global-set-key (kbd "M-<f8>") '(lambda () (interactive) (org-agenda nil "n")))
|
||||
(global-set-key (kbd "<f8>" ) '(lambda () (interactive) (org-agenda nil "a")))
|
||||
(global-set-key (kbd "<f8>" ) '(lambda () (interactive) (org-ql-view "Overview: Agenda-like")))
|
||||
(global-set-key (kbd "M-<f6>") 'elfeed-dashboard)
|
||||
#+end_src
|
||||
|
||||
|
@ -1107,7 +1107,7 @@ From: https://yiufung.net/post/anki-org/
|
|||
** Agenda
|
||||
*** T/ODOs
|
||||
#+begin_src emacs-lisp
|
||||
(setq org-todo-keywords '((sequence "TODO(t)" "|" "DONE(d)")
|
||||
(setq org-todo-keywords '((sequence "TODAY(y)" "TODO(t)" "NOW(o)" "NEXT(n)" "|" "DONE(d)")
|
||||
(sequence "|" "CANCELED(c)")))
|
||||
#+end_src
|
||||
|
||||
|
@ -1165,10 +1165,11 @@ From: https://yiufung.net/post/anki-org/
|
|||
|
||||
;;;; Other
|
||||
"C" 'org-capture
|
||||
"R" 'org-agenda-refile
|
||||
"R" 'my/org-agenda/process-inbox-item
|
||||
"A" 'org-agenda-archive
|
||||
"g/" 'org-agenda-filter-by-tag
|
||||
|
||||
"gr" 'org-ql-view-refresh
|
||||
"gh" 'helm-org-ql-views
|
||||
;;;; cool but inactive
|
||||
;; "gj" 'org-agenda-goto-date
|
||||
;; "gJ" 'org-agenda-clock-goto
|
||||
|
@ -1213,6 +1214,107 @@ From: https://yiufung.net/post/anki-org/
|
|||
org-habit-show-all-today t) ; show even if DONE
|
||||
#+end_src
|
||||
|
||||
*** org SUPER agenda
|
||||
#+begin_src emacs-lisp
|
||||
(use-package org-super-agenda
|
||||
:after org-agenda
|
||||
:config
|
||||
(setq org-agenda-span 'day); a week is too much
|
||||
(setq org-super-agenda-groups
|
||||
'((:log t :order 99); logs at bottom
|
||||
(:name "Today" ; today is what
|
||||
:time-grid t ; Items that appear on the time grid
|
||||
:todo "TODAY"
|
||||
:scheduled today)
|
||||
(:name "Overdue"
|
||||
:deadline past
|
||||
:scheduled past)
|
||||
(:name "Deadlines"
|
||||
:deadline t)
|
||||
(:name "To Refile"
|
||||
:tag ("INBOX"))))
|
||||
|
||||
(org-super-agenda-mode 1)
|
||||
|
||||
:hook (org-agenda-mode . origami-mode)
|
||||
;(org-agenda-mode . org-super-agenda-mode); need this sadly
|
||||
(org-agenda-mode . olivetti-mode)
|
||||
(org-agenda-mode . olivetti-mode)
|
||||
;(evil-define-key '(normal visual) 'org-super-agenda-header-map "j" 'org-agenda-next-line)
|
||||
;; evil doesn't work on headers, bruh
|
||||
:bind (:map org-super-agenda-header-map
|
||||
([tab] . origami-toggle-node)
|
||||
("j" . org-agenda-next-line)
|
||||
("k" . org-agenda-previous-line)
|
||||
("h" . evil-backward-char)
|
||||
("l" . evil-forward-char)))
|
||||
#+end_src
|
||||
|
||||
*** org-ql
|
||||
#+begin_src emacs-lisp
|
||||
(use-package helm-org-ql :after org-ql)
|
||||
#+end_src
|
||||
|
||||
#+begin_src emacs-lisp
|
||||
; TODO: tasks not in inbox, and have no schedule/effort/etc
|
||||
(use-package org-ql
|
||||
:config
|
||||
(setq org-ql-views (list (cons "Overview: Agenda-like"
|
||||
(list :buffers-files #'org-agenda-files
|
||||
:query '(and (not (done))
|
||||
(or (deadline auto)
|
||||
(scheduled :to today)
|
||||
(ts-active :on today)
|
||||
(todo "TODAY")))
|
||||
:sort '(priority date todo)
|
||||
:super-groups 'org-super-agenda-groups
|
||||
:title "Agenda-like"))
|
||||
(cons "To Refile"
|
||||
(list :buffers-files #'org-agenda-files
|
||||
:query '(parent (tags "INBOX"))
|
||||
:super-groups 'org-super-agenda-groups
|
||||
:title "Inbox"))
|
||||
(cons "Goals"
|
||||
(list :buffers-files #'org-agenda-files
|
||||
:query '(todo "LNOW" "LNEXT")
|
||||
:super-groups '((:todo "LNOW")
|
||||
(:todo "LNEXT"))
|
||||
:sort '(todo)
|
||||
:title "Goals"))
|
||||
(cons "Consoom and Create"
|
||||
(list :buffers-files #'org-agenda-files
|
||||
:query '(parent (tags "READ" "WATCH" "TO_BLOG"))
|
||||
:super-groups '((:tag "READ")
|
||||
(:tag "WATCH")
|
||||
(:tag "TO_BLOG"))
|
||||
:sort '(todo)
|
||||
:title "Goals"))
|
||||
(cons "Quick Picks"
|
||||
(list :buffers-files #'org-agenda-files
|
||||
:query '(and (not (done))
|
||||
(effort <= 10))
|
||||
:sort '(todo)
|
||||
:super-groups 'org-super-agenda-groups
|
||||
:title "Quick Picks"))))))
|
||||
|
||||
|
||||
#+end_src
|
||||
|
||||
*** Helper functions
|
||||
Stolen from: [[https://blog.jethro.dev/posts/processing_inbox/][Org-mode Workflow Part 2: Processing the Inbox · Jethro Kuan]]
|
||||
#+begin_src emacs-lisp
|
||||
(defun my/org-agenda/process-inbox-item ()
|
||||
"Process a single item in the org-agenda."
|
||||
(interactive)
|
||||
(org-with-wide-buffer
|
||||
(org-agenda-set-tags)
|
||||
;(org-agenda-priority)
|
||||
(org-agenda-set-effort)
|
||||
(org-agenda-refile nil nil t)))
|
||||
|
||||
#+end_src
|
||||
|
||||
|
||||
** org-pomodoro
|
||||
#+begin_src emacs-lisp
|
||||
(use-package org-pomodoro
|
||||
|
|
Loading…
Reference in New Issue