I'm a programmer. I usually work on-site through an agency on a hourly basis. Sometimes I've done work directly for a client, but it's generally been on a bid-for-job basis, and not hourly. I spent a few years as a partner in a financial trading firm, as well, and so my hours didn't much matter.
Now I've accepted a contract assignment where I will be doing the bulk of the work at home.
When I work on-site, it's pretty simple. I just keep one plain sheet of paper each week where I write-down the time I arrive, when I leave for lunch, come back from lunch, and leave. At the end of the week I add-up the hours and enter it into the agency's timekeeping system online (QuickBooks - ugh!). It just takes the number of hours per day.
At home, there are many more distractions than lunch, and, frankly, one of the attractions is the greater flexibility.
I know my attorney has an elaborate system made for attorneys - with a little device on his desk where he punches a button and selects a client when he picks up the phone. (Smart, these attorneys - this way he can bill his 15-minute minimum three times, for 3 different 5-minute phone conversations. I always try to shoot the bull for 14 1/2 minutes, to make sure I get my money's worth. ;) )
I don't need anything nearly as elaborate. A single client, and I don't need the ability to bill the same time more than once.
What I would like it to do is let me easily "log on" to a project (I only need it to support one, but I presume any such package will support several), and then have it monitor keyboard activity. No keyboard activity for "n" minutes, and it logs me out of the project. Perhaps configurable as to what it does then (log me out as of the last keystroke, as of the last keystroke + "n" minutes, etc.)
Maybe a "working away" mode, say, if I have to read some paper documentation, or are on a phone conference. Maybe then it would beep every few minutes and ask me to confirm I'm still on the job.
I know there has to be scads of software out there to do this. And that's just the problem. I don't want to spend a lot of time evaluating them. I just want something simple, so that I have a record, and know that I am billing accurately. This isn't required - it's something I want to do to minimize questions.
If it's a very popular package that others might recognize, so much the better. I can casually mention that I'm using such-and-such to keep track of my time, and that should be reassuring.
Free/open source is good. Especially since we can't mention commercial software here. :) Either Windows or Linux will work, though the project itself is under Linux. Oh, if it's Linux, it needs to not have any problems with virtual keystrokes, as I use a single keyboard/mouse on my Windows machine, and Synergy send keyboard/mouse actions to the Linux box.
I'm sure there are more than a few here who use such software, and probably a few more who should. ;)
What do you use to keep track of your time spent on projects?