[demo] Attach metadata GUI to taskpaper app windows

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 window.bounds() data.
  • 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

Will write more later, but very nice!

1 Like

You’ve inspired me to finally follow through and make TaskPaper’s code shared source.

The intention is that if you want to hack on TaskPaper for your own personal use you can. If you want to share those hacks with others you can make a pull request on the TaskPaper repo and I will consider including in full TaskPaper release.

I’m not sure if this would have made your project easier, but maybe. Or maybe it will enable you to make more customization in the future.

If you or any other TaskPaper users/hackers have an interest please checkout the code, see if you can get it to build. Let me know if the terms seem fair, etc. Hopefully some people can try it out over the next month or two. Then I’ll make it a more public that TaskPaper is a shared source application.