Project Clock ============= $Id: README,v 1.6 2001/01/24 03:21:51 david Exp david $ Changes: $Log: README,v $ Revision 1.6 2001/01/24 03:21:51 david added features for v0.6 Revision 1.5 2000/06/07 02:05:05 david added summary usage Revision 1.4 2000/02/28 05:26:55 david version 0.4 Revision 1.3 2000/02/23 22:24:07 david v0.3 updates Revision 1.2 2000/02/23 22:17:39 david v0.2 changes Revision 1.1 2000/02/01 23:14:28 david Initial revision Version 0.7 David Keeffe; david@systemsolve.net --------------------------------------- I often work on several different projects at once, and really need to keep track of time on each so I can bill clients correctly and fairly. Noting the time in a diary was a start, but if your desk is anything like mine, finding the diary *and* a writing implement is a stressful activity. So the time gets recorded occasionally and inaccurately. The only constant is my Linux desktop, so I looked for a simple program which would let me run timers for multiple projects, where a click of the mouse would stop one timer and start another. I wrote this in Tcl/Tk. It just about does enough for me; it's a bit short on reporting tools (but see "summary" below). The version as reported by "Help->About" is 1.x - this is because RCS starts at 1.1! Read the CHANGES file! Copyright --------- This program is COPYRIGHT 2000-2001 David Keeffe. You may use and distribute it under the terms of the GNU Public License. Installing Project Clock ------------------------ Read the INSTALL file in this directory. Using Project Clock ------------------- Start Project Clock by issuing the command "pck-timer". Pclock will create and maintain a project record automatically. When you fire up pck-timer, there will be no projects. Use the menu item 'Edit->Add Project' to add an item, and 'Edit->Delete Project' to delete an item. A project timer will start when you click on the project button with the left mouse button. You can update times manually by RIGHT-clicking on the project button. Every two minutes, the project state will be written out to a file '$HOME/.pclock', with a backup to '$HOME/.pclock.bak'. The data is saved when you exit and when you send the program SIGINT. The data is formatted as a couple of Tcl associative arrays. (new in v0.7) You can keep a simple diary of work for a project. If you click the "quill" icon on the toolbar, a window will pop up with diary entries for the currenly selected project, and space to write a new one. If no project is current, a list will be popped up first. Diary entries normally go in $HOME/pclock.d/diary.. It's possible to implement a shared diary by setting the diary home to be a world- (or group-) writable directory, but note that there is no locking presently implemented. (new in v0.6) You can display a number of reports from pck-timer. The reports are generated using pck-summary (see below). Currently pck-timer calls pck-summary using "exec". This won't work on MS Windows. There is a function "runprog" in the utilproc.tcl library, but I haven't tested it with Project Clock yet. Various properties are saved in a file $HOME/.pclockrc and can be set using the built-in properties editor. You can also edit the rc file by hand. Report generator "summary" -------------------------- You can generate a summary for a given range of dates, using the "pck-summary" program. You can also specify one or more projects to restrict output. Also, because of the way Tcl works, you can specify a project name using a "glob" style pattern. This feature is a happy accident! Usage: pck-summary [-hxlrs][-f day][-t day][-d range][project-name ...] Where - -h : output this message -x : increment debug level -l : list projects -q : don't print headings -r : just rawtimes times, no factoring -s : omit summaries -v : print daily times -f : start day (default 1) -t : end day (default last of month) -d period : process times for 'period' (single (m/y) or range (m/y-m/y)) -i file : read data from 'file'