Time tracking. No matter how many fancy time tracking apps you use, it's still painfully manual. I want a robot that watches me and quietly makes intelligent decisions about what I'm really doing, and tracks that.
I recently started using WakaTime to track my programming and it's an improvement over what I've used before (RescueTime). I know what you mean though, I want to somehow track my "state" which means a combination of things like:
- Working
- Working on X project
- At home
- Sleeping
- Eating
- Driving
- With Someone
- With brother
- With friend X
- With Mom
- etc...
- Drinking coffee
- etc.
Most of these things are somewhat doable with data that is already out there. If I'm in the same location as my brother (as determined by our phones) it probably means I'm in the state "With brother". This data is already floating in the interwebs but it's somehow hard to get considering it's just four numbers.
So 2 weeks ago I dug out my long-forgotten knowledge about WINAPI and wrote something in Rust. It's an MVP - it queries the active window every second and writes a bit of info to a logfile in JSON format. Then I can run a python script on the daily log and analyze it. It's been fun, but you instantly notice a few things:
a) using a "window changed" hook would be better, but mine's good enough for now, but this prepared
b) idle times are important. Don't leave the computer and then wonder about off times. Current workaround: focus the media player window that's usually not really active
c) dual monitors are really hard. There's 2 windows open - one on each monitor, only one will be tracked.
d) Everything is hard, when I'm listening to a podcast during some other task that doesn't need much concentration, this won't be tracked.
e) actual quality of the data. On the one hand I'm simply not interested in adding all my browser history to this via window titles. On the other hand, maybe you want finer-grained tracking. Same with songs played, videos watched for example. Mayyybeee it could make sense tracking source code files in your editor, but I think that's too finegrained. browser vs editor is good enough for me right now
Yes, tracking multiple activities at the same time is too hard. I just stick to tracking the focused window.
On macOS I use accessibility API to read content on the screen, including address bars in browsers. But a browser extension sending URLs to your app on localhost can work too.
Edit: formatting