reddit / emacs

Should I be able to use `org-agenda-filter` to filter by todo keyword?

graduale · 2022-10-17 03:00
Start `emacs -Q`, create an `.org` file somewhere with the following contents and add it to the agenda (with `org-agenda-file-to-front`, say): #+TODO: TODO WAIT | DONE * TODO This is a test :work: * WAIT This is another test :work: Run `(org-tags-view nil "work+TODO=\"WAIT\"")` and you will see, as expected, an agenda view containing only the task tagged "WAIT". Quit the agenda and call `org-todo-list`, then run `org-agenda-filter`, and enter `work+TODO="WAIT"` at the prompt. Do you get the exact same result? I had assumed I would, but I do not. Instead I get this message: ‘+TODO’ filter ignored because tag/category is not represented So, questions: - Is this as it should be? - Is there a way of using `org-agenda-filter` to filter out tasks with a specific todo keyword? I realize I could do this: (setq org-agenda-custom-commands '(("p" "Test" tags "+work+TODO=\"WAIT\""))) or perhaps use `org-agenda-filter-by-regexp`. My question is just whether `org-agenda-filter` should allow me to find all entries with a particular todo keyword, and if not, I guess I'd want to know why not?
yantar92 · 2022-10-19 13:02
Agenda fitlers are split into more granular filtering separate for tags, categories, effort, etc. org-agenda-filter that you tried to call ("/") does not support filtering by todo keywords. Instead, you need to use <number> r to filter by todo keyword.
graduale · 2022-10-19 13:15
Thanks. Good to know what I’m seeing is what’s expected. Is there a simple way to use that way of filtering by todo keyword to exclude items with a particular keyword?
yantar92 · 2022-10-19 13:26
I afraid it is not supported (no idea why). What you can do though is "=" - regexp filter.
graduale · 2022-10-19 13:43
Thanks for the tip. I guess I can take a break now from trying to understand the definition of `org-agenda-filter`. Back to work...