2016-01-02 Org-mode – how to exclude certain tags from inheritance

Some time ago I decided that I’d like to utilize Org-mode Agenda’s List stuck projects feature. (I’m definitely not a fan of GTD – I already have a religion, and much better one – and in fact I’m abusing this feature to include not only “stuck” projects. But that’s another story.) I settled to a very simple definition of a stuck project:

(setq org-stuck-projects '("+project" ("TODO") () ""))

This means that every headline (on any level) with a :project: tag is considered stuck unless it has a TODO keyword.

This generated a nasty side-effect. Consider this tree:

* Project                   :project:
** DONE Task one
** TODO Task two
** A note about the project

It turns out that the TODO keyword makes the “Project” unstuck… but due to tag inheritance, the other two subheadlines become (stuck) projects in themselves.

Enter the org-tags-exclude-from-inheritance option. After I put

(setq org-tags-exclude-from-inheritance '("project"))

in my init.el, the :project: tag is no longer inherited, and the above project is (correctly) assumed to be unstuck (because of the TODO keyword – if not for that, it would be considered stuck again).

And yes, all that’s in the manual, but how many people read it cover to cover?

CategoryEnglish, CategoryBlog, CategoryEmacs, CategoryOrgMode