tt is free software, distributed under the terms of the [GNU] General Public License as published by the Free Software Foundation, version 3 of the License. Please see LICENSE for details.
The program uses GNU Readline (https://tiswww.case.edu/php/chet/readline/rltop.html) for command completion and history. \
The Readline library is free software, distributed under the terms of the [GNU] General Public License as published by the Free Software Foundation, version 3 of the License. \
Packages are available on most Linux distributions and BSD systems as well as macOS. Depending on your OS you may need to also install a package like libreadline-dev to have access to the headers.
The program assumes POSIX functionalities as provided by unistd.h and a Unix file system layout. The best way to run it on Windows might be to install a Unix compatibility layer or use Windows' Subsystem for Linux.\
The program `tt` does not take any command line arguments. Once launched, it provides a command prompt which supports TAB completion and a command history using the arrow keys. Note that white spaces are displayed as underscores in completion suggestions.\
The program can be exited by pressing CTRL-C (catches SIGINT).
At startup, the config file `$PREFIX/etc/tt.conf` is beeing read and tracking data is loaded from `tracking_directory` if available. In case there is no tracking data available for the current month, the project structures are loaded from the previous month's file. In case there is no data available, an empty project list is beeing set up.
The general concept is to have a list of projects with unique names. Each project has its own list of tasks which can be set active and for which time can be tracked.\
One task cannot be part of multiple projects. Tasks are not further divided into subtasks.
If the optional parameter `<Project Name>` is present, the task is beeing created in the specified Project instead. This also changes the active project to `<Project Name>`\
If the optional parameter `<Project Name>` is present, the task with name `<Task Name>` of project `<Project Name>` is set active. This also causes the active project to change to `<Project Name>`.
If the optional parameter `<Project Name>` is present, the task with name `<Task Name>` of project `<Project Name>` is set active and tracking starts. This also causes the active project to change to `<Project Name>`.\
Tracking can be stopped by pressing `CTRL-C`.
Examples:
~~~
tt> start
Started tracking of task Test Project/Debugging at Fri Dec 17 16:07:43 2021
Press CTRL-C to stop tracking
^C
Time worked on project: 00:00:02
Tracking data saved to file /home/patrick/track/2021-12
~~~
~~~
start Project_2/Task_1
Started tracking of task Project 2/Task 1 at Fri Dec 17 16:10:07 2021
Press CTRL-C to stop tracking
^C
Time worked on project: 00:00:06
Tracking data saved to file /home/patrick/track/2021-12
Manually adds `<time>` to task's work time. If `<time>` is followed by `m` or `h`, `<time>` is interpreted as minutes / hours. With `s` or without a postfix, time is interpreted as seconds. \