Timetracking

Simple command line time tracking application.

Crates.io

Install

cargo install timetracking

Commandline

``` USAGE: tt [OPTIONS] [SUBCOMMAND]

FLAGS: -h, --help Prints help information -V, --version Prints version information

OPTIONS: -d, --data-file which data file to use. [default: ~/timetracking.bin]

SUBCOMMANDS: continue continue time tracking with last description export export data to file help Prints this message or the help of the given subcommand(s) import import data from json file list list all entries path show path to data file show show work time for given timespan start start time tracking status show info from the latest entry. Returns the exit code 0, if the time tracking is currently active and -1 if not stop stop time tracking ```

Config

tt supports global config (~/.config/timetracking/config.toml), project config (timetracking.project.toml) and local config (.timetracking.toml).

The following settings are supported: ```toml

the file where to save the events

data_file = "~/timetracking.bin"

if true, calling start when already running inserts a stop event and a start event.

autoinsertstop = false

if true, tt will recursively search parent dirs for project settings

enableprojectsettings = true ```

The order in which config files are read is: - global - project - local

Configs override earlier loaded configs.

Project configs are special and will be search recursively upwards, starting from the current directory. So if your in /a/b/c the search order will be: - /a/b/c/timetracking.project.toml - /a/b/timetracking.project.toml - /a/timetracking.project.toml - /timetracking.project.toml

Project configs can be disabled in the global config file.

Starship

You can use the following snippet to show how much you worked today, while the time tracking is running.

Just add it to your starship config (e.g.: ~/.config/starship.toml) yaml [custom.worktime] command = "tt show" when = "tt status" shell = "sh"