Work on a project could include meetings. In this case
you are not using the mouse or keyboard.
This means that you either have to turn off idle
handling and manually subtract times if you forget to
stop a task, or turn on idle handling and have to
manually add times when you do work on a project that
doesn't involve the computer.
The gtimer program has great idle handling for this.
Upon detection of idle, it displays a dialog with three
choices: 1) Continue timing (you just got back from the
meeting and want the time to be counted, 2) Revert the
timer to before the idle but continue timing (you just
got back from lunch), 3) Reset the timer to before the
idle and stop timing (you just got back from lunch and
want to start working on another project).
This is a vital feature since human nature is what it is.