GnoTime - The Gnome Time Tracker
The Gnome Time Tracker is a to-do list/diary/journal tool
that can track the amount of time spent on projects, and,
among other things, generate reports and invoices based on
that time. It's being used it to keep shopping lists,
organize ideas, track bug reports, keep a diary of activities,
do some blogging, provide weekly status reports to management,
and even as a consultant billing system. The reason it can
be used for all of these things is that it supports five basic,
simple features:
- Multiple To-Do Lists that can be sorted by the
priority/importance of the tasks in the list. The to-do
items can be organized into categories, arranged in a
hierarchical way. This makes it easy to maintain
both business and personal items in the list, or
handle many different projects, while keeping them
separate from each other.
- A pair of Diary/Journal areas that can be used
to keep long and detailed notes and diary entries.
The project description area allows a multi-paragraph
description or status to be typed in. The diary
area allows day-to-day notes to be associated with
a set of timestamps, so that one has a record of what
one did on any given day.
- A Running Timer, with time totals, for each
project/task. One starts the timer by clicking on a
task: it will measure the amount of time that you are
in front of the computer. If it detects that the
keyboard/mouse are idle, it will stop the clock.
If the clock stays stopped too long, it will nag you to
start it up again. You can view time totals by day,
week, month or year.
- A Billing Status dialog for each diary entry.
You can mark any given diary entry as bill-able/non-bill-able,
paid or pending, and set the billing rate. Each
project can also be marked up with a set of
project-planning information: planed start, end and
due dates, hours to finish, percent-complete.
This is in addition to assigning an urgency/importance
to each project, as well as a status (completed/in-progress
not-started/canceled).
- A half-dozen different HTML Reports that can
slice and dice your lists. There's a Journal report
that shows all of the diary entries for one given project.
There's an Invoice
report that summarizes the time spent on each entry,
and computes a dollar amount for it. There's a Status
Report that prints the title of each project, together
with the paragraph-long descriptions of each. There's
a ToDo report, which prints only the project title, the
importance/urgency, and the completed/in-progress/not-started
status. The Daily report summarizes the total time
spent on a day-by-day basis, and lists each of the projects
that were worked on in a given day. Each of these reports
can be customized. And, because they're HTML, you can
even publish them as web pages. (Yes, I've thought of
using GnoTime as a weblog management/publishing tool).
More About Some of These Features
We'd like to tell you a bit more about some of the features.
But first, we want to tell you that GnoTime is Free Software,
distributed under the GPL License, for the Linux, Mac OSX and
other Unix desktops. No, it does *not* for MS Windows. Sorry.
- Simple GUI, Simple Navigation
- We've worked to try to make the GUI as simple as we can,
and we're not done yet. GnoTime will auto-save data,
so that you don't have to. (It also means no data loss
if something crashes). The hierarchical tree of projects
is managed through drag-n-drop, and can be navigated from
the keyboard, with arrows keys and carriage returns.
The left/right arrow keys expand/collapse project lists.
Hitting return starts and stops the timer.
- Auto-Merge/Cleanup of Short Intervals Support
- We also try to unclutter a mess of timer stops/starts
by trying to clean up time-keeping cruft.
Extremely short time intervals are automatically removed
from the logs (the length is configurable).
Slightly longer but still short intervals
are auto-merged into nearby neighbors. Short gaps between intervals
are coalesced as well. You can specify a time period of 0 seconds
to turn these features off.
- User-Customizable HTML-based Reports
- The journal/report GUI is based on template HTML pages. If you know
HTML, then you can create customized report pages. Particularly
handy for slapping the company logo and mailing address on the top
of the page, and generating a unique, custom look.
User-defined reports (contained in ghtml files)
can be added to the
menus by typing in the filename into the 'New Report' GUI dialog.
Admittedly, hacking on HTML templates is not the easiest
thing in the world: you can't (yet) customize reports
with a WYSIWYG editor (although we are contemplating one).
But we figure that HTML can't be that hard: the nerd in
you will not be intimidated. It might be a bit scary to
mention scheme at this point, but lets just say that
you can be totally ignorant of scheme and still be able
to do some pretty fancy customization, above and beyond
what HTML lets you do, by hacking on the scheme in the report
templates.
Fresh in version 2.1.9 is the ability to embed simple SQL
queries in the report templates. We know that many of you
power users know SQL, so we figure you'll like this. The
SQL gives you the ability to query for only those projects/tasks
that meet a certain criteria, which is handy if you've got
years worth of data and years worth of project lists and
to-do items, and you want to just fish out the ones from
last month.
Disclaimer: we're still working on SQL support. It works,
but you can't yet query everything.
- Shell Commands
- A shell command can be executed whenever a project timer is
started or stopped. The project title, description and other
parameters can be passed to the shell command. We don't know
what the hell you power users do with this feature; its
been in GTT since the very earliest releases.
- XML File Format
- All project and journal data are stored in an XML file format.
The XML file accurately reflects the internal state of the
GnoTime data, and therefore generic XML tools should be able
to perform interesting transformations on this data.
- Multi-Language Support
- The GnoTime menus and messages have been translated to dozens of
languages. There are message catalogs for the following locales:
az bg ca cs da de el en_GB es et eu fi fr ga gl hu it ja ko lt lv ms nl
nn no pl pt pt_BR ro ru sk sl sv ta tr uk vi wa zh_CN zh_TW
Some of these translations need an update; they're quite old and
out of date. We need help here.
Translations are needed for the manual. Actually, the manual needs
a complete re-write; its three years old, and doesn't discuss most
of the newer features.
Screenshots
Below are a couple of screenshots from the current
Gnome2 version of GnoTime.
The screenshots pages shows more.
The main window screen, showing all-time and daily totals:
The same main window screen, but with additional columns
enabled to show project status. Note the new notes-taking
area at the bottom of the screen.
Works on Apple Mac OSX too
Well, sort-of. Here's a screenshot of a port under Macintosh OSX Fink;
unfortunately, this port was never finished/published.
Getting GnoTime
Your favorite distribution (Debian, RedHat/Fedora, SUSE, Fink) already
includes pre-compiled binaries of GnoTime, and you should probably
be searching those out, and installing and working with those.
That way, you at least have some guarantee that its been tested
and is known to work with your system.
If you are adventurous, and know how to compile from source,
and absolutely must have the latest and greatest version, then
visit
http://sourceforge.net/projects/gttr/
to get the source-code tarballs, instructions for CVS access, etc.
Reporting Bugs, Requesting Features, Submitting Patches
If you found a bug, please rest assured that we will
not fix it unless you report it (and even then,
it may take us a while). To report a bug, please visit the
SourceForge
project site, and follow the links.
The same remarks apply for feature requests and patches.
The best place to submit a patch is to sourceforge. That
way, we won't loose track of it.
Mailing Lists
If you have questions, want to make comments, or engage in
general discussions, you can subscribe to the mailing list,
or you can post to the discussion bulletin-board. You can get
to either through the
SourceForge
project page.
Web Site Mirrors
There are two web site mirrors:
WE NEED YOUR HELP !!
We need your help to make GnoTime better. It sure would be nice to
have a fancier web site for this project, maybe some nice graphics.
Can you help?
News
The latest releases continues to focus on usability and convenience
features, making GnoTime easier to use and thus more powerful.
- New in the 2.2.0 release (April 2004)
- This release sports a brand-new look-n-feel for the reports,
together with improved URL support.
The reports now use CSS style sheets, and can contain embedded
images. A 'publish' function using GnomeVFS makes it easier
to copy reports to other systems, using ssh, ftp, http or any
other supported method. In addition, the following bugs were
fixed:
- Crashes when 'help' button clicked in certain dialogs.
- Corruption of 'reports' menu, followed by crash.
- Fix flyover help to actually work.
- Add missing 'copy' to interval edit popup menu.
- New in the 2.1.9 release (April 2004)
- This release fixes a number of bugs in earlier releases.
- Keyboard events were not resetting the timeout
- Fix Help system so that help actually starts up.
- Fix old, multiple scheme bugs affecting billing reports.
- Provides 'infinite undo' for cut projects.
- Keyboard cut (ctrl-x) fixed so that it cuts only if project
window has focus.
- Can now specify day-of-week for the start of a new week.
Also, end-of-day need not be midnight - its now configurable.
- Remove obsolete menu entries (clear daily counters)
- Fix flyover help on HTML reports
- Fix order of yesterday/today columns.
- Improve checks for Guile during builds
- New whiz-bang SQL for reports.
- New in the 2.1.8 release (April 2004)
- This release adds support for simple report queries. In particular,
reports can now be generated for all tasks that occurred between a
pair of dates; an extremely general query system is now in place,
although it is not used except to perform this simple date query.
Toshio Kuratomi provided a major cleanup of the documentation
subsystem. Goedson Teixeira Paixao provided a new pt_BR translation.
A variety of minor bugs were fixed, including a crash of the
'yelp' help browser.
- New in the 2.1.7 release (June 2003)
- Version 2.1.7 fixes some internationalization bugs, and ports the
configuration system to GConf2. The 'custom reports' menu is now
editable.
- New in the 2.1.6 release
- The "Daily Report" will show not only the total hours worked,
day by day, but will also show a bulleted list of tasks worked
that day. The main window display can now show total hours worked
for previous day and previous week. Sub-projects can now be fetched
via scheme, allowing them to be included in reports. The scheme
subsystem now includes an elementary type system, allowing more
complex structures to be built. A half-dozen different crashes
have been fixed.
- New in the 2.1.5 release (January 2003)
- The main window has been reformulated in a big way: It
now includes sub-panels for editing project and diary notes.
This 'notes area' makes it far more convenient to make
extensive notes and 'blog' your way through a set of projects.
Also fixes bugs with backup timestamps, also with cut-n-paste
of project trees.
- New in the 2.1.4 release (December 2002)
- The scheme interface re-design has been finished.
This means that the HTML reports are far, far more
configurable, and can be made to look much prettier.
The old, nasty table-formatting features have been removed.
It also means that tab-delimited export now works cleanly,
and other export formats can be easily added.
- Older News
- Click here for older news items.
Technology Choices/Overview
GnoTime is currently written mostly in C and a little bit of
Scheme. C is used to implement
all of the core functions, whereas Scheme is used to generate the
HTML reports. The Scheme/HTML combo was chosen in order to make
it easy to customize reports, while allowing the result to be easily
viewed in a browser, sent by email, etc. The GUI system is
all in Gnome, using the Glade interface designer.
The file format is in XML, following current trends.
There are some interesting directions one could play with.
For example, rather than creating reports with embedded
Scheme, one could try to use GnoTime's XML data format
as a mirror of its internal state, and then use
DOM to extract
various parts out of it, and thus build reports that way.
Technology/Features Roadmap
Similar/Different Projects
- Gournal,
Note-taking tablet application. A paper-like interface
allows you to hand-write notes. This is a gnome app
(actually, gtk2/perl).
-
Jarnal, a Java-based note-taking tablet app.
- QBall's GToDo
is a simple Gnome2 to-do list application.
- Quozl's GFocusTimer
tracks which windows your mouse is in.
- GTimer,
an older gtk-1.2 timer application.
- KArm
is a simple KDE/Qt-based time-tracker.
See also this website.
- PTT
another KDE-based time tracker.
- Titrax
is a very old (early/mid 90's) X-Windows time tracking tool.
This is a nice historical snapshot providing a glimpse of the
way things used to be in the Unix world back then.
- LinuxLinks
provides a huge list of Linux timer software.
- Journyx, an up-scale, commercial
web-based time tracking and billing tool.
Last modified by Linas Vepstas <linas@linas.org>
March 2004
In memory of the World Trade Center bombing, which occurred while
the first major revision of gtt was being written.