Support for Linux, macOS and Windows
A Tool to record timings for tasks per category and remembering to terminate work sessions.
There are many different task to do with a computer. At the end of the day one sometimes does not know what one has done today. If working on projects as business one has to log the hours per project, too.
Where has all the time gone?
What did I do all the time?
This tool tries to solve both problems at once:
If a dialog opens, give a name for the current task and choose a category. Also give a time limit,
this can be a absolute value like 12:00
or 22:30
or a relative one like 1h
, 20m
or
1h10m
. The system will open the next dialog after the time limit was reached.
When the dialog opens and you need additional time for the last task, you can write a relative time value
like 5m
and prepend a +
without giving a name. So only typing +5m
will give you five minutes more
for your last task.
You can also shutdown the PC (the task will end with the shutdown).
If you don't know what your current task ist, try the overview at ttt o
.
If you need a short break, you can use the button Pause
in the dialog (will be around 1 minute).
If you need a longer break, you can disable the tool by executing ttt t
and enable afterwards with
another ttt t
.
If you have to stop your current task before the limit is reached, you can run ttt new
to start a new task (will open dialog).
The statistics can be printed using ttt s
, which will show daily stats by default.
Other stat-commands for different periods and filters:
ttt s -names Website
ttt s day -names Website,SocialMedia
ttt s week -cats Work,Hobby
ttt s month -cats Hobby -names Website
ttt s all
ttt s range 2020-01-11 2020-01-15
ttt s range 2020-01-11
The available categories can be edited using ttt conf cats add|del|list
,
When deleting a category, the corresponding task won't be deleted too. The categories
are used to display the values in the dropdown of the dialogs.
If some typo has occurred there is are two possibilities to change finished tasks:
ttt conf merge
Merge tasks of different names into one single name. With other words e.g. rename
tasks called ProectX
to ProjectX
.ttt conf edit 2020-01-21
Edit the finished tasks of a specified day. The system will show a list of all
tasks finished that day. Afterwards one can choose a task and either change or delete it.
While changing allows to change the name, category and duration.The system can synchronize the completed tasks across multiple devices. There are two ways to synchronize your tasks:
If the inital sync fails on windows, one may check that
extension=php_openssl.dll
is defined inphp.ini
When synchronisation is enabled the stats view will show a new
column Other devices
if the shown tasks were
completed on other devices, too. By giving the argument
-localOnly
only local tasks will be shown. Also it is possible
to filter for devices by using e.g. -devices Desktop
.
Synchronisation can be enabled using the ttt conf sync server|directory
command.
Type ttt conf sync directory
to enable directory syncing, the system
will ask for a local directory (the directory should only be used for
TTT synchronisation and synced to the other devices e.g. via Netxcloud).
Next the client will ask for a name, this name has to be unique for
each device and will be shown in the stats view of the other devices.
ttt conf sync directory
has to be run on each device.
See the Readme in the extension-folder!
The tool supports Linux (like Ubuntu, Linux Mint), macOS and Windows. We have tested it under Linux Mint 18, macOS Catalina and Windows 10.
We have an install and update script for macOS and Linux – install.sh
.
The script will follow these steps (for detailed information per operating system see below).
ttt
command to the shellyad
for dialogs./cli.php r
)sockets
has to be available in PHP.chmod +x ./record.php ./cli.php
./record.php
cli.php
echo "alias ttt='/home/user/my-full-path/to/cli.php'" >> ~/.bashrc
ttt conf cats add
./cli.php conf cats add
ttt s today
Per default all data is saved in ~/.tasktimeterminate/
. This can be changed by editing the
config.json
in the programs root folder (will be created on first run of program).
On Windows we will use %AppData%/Roaming
for ~
.
Per default all times use the timezone Europe/Berlin
. This can be changed by editing the config.json
in the programs
root folder.
The program folder (not the data folder) can be deleted and replaced by a newer version.
The install script registers the ttt-update
command (which reruns install.sh
under the hood).
sudo apt-get install php7.4-cli
add-apt-repository ppa:ondrej/php && sudo apt-get update
sudo apt-get install php7.4-cli
should work nowsudo apt-get install yad
/usr/bin/php
will not work!brew install php
or brew install php@7.4
/usr/local/Cellar/php@7.4/*/bin/php
or /usr/local/Cellar/php/*/bin/php
(so use something like this alias ttt="/usr/local/Cellar/php/*/bin/php /Users/<me>/Applications/TaskTimeTerminate/cli.php
)sockets
(for autocompletion of tasks in the dialog) is part of the default PHP installation done by Homebrew.TTTd.app
it will start record.php
as background process
TTTd.app
will only work, if you use Homebrew for the PHP installationTTTd.app
looks for TTT at ~/Applications/TaskTimeTerminate/
TTTd.app
/bin/sh
as Shell/usr/local/Cellar/php/*/bin/php /Users/<me>/Applications/TaskTimeTerminate/record.php &> /dev/null &
.app
and add to Login Objects
$PATH
or always run like C:/my/php/path/php.exe C:/Users/<me>/TaskTimeTerminate/cli.php
sockets
(for autocompletion of tasks in the dialog)
C:/my/php/path/php.ini
(create there if not existent) to load the extension (it is part of the prebuilt PHP version);
in front of each)
extension_dir = "ext"
extension = "php_sockets.dll"
TTTd.c
and provide the correct paths (see CHANGE BELOW
in code).gcc TTTd.c -o TTTd.exe
to compile.TTTd.exe
will start a hidden process running the background job.TTTd.exe
in the autostart directory
Windows + R
fill shell:startup
into the window and copy TTTd.exe
in the folder.%AppData%\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
ttt
alias to ~/macros.doskey
which runs C:/my/php/path/php.exe C:/Users/<me>/TaskTimeTerminate/cli.php