ActivityWatch / activitywatch

The best free and open-source automated time tracker. Cross-platform, extensible, privacy-focused.
https://activitywatch.net/
Mozilla Public License 2.0
12.37k stars 557 forks source link

Taging activities into multiple categories (+allow plugin for tagging as anybody need) #192

Closed ChameleonRed closed 6 years ago

ChameleonRed commented 6 years ago

It will be nice to tag every application, window title or regex on it into multiple categories for example. Categories will be defined by user (no predefined categories is need for me - it is examples).

Category "time value" can be:

  1. productive
  2. unproductive
  3. undefined/unknown

Category "activity" can be:

  1. applications
  2. games
  3. communicators
  4. browser
  5. undefined/unknown

It will be nice to have subcategories so you can go deeper in reports what you do.

  1. applications (graphics, programming, text, ..., undefined) a. applications -> graphics b. ...
  2. programming (python, c++, ...)

It can be also some plugin doing such tagging externally (regex, Bayesian, ai ...) - so anyone can implement custom tagging.

I think that the most need is productive/unproductive filter and application types, other filters can be for work reporting but it is very specific and should be done by each person separately.

ChameleonRed commented 6 years ago

Tags can be in such format like programming name spaces (top.lower.lower.lowest) in object programming - it is simple and commonly used.

activity.application.other, activity.application.programming, activity.application.graphics ...

time.productive, time.unproductive

johan-bjareholt commented 6 years ago

Duplicate of https://github.com/ActivityWatch/activitywatch/issues/95 but with some new ideas such as sub-categories. Closing this, let's keep the discussion in a single issue.

ChameleonRed commented 6 years ago

Is #95 allows plugin for tagging?

johan-bjareholt commented 6 years ago

@ChameleonRed Add a comment about it on the issue and we'll consider it when we start implementing. Since we value flexibility and modularity a lot that would seem like the right way to go about it.