The agenda view helpfully only shows habits for the current day, but habits that should not yet be done still show up in the global todo list. How can I prevent this from happening?
The global todo list is global, meaning that it lists all matching entries. Unfortunately, habit entries require
TODO to be present in its headings, thus they will show up in the global todo list by default.
You can filter the global list by
regexp but these will not work with habits, because a habit entry is just an ordinary entry with a property
STYLE set to
You can, however, a) tag all your habit entry, say,
:habit: or b) use
#+CATEGORY: habit to filter out. See "10.4.4 Filtering/limiting agenda items" for more information.
Since habits are scheduled, you can just do this:
(setq org-agenda-todo-ignore-scheduled 'all) and now they should be hidden. There are also a few other options like this to filter for different things:
org-agenda-todo-ignore-deadlines org-agenda-todo-ignore-timestamp org-agenda-todo-ignore-with-date org-agenda-tags-todo-honor-ignore-options