Filtering (Hide, Show etc)

Original Post by @Folke on May 4th

Hi James,

I like the way areas and tags appear on the top, and that we can press several such buttons in any combination. Great start.

I have an idea that i so simple and great that I do not know why no app has it, but first let me mention a few observations about the present beta1 filters:

  • all areas and tags show in the bar even if there are no matching tasks in the list below - it could get very cluttered up there in the long run.
  • the activated filter buttons stay in place even if you jump between lists: Sometimes this is actually very good indeed, exactly what you would want, but sometimes (often) you’d expect to get a fresh start when you click into another list. Perhaps a button called “Freeze filters” etc could help solve this? Or a user preference default?
  • when we have selected all area buttons individually we get the same result as if none at all had been pressed (which seems perfectly correct) - but the buttons then still stay depressed (gray), which struck me as odd - they could have turned white (off) when they became neutralized. I am not sure what is best. Probably there should be a “Clear filters” button" (could be many buttons to press otherwise), and perhaps especially so if filters stay active across lists and you want a fresh start.
  • the indication of “off” and “on” (white or gray button) is not super-intuitive. It took me a while to figure it out. Perhaps a little red dot in the corner of the button would be a better indicator of “on”?
  • for the area buttons, the filtering is Boolean OR whereas for the tags the filtering is Boolean AND. This is inconsistent and makes it more difficult to figure out.
  • although AND filtering (like in Nirvana and in this beta1) and OR filtering (like in Zendone) both have their good uses, I personally find OR filtering more useful for practical purposes, with the modest size of Next lists that I usually have (15-150 tasks, typically around 50). For example, if I press the @Peter, @Paul and @Mary buttons I see all tasks that have any of these names in them, whereas with AND filtering I get only the rare few that have all three names.


I would like to be able to exclude tasks that have certain tags, and I think the solution is very simple. But here is why I would like it:

I usually avoid tagging, because it takes a lot of effort. But I realize tags could be very useful for making precise selections if only I had the right tags and the right tools. I normally do not want to tag my ordinary “average” tasks with more than necessary (because of the effort), but if I could tag only the ones that really stand out in some way (tag them with whatever it is that stands out about them), then the tagging work would be much more reasonable.

Silly-simple example: Let’s say a fraction of my tasks require @Silence. This would not pose a big tagging problem in itself, because there aren’t that many of them, and it might even be worth it to have that tag, for example if I want to make the best use of a particularly quiet moment. But if I am in a noisy environment I would instead like to hide those tasks from the Next list. If this then means (as it does in all apps I have ever seen) that I would have to tag the vast majority of tasks with @NoSilenceRequired in order to be able to exclude those that do require silence, then this would be too much work, so I would not do that. And therefore maybe I would not even implement the @Silence tag itself, unless I expect to look for them very often. And there are many other contextual factors that I would simply not have tags for. But if I could quickly and easily filter-click for NOT@Silence (noisy now) and NOT@Jackie (she is down with a fever) and NOT@Errand (it is raining heavily) and NOT@HighEnergy and NOT@LongTime etc etc, as many as I want, and have all such tasks excluded from the list, then I believe I would implement quite a lot of highly significant tags and also use them a lot whenever I go through my Next list and want to narrow down my choices and see all tasks that could be suitable on one single screen.


Place a toggle button called “Show/Hide” on the filter bar. Default position Show. Then you would have an OR filter, showing tasks that have any of the selected tags (just like Zendone). By pressing the Hide toggle the selection would be exactly inverted, i.e. all those tasks that meet any of those criteria will be hidden.

If many people like to have AND filtering as well, there could be a separate toggle for AND vs OR (perhaps better called Narrow vs Wide or something like that?). Default position: OR (Wide). If you select the Narrow position you would get AND filtering (just like Nirvana; and if you also press the Hide button this selection would be inverted).

Slightly more complicated and much more powerful solutions are also possible, e.g. to alt-click, ctrl-click and shift-click different tags in any order to indicate NOT, AND and OR filtering of those tags based on the filtered result so far - but the first method I believe is simpler and good enough, and actually even better if you consider also implementing it consistently in a phone app that typically does not have those special keys.


I like the idea of flexible And/Or and Show/Hide filtering. Honestly, I think we have several other “must do” items before we get around to doing this item, but I will add it to our backlog list to consider.

You also mentioned several other usability ideas. I will review those as well.

Keep it coming!

If you are pressed for time, I suggest you start with changing the current AND filter to OR. OR is generally more useful and it also matches the OR filtering of the Areas on the left much better (consistency; shorter learning curve).

As a second step you could throw in the inversion (exclusion) toggle (“Show/Hide”). This is dynamite! Opens up entirely new possibilites for situational filtering in the core spirit of GTD.

I am not sure if anyone needs AND, but the AND/OR button could be a third step, if requested. (I personally have minimal use for it. Never ever used it in Nirvana.)

Yes, we are looking into making the switch from AND to OR.

In today’s build we switched the AND filter for Tags to OR

Thanks for your feedback!

I think it is a good move! :slight_smile:

OR filtering is great for those of us (like me) who tag sparingly, and prefer to tag mainly for exceptions rather than for the normal.

I think at some later stage, when you have thought about it a bit further, you will find it would be relatively easy to implement the “killer feature” of exclusion filtering - just exclude tasks with the selected tags instead of showing them. This capability has been asked for repeatedly on some forums (not only by me ;-)), and absolutely no app has this done this as far as I know. I know that the whole idea may sound a bit abstract, but I think when people discover that this allows them to cut down tagging by maybe 30-70%, or have lots and lots of specialized tags without having to apply any more tags at all to each task, and be able to get a wonderfully precise set of suggestions on one single list for what tasks they should be considering, then this feature might become the immensely popular must-have that it “theoretically” deserves to be.

very useful ideas!

HI James, for those of us who use tags for more than one category purpose having only OR makes it much less useful. best case would be a toggle button to have the logic switch between and/or and next best for me would be AND. i’m using tags for traditional context (home, online, etc) and a planning time frame function since there is no ability to filter on deadline or scheduled dates. using OR means these two don’t work together as the results are not useful.
OR does make sense if tags are only used for one purpose but as you stated in an earlier explanation the intent was to have them be flexible so please consider adding the capability to toggle between and and or.

Hi @Patrrick - We do have this on our list of things to do… However it’s a long list… so it might be a while. Thanks for adding your thoughts on it. It really helps to have real world use cases to support these requests.

The thing is that each of the alternatives has its good uses, and the best (I mean really; not just theoretically) is to have all of these filtering options, ideally in any combination:

  • OR filtering is good for finding tasks that are possible to do with the few people or tools you happen to have around you
  • AND filtering is good for finding a very narrow set of tasks that match multiple criteria, and is particularly useful if you have extremely long lists of tasks and/or have lots of tags
  • NOT filtering is good for drastically reducing your tagging work, and is also good for creating a realistic “base list” (all impossible tasks eliminated) which you could then use repeatedly during the day or morning for making more specific selections

On a keyboard operated computer all this is simple to implement. Just assign shift-click, alt-click and ctrl-click to the three filters - to either include tasks with this tag (OR), or to exclude them (NOT), or to select even more precisely (AND). Simply apply these commands as they are entered, without any “memory” or “grammar/syntax” etc.

But how to implement it for a touch screen I do not know; it sounds a bit boring to have to tap two buttons for each command - but it would work, of course.

A simple initial step - a great improvement that I think you have mentioned - is to introduce an “inversion button” for the tag filter (just like you have for the areas). This would in essence give you an elimination filter (NOT filter), allowing users to save maybe 50% - 70% on their tagging work and also allow them to prefilter the long lists by excluding all tasks that are not even possible today. (The way this filter would work is that when the inversion button is clicked, instead of showing all the ORed tasks, these ORed tasks would become hidden and the rest shown instead.)

1 Like