I have a sophisticated system that tracks which contexts I spent time on, and how much time (down to the second).
I wanted the ability to see that metadata in taskpaper, but to work around its limits, I created a system that ties that metadata of how long i’ve spent in a context (“project”) and attaches that data to the window itself. it will place it on the top right, and if it’s not visible (in case of M1 notch if you split the window in the left half) it will slide left to avoid the notch.
here’s what it looks like:
the data is real time, and follows the taskpaper around.
i thought this was a nifty usecase, and its extremely customization. i just wanted to share bc i thought it was cool in case anyone wants to make their own.
here’s roughly how i did it:
- a local node server running via pm2 that monitors all the open tp windows and which contexts are focused. it polls.
- a desktop background system using Plash that connects to another server which actually houses the above logic, and uses websockets to relay the data, including the
- the desktop background system using Plash is actually a webapp i made, using react, which houses some widgets (all custom made)
- one of the “widgets” is this thing that figures out which window has which project, the bounds of it, and places it “on top” of that window’s top right corner
- there are animations to fade the text in and out as the window opens/closes and to follow the window around as it moves.
- since its just html, you can effectively customize it “infinitely”
- “xxx this day” means past 24 hours to the second. there are options to switch this to week/month etc
overall, i tend to get engrossed into my projects and i have a project for everything so it allows me to be extremely mindful of how much time i am sinking into each one.
hope this was useful at some level for someone! lmk if you have any questions and i’ll do my best to answer