## GNOME Time Tracker Manual

1997-2000
Eckehard Berns
2000
Ximian, Inc.
2001
Linas Vepstas <linas@linas.org>

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license can be found here.

Many of the names used by companies to distinguish their products and services are claimed as trademarks. Where those names appear in any GNOME documentation, and those trademarks are made aware to the members of the GNOME Documentation Project, the names have been printed in caps or initial caps.

This is version 2.0.1 of the GNOME Time Tracker manual.

## Introduction

### What is GNOME Time Tracker?

GNOME Time Tracker is a combination stop-watch, diary, to-do list tracker and consultant billing system. You can measure the amount of time you spend on a task, associate a memo with it, set a billing rate, print an invoice, as well as track that status of other projects.

You do not need to learn or use every feature in GNOME Time Tracker to be productive: it is meant to be quite usable without requiring a deep study of the documentation. But once you have learned to use GNOME Time Tracker effectively, it can be as effective as any desktop organizer.

Features include:

- Basic Stop-Watch Support At its core, GTT is a fancy stop-watch: you can click on an icon to start and stop one of any number of timers. It is the times measured by these clocks that make up the core data that GTT works with.

- Project Planning Support Well, OK, "project planning" may be an overstatment. But GTT does provide basic to-do list support, including the ability to rank by importance and urgency, specify expected start/stop times, state the project status, and estimate the amount of time needed to complete the project.

- Basic Billing/Invoicing Support Infrastructure for storing price & billing information has been put into place. This allows billing invoices to be generated. Tasks can be marked as billable, non-billable, on-hold, or free-of-charge. Billing rates for regular, overtime, double-overtime or flat-fee can be set per task. (Fancier-looking invoices still needed).

- Sub-Project Support New projects can be listed as sub-projects of other projects. The time totals will show the total including sub-projects. The Hierarchical tree can be expanded / collapsed to simplify viewing. The tree can be re-arranged by dragging-n-dropping projects.

- Simpler Navigation Arrow keys and carriage return now work in the main window. Up/down keys can be used to move up & down. The left/right arrow keys expand/collapse a sub-project list. Hitting return selects the project.

- Log Journal A journal showing explicit start and stop times is maintained. Blocks of time can be annotated with memos. The journal can be exported as an html page, or printed (OK, printer support not yet finished).

- Auto-merge/cleanup of Short Intervals Support Extremely short intervals (the length is configurable) are automatically removed from the logs. 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.

- HTML-based GUI The journal GUI is based on extended 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. Typically, a 'user-defined report' is one with customized layout, maybe a logo added, all-spiffed up & such.

- Inactivity Timeout An inactivity timeout has been implemented. If the keyboard or mouse have been idle for more than some period of time, then the clock is stopped.

- Shell Commands A shell command can be executed whenever a project timer is started or stopped.

- Scheme Extension Language Scheme (guile) is used as an extension language, although scheme support is currently limited to report generation.

- XML File Format All project and journal data are stored in an XML file format. This should simplify future interoperability and data access concerns.

- Multi-Language Support The basic GTT menus have been translated to dozens of languages. Translations are need for the manual. (Actually, the manual needs a re-write).

GNOME Time Tracker is included in the package `gnome-utils`, which is a part of the GNOME desktop environment. This document describes version &version; of GNOME Time Tracker

GNOME Time Tracker can be started by selecting Time Tracking Tool from the Applications submenu of the Main Menu, or by running the command `gtt` on the commandline.

## Using GNOME Time Tracker

### Working with GNOME Time Tracker

Notice: The current version of GTT has many, many new features which are not documented in this manual. A few of the features documented below might work slightly differently in this new version.

GNOME Time Tracker can be used to keep track of the amount of time you spend on different things you do. You do this by defining several projects and then, as you go through the day, telling GNOME Time Tracker which project you're working on. It will tell you how much time you spend on each project each day, the total time spent on each project, and the amount of time logged on all projects each day.

Unfortunately, GNOME Time Tracker isn't particularly smart: it won't turn the timer off for you if you take a break for a quick game of solitaire and it turns into several hours of distraction. The inactivity timer will notice that you are still using the keyboard and mouse; it does not know that its just solitaire. When you stop work on a project, be sure to turn off the timer by clicking the Timer button or using Stop from the Timer menu. As long as you remember to do this, your work will be recorded effectively. You can, however, alter the times from the Properties dialog if they are incorrect. See for more information.

GNOME Time Tracker can inform you about your project times in several ways. For each project, it maintains a timer for the amount of time you have spent on the project today, this week, this month, this year, and how much time you have spent on it total. In addition,GNOME Time Tracker counts how much time you have spent on all projects in the current day. This last figure is the one displayed in the lower left hand corner of the status bar.

When you first start GNOME Time Tracker, you see the Main window, as shown in .

#### GNOME Time Tracker Main Window

GNOME Time Tracker Main Window, with a project selected

The main window consists of four areas. There is a menu bar (see ) and a toolbar (see ) at the top of the window, a status bar (see ) at the bottom of the window, and between the toolbar and the status bar, a scrollable project list (see ). When you startGNOME Time Tracker for the first time, this area will show just one project, which is titled "empty".

You can customize the appearance of the main window in the preferences dialog. See for more information about changing the toolbar, project list, and time display.

### Menus

Nearly all menu items in GNOME Time Tracker have a shortcut or accelerator key. Shortcuts appear right after the name of the menu item on the menus.

The menu bar consists of four menus: File, Edit, Timer and Help.

File

  This menu contains the following commands:

  Ctrl-N — New Project New Project brings up the New Project dialog so you can create a new project.

  Ctrl-L — Reload Configuration File

  This loads the last saved version of the configuration file, `$HOME/.gnome/gtt`. This file is saved every time GNOME Time Tracker quits, and it holds information about your preferences and projects. If you choose this menu item, your projects will revert to their status at the time of the last configuration file save.

  Ctrl-S — Save Configuration File This function saves information about your projects and preferences in the configuration file `$HOME/.gnome/gtt`. GNOME Time Tracker saves this information automatically every time you quit, and tries to do so even when it crashes. Still, it never hurts to save your project information from time to time.

  Ctrl-Q — Quit Quits GNOME Time Tracker. Quitting automatically saves project data and updates the logfile.

Edit

  This menu contains the following commands: Ctrl-X Cut — Removes an item from the project list, saving it in memory if you want to paste it back in somewhere else.

  Ctrl-C Copy — Duplicates a selected project, copying it to memory.

  Ctrl-V Paste — Places the project in memory onto the task list. Projects are inserted before the selected item. If no item is selected, they will appear at the bottom of the list.

  Clear Daily Counter — This function is a quick way to clear the daily counter for the currently selected project. You can use it if you want to time a process more than once. This is useful if you want to track how long a PPP connection to the internet lasts, or for timing compilation and other repeated tasks. This command does not affect the global timer.

  Properties... — This selection opens the Properties dialog for the currently selected project. Here you can view and edit the name, description, and times for your project. Note that this is the same action as the Props button on the toolbar. See for more information.

Settings

  This menu contains only one command: Preferences, which launches the Preferences Dialog. See for more information.

Timer

  This menu contains the following commands: Ctrl-A Start — Starts the timer on the selected project.

  Ctrl-Z Stop Timer — Stops the timer.

  Ctrl-T Toggle Timer — This item toggles the timer on or off.

Help

  This menu contains the commands: Manual — Shows this manual.

  Introduction — Displays the introduction to this manual and to GNOME Time Tracker generally.

  Working with GTT — Displays the section of the manual about working with GNOME Time Tracker.

  The Main Window — Help with the Main Window.

  Dialogs — Displays information about the various dialog boxes that GNOME Time Tracker will display.

  About — Displays copyright and author information for GNOME Time Tracker.

### The Toolbar

The toolbar is another way to speed up your most frequently performed operations in GNOME Time Tracker. Each icon in it is a shortcut to one of the menu functions. By default, the buttons are:

- New,which opens the New Projectdialog.

- Props,which opens the Properties dialog.

- Timer, which toggles the timer between on and off.

- Prefs, which opens the Preference dialog.

- Manual, which opens this manual.

- Quit, which quits GNOME Time Tracker.

You can choose which functions appear in the toolbar from the Preferences dialog. See for more information.

### The Project List

The Project List contains a list of all your projects and indicates which project is active at any given time. It also shows the attributes of each project. You can alter those attributes from the Preferences dialog (see ).

#### What is a Project?

A project consists of the following:

- A title, which is displayed in the project list.

- A daily timer, which will be automatically reset each day, and which you can zero as you please.

- A total time timer, which holds the total amount of time spent on the project.

- A brief description of the project.

#### The State of a Project

A project has two states, selected and unselected. You can only select one project at a time.

If a project is not selected, nothing happens.

If a project is selected, but the timer is not running, the select-project shell command has been run and not terminated. No changes, however, are made to the log file.

If a project is selected and the timer is running, the shell command is executed and the log file is updated.

This might be confusing at first, but in combination with the shell commands (see ) you can use the variations in state to maintain more accurate and readable project logs.

##### Using Project States

I have set the GNOME Time Tracker shell commands to update my `.project` file when I switch or deselect a project. I don't want to alter the file if I'm just taking a short break from a project. So, when I get up to get coffee, I stop the timer instead of deselecting the project. This leaves the `.project` file alone without counting the time I spend away from the project.

#### Working with the Project List

The project list is located in the central area of the main window. It shows the list of projects and which project is currently selected. Each line corresponds to one project, and displays the total and daily time logged for that project, as well as its title and description.

You can select a project by clicking on it with the left mouse button. Pressing the left mouse button again on a selected project deselects it. Note that you can only have one project selected at any given time.

To get a popup menu for a project, click the right mouse button on it. If the project wasn't selected, it will now receive the selection, and the Edit menu will be displayed.

### The Status Bar

The first field of the status bar displays the sum of all projects' daily time. If you didn't zero a daily counter, it reflects the total time you have worked on your projects today.

The second field holds the title of the currently selected project. If no project is selected, the display reads: `no project selected`.

The far right corner of the status bar holds a small clock if the timer is running. If the timer is off, the space is blank.

## Customization

Notice: The current version of GTT has many, many new features which are not documented in this manual. A few of the features documented below might work slightly differently in this new version.

To change default settings, select the Preferences command in Settings menu. This launches the Preferences dialog, shown in . There are two tabs of preferences in the window.

### Preferences Dialog

Preferences dialog

### The Toolbar Preferences Tab

This tab contains two sections of buttons: Toolbar and Toolbar Segments

- The Toolbar contains the following checkboxes:

  - Show Toolbar Icons
  - Show Toolbar Texts
  - Show Tooltips
  They determine whether icons and their descriptions appear on the toolbar, and whether tooltips describing the button appear when the mouse pointer hovers over a toolbar item.

- The Toolbar Segments checkboxes determine which shortcut buttons appear on the toolbar:

  - Show 'New'
  - Show 'Save', 'Reload'
  - Show 'Cut', 'Copy', 'Paste'
  - Show 'Properties'
  - Show 'Timer'
  - Show 'Preferences'
  - Show 'Help'
  - Show 'Quit'

### Other Settings

There are three sections within the Misc tab.

Display

  The Display box contains three check-boxes:

  - Show Seconds
  - Show Status Bar
  - Show Table Header
  They toggle whether seconds appear in the timer displays, and whether the status bar and table header appear in the Main Window
Shell Commands

  There are two shell commands executed by GNOME Time Tracker. One is executed when you switch between projects, and the other when you deselect a project or quit the application.

  - Switch Project Command: This shell command is executed every time you select a project which was previously unselected. If you use `&percnt;s` in this command, GNOME Time Tracker will replace that with the title of the selected project. I use the following entry to update my `.project` file: `echo '&percnt;s' >~/.project`

  - No Project Command This shell command is executed every time you deselect a project or exit GNOME Time Tracker. To complete the example above, I use this command: `rm -f ~/.project`

Logfile Preferences

  The Logfile Preferences area contains a Use Logfile Checkbox, which determines whether you use a logfile at all, and the following text entry boxes, governing its behavior:

  - Filename Determines the path and name of the log file. This should be the complete path and filename, without variables like $HOME or ~.

  - Entry Start This is the string which marks the start of a log entry. It can include the same variables the Entry Stop can.

  - Entry Stop This string marks the end of a log entry. Both this string and the Entry Start can contain the following variables:

    - `&percnt;t` — The project's title.

    - `&percnt;d` — The project's description.

    - `&percnt;T` — The total time logged on the project, in the format Hours:Minutes:Seconds.

    - `&percnt;h` — The number of hours logged on the project today.

    - `&percnt;H` — The number of hours spent on the project today, in two digits.

    - `&percnt;m` — The number of minutes spent on the project today.

    - `&percnt;M` — The number of minutes spent on the project today (00-59).

    - `&percnt;s` — The number of seconds spent on the project today.

    - `&percnt;S` — The number of seconds spent on the project today (00-59).

  - Timeout in secs — This value represents the minimum time a project must be selected before it will be logged. This is useful if you don't want to log very short tasks, or if you click on the wrong project first. For example, suppose you wanted to start working on a letter to your friend Joe, and so you selected the project Letter to Joe), but that reminds you that you have to prepare a list of Christmas presents first (Joe has asked you to give him some good ideas). So, you switch to the project Xmas presents. You wouldn't want the project Letter to Joeto be in your logfile, because you didn't really start it yet. I would suggest you set this value at least to 10 seconds.

  Note that a project will not get logged until you either quit GNOME Time Tracker, switch to another project, or de-selecet that project. Don't be confused when you look at your logfile and your current project still isn't listed, even if it has been running for two hours.

### OK, Apply and Close

If you are pleased by the changes you have made, click OK to activate the changes and have the dialog go away.

If you want to see what your changes will look like without closing the window, press Apply to activate the values while keeping the dialog open.

If you don't want to activate your changes, press Close. That will close the dialog, but will not save any of the changes you have made. This does not reverse any changes activated by the Apply command. Note that pressing Apply and then Close has the the same effect as pressing OK.

## Additional GNOME Time Tracker Dialogs

### The Properties Dialog

Notice: The current version of GTT has many, many new features which are not documented in this manual. A few of the features documented below might work slightly differently in this new version.

In this dialog, you can view and edit all the properties of a project:

- Project Title You can change the title of a project here.

- Project Description You can give the project a more detailed description if you like.

- Project Time Today This is the daily time you worked on the project today. You can edit this time here.

- Project Time Total This is the total time you worked on a project. You can edit this time here.

### The New Project Dialog

This dialog is fairly small. It just wants to know what you want to call the new project. Just enter a title for the new project and press OK. If you change your mind and don't want GNOME Time Tracker to add a new project, press Cancel.

## Known bugs and limitations

Notice: The current version of GTT has many, many new features which are not documented in this manual. A few of the features documented below might work slightly differently in this new version.

- Some effort has been put into recovering from dying X servers, but there is no guarantee that values will be saved if the application dies unexpectedly. There is no autosave function.

- Times are internally represented as an integer number of seconds. On some machines, therefore, it is theoretically possible to exceed the maximum amount of time the program can comprehend. On most machines, a project would have to run for more than 68 years for this to happen.

## Authors

GNOME Time Tracker was written by Eckehard Berns and Linas Vepstas . It is currently maintained by Linas Vepstas linas@linas.org.

Please send all comments, suggestions, and bug reports to Linas, as well as to the GNOME bug tracking database. Instructions for submitting bug reports can be found on-line. You can also use the GNOME Bug Report Tool (`bug-buddy`), available in the Utilities submenu of Main Menu, for submitting bug reports.

There is a webpage devoted to the latest GTT news at http://www.linas.org/linux/gtt/gtt.html.

This manual was written by Aaron Weber (aaron@helixcode.com) Eckehard Berns (eb@berns.i-s-o.net) and Linas Vepstas (linas@linas.org) Please send all comments and suggestions regarding the manual to the GNOME Documentation Project at docs@gnome.org. You can also add your comments online by using GNOME Documentation Status Table.

## License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You may obtain a copy of the GNU General Public License from the Free Software Foundation by visiting their Web site or by writing to

    	Free Software Foundation, Inc.
    	59 Temple Place - Suite 330
    	Boston, MA 02111-1307
    	USA