When I worked at Sigura, I did a lot of hours usually at home, not because I was forced to, but because I loved to work on it.
There was so much to do (which in my eyes was also important and needed to be done), so much I did want to accomplish and did want to keep track of.
So I created a program which could track my hours automatically, so I could compensate a bit on workdays.
The program can be started 2 ways: 1st you need a daemon to count the time in function of what xscreensaver is telling about the (in)activity. The 2nd way is the console where you can list the time you've worked and configure some basic things. At the end you can see how much overtime you made.
There are some extra commands to add time, change the way a day needs to be interpretted, etc... If you work at home for example on a weekday, just put the 'work day' as 'home'-status, if you didn't work on a day you can change it to 'no' so it'll be ignored in the count.
This simple program has let me monitor my working time very precisely since the moment I started to use the tool, till I quit working at Sigura.
worktime-monitor-counter at my gitea