Skip to content

time-tracking

Tracking progress with Ryot

Sometimes I wish for a centralized, automatically updated and moderately fancy-looking application to keep track of multiple activities; mostly around digital media.

  • Audiobookshelf is pretty good but separates podcasts from books and only shows yearly summary at the end of the year. Audible does not offer even that, and no export options.
  • Jellyfin (and previously Plex) don't go beyond marking things as "done". Besides, movies and TV shows are not the kind of videos I'm intersted in tracking progress with; video lectures are (where was I with this Inkscape course?).
  • Paper books are very nearly not even a thing anymore, but it would still be nice to be able to track progress on them, as well as reading e-Books in Komga.
  • Video games are absurdly difficult to track progress for. Naturally grown from need, a spreadsheet is works well enough to collect data across multiple platforms, but it is limited, ugly and increasing slow as the library grows.
    • Steam shows only total and recent (last 2 weeks) gameplay, and probress is tracked in terms of achievements, not how close you are to finish the main story. At least there is the option to query the Steam Web API to periodically fetch gameplay stats, so they can be kept at a higher resolution (daily, hourly, etc.).
    • Nintendo Switch Parental Control (Android app). shows only gameplay time per game (and per user) in the current month, after that it shows only montly summaries. There is no option to export any of this.
    • GOG requires installing their own (Windows-only) Galaxy 2.0 client and the possiblity of exporting or even seeing your personal gameplay stats appears to be not even a question.

Looking around for tracking applications in the awesome directory of awesome-selfhosted, two applications look promising and worth a try: Ryot and Yamtrack.

Self-hosted time tracking with ActivityWatch

A big chunk of my time is spent at the computer, also during my downtime, and there is no clear separation between study, chores, entertainment, etc. Work happens at other computers, where time flies by sometimes at ridiculous speeds. I often find myself wondering where did my day/week go?

For some time I've been using a badly-cobbled-together solution with Bash scripts doing a few basic operations, all the time:

  1. Detect when the screen saver is active (AFk).
  2. Capture the id and title of the active windown (when not AFK).
  3. Store those details in plain-text log files.
  4. Aggregate those by window id into CSV files.
  5. Import CSV files into a spreadsheet to clean it up.

The results have been barely enough to keep track of where my weeks go, which has already been a relief; when someone (often me) asks "why so little progress on X?", I can check the spreadsheet and answer with numbers: because this week, out of 40 hours, ...

At home, however, the results have been very underwhelming. This is due to completely different behaviour patterns, which is where I hope ActivityWatch will help.