GUI application for presenting Timewarrior data on charts. I was disappointed with the reporting capacity in Timewarrior or Taskwarrior. I’ve tried a few plugins for Timewarrior, but I thought that a GUI application would be way better and more appealing for the eyes.
The application requires only Timewarrior for collecting data, but if you want to integrate it with Taskwarrior, you can add a hook for that. In the official documentation is the instruction on how to install hooks.
Data for graphs are taken from JSON exported by Timewarrior.
timew export :all
If you use my hook, TimeFX can support tags (projects and contexts) from Taskwarrior.
The problem with the original script is that it doesn’t recognize Taskwarrior tags. I forked it (it’s in task/hooks
directory) and modified it this way:
def extract_tags_from(json_obj):
# Extract attributes for use as tags.
tags = [json_obj['description']]
contexts = ['car', 'cod', 'fin', 'per']
if 'tags' in json_obj:
for tag in json_obj['tags']:
if tag in contexts:
tags.append('+' + tag)
# tags.extend(json_obj['tags'])
if 'project' in json_obj:
tags.append('%' + json_obj['project'])
return tags
What can you see, from now on in Timewarrior each project will have a prefix %
and context will have +
but I limited them to a few ones (contexts
array).
There are two versions of the application:
Native Image
The file "timefx" is a Java Native Image, bundled for Linux - it doesn’t require Java. May require additional system dependencies. In order to run the application just run ./timefx
in the terminal.
jar The jar file "TimeFX.jar" needs Java 17 with the JavaFX runtime. To accomplish this, install Java 17, download JavaFX library and run belowe command. Detailed quide is on the official website.
java --module-path $PATH_TO_FX --add-modules javafx.controls -jar "path/to/TimeFX.jar"
There is an option to have Jave with prebuild JavaFX form Liberica, so execution will be simpler:
java -jar "path/to/TimeFX.jar"
-
if task has multiple tags without a prefix, TimeFX will count only the first one in the report
-
date ranges do not include the current day
-
❏ configuration file to change prefixes for tags
-
❏ report results may differ from Timewarrior because TimeFX does not split tasks at midnight