Years ago I wrote a couple of time keeping programs because I was curious how much time I spent in different applications.
The first program, TimeLogger1, simply added programs to a list, based on their executable filename, and tracked time for whatever program was active. It worked well but only saved information for the current day.
The second program, TimeLogger2, took care of tracking the history of program usage by saving daily entries. It saved totals by program and by every different window displayed by programs. And it allows using the left/right arrows to move through history. And it allowed searching by program name or window title. So, it contained pretty complete information.
For home office use, TimeLogger2 can also come in handy if you were logging time for clients. But, I started finding it to be too detailed.
Then other needs popped into my head. I needed to track Idle Time for when I was away from the computer. I wanted to put limits on some programs. I also wanted to add goals for other programs. So, it started getting more complicated.
Once I was able to track Limits I was able to add Goals as well. The remaining desire was being able to track by both program name and window title. For example, I have 4 Bible study programs, so I could enter then name of each one and have the time total up into a Bible group. However, if I went to a browser and was studying something about the Bible there, I needed the program to track the title of the web page. So, if it said Bible, Commentary, Devotional, etc. the program would be smart enough to total those up into the Bible group.
I decided to call it OverWatch since it is looking at what I am spending time in and letting me know when goals are met or limits are reached. Since it was based on TimeLogger1 and I had not thought of all these needs, it took a lot of thought to shoehorn more features into it.
After a good bit of work, it will now do the following:
- Track time by program name
- Track time by window title
- Keep subtotals based on Goals
- Keep subtotals based on Limits
- Report via popups when a Goal is met or a Limit is reached
- List via the program tray tool tip the status of Goals and Limits (mouse over the icon on the taskbar)
- Allow the current program to be locked. For example, some training is going on but I want to check news or something real quick. The program can be locked on training while doing that. (Ctrl+1 will turns locking on or off)
- Turn on / off the tracking of Idle Time. If on, then Idle Time is counted if there is no mouse movement or keyboard activity for 30 seconds. (Ctrl+2 turns Idle tracking on or off)
- Clicking the tray icon will show or hide the current list of tracked items or press Ctrl+3.
It is 3pm now and this is what my OverWatch status looks like. Groups for Goals and Limits are at the top of the list.
Since I am working on a blog post when that window is active it shows this:
As you can see, I am 10 minutes over my goal for blog writing today. I will soon get a popup denoting that.
When I move my mouse over the program icon is shows status as:
So I have reached my goals for bible and blog, and not hit any limits for jobs, reading and training yet.
The messy part of the program remains teaching it what the goals and limits are. If you look at these settings, on the left are the programs or titles (starting with a tilde) following by the group name for that goal or limit. On the right side are the group names followed by the amount of time in seconds to check against.
When a Goal or a Limit is reached, a popup like this will display:
It also shows how far beyond the Goal is. There is now also an onscreen big button that shows when a program is over limit or reached goal. That has been added in case no one is at the computer then the alert pops up.
Simply click on the button to close it. Buttons make form a stack but there will be only one button per specific Limit exceeded or Goal reached.
So, during my day, I will get popups whenever goals or limits are reached. They will appear at intervals of 5, 10, 15 or 30 minutes and only display for the active application. As shown earlier, mousing over the program’s taskbar icon will display the overall status of goals and limits.
If anyone is interested, I can make the program available.
Cheers.