https://gitlab.com/mtekman/org-treescope.el
Many people place the power of org-mode into the reports provided by org-agenda, which filters and summarizes org entries by tags, todo states, priorities and tags.
I don’t do that. My mind is simple. I like trees. Trees are easy. You have one org mode file and you filter it for what you need, whether it’s a quick glance at what you did last week or a peek at what you’re currently working on. This package provides an interactive filter window using the excellent org-ql library as well as the calendar window from calendar.el
to help with defining the scope of the filtering query.
(use-package org-treescope
:custom
(org-treescope-cyclestates-todo '(nil ("TODO") ("WAITING" "DONE")))
(org-treescope-cyclestates-priority '(nil ("A" "B" "C") ("D")))
:bind
(("C-c M-t" . org-treescope)))
Once org-treescope
is run, a minor mode is launched with the following controls which are designed to not interfere with calendar-mode
.
Binding | Action |
---|---|
left/right | Shift current range one day backward / forward |
up/down | Shift current range one week backward / forward |
C-left/right | Move lowerbound of range one day backward / forward |
M-left/right | Move upperbound of range one day backward / forward |
Binding | Action |
---|---|
C-M-left/right | Show all dates before/after centre date |
C-M-down | Reset to range in previous section |
Binding | Action |
---|---|
C-up/down | Cycle through user-defined groups of TODO states |
M-up/down | Cycle through user-defined groups of PRIORITY ranges |
t | Cycle through time modes TIMESTAMP , SCHEDULED , DEADLINE , CLOSED |
The user should check that the below scope types are set to reasonable ranges for that file.
Currently supported types are TODO
groups, PRIORITY
ranges, and TIMESTAMP
types. Currently these are set to:
Main Customisable Variables | Current Setting | Info |
---|---|---|
org-treescope-cyclestates-todo | DONE , TODO DOING , TODO DONE WAITING | Any number of elements in a group |
org-treescope-cyclestates-priority | A , A C , D | Any number of elements in a group |
org-treescope-cyclestates-time | ts , scheduled , deadline , closed | Other predicates can be added |
These can be customised to specify different groups/pairs that might be more useful to the user.
The faces used within the calendar can also be customised, and the user should see the defface
definitions used in the source.
Variable | Info |
---|---|
org-treescope-faces-range | The face used to specify all dates within the range except the centre midpoint date. |
org-treescope-faces-midday | The face used only by the centre midpoint date. |