This guide is intended to get a user up and running with augr
, and also
describe some of it's more advanced features. It assumes that the augr
binary
is installed and that the user is familiar with the command line.
augr
is a program to track how your time is being spent. It is designed to be
used on multiple devices, using Syncthing to synchronize it's data. Each
device that it is used on must be configured before it can be used.
Once augr
has been setup, you can track your time. Let's start by tracking
the time you spend reading this guide:
$ augr start reading
Here you are telling augr
that you have started reading. augr
will log that
you started "reading" at the current time. We can check that this is indeed the
case with augr summary
:
$ augr summary
Date Start Duration Total Tags
――――― ――――― ―――――――― ―――――――― ――――――――
07/20 13:00 0m 0m reading
Augr maintains a continuous stream of events. Each event ends when the next one begins. The canonical way to stop tracking task(s) is to start an event with no tags, like so:
$ augr start
$ augr summary
Date Start Duration Total Tags
――――― ――――― ―――――――― ―――――――― ――――――――
07/20 13:00 30m 30m reading
07/20 13:30 0m 30m
This is no different than any other event, except that the output of augr chart
will output blank spaces instead of filled in marks:
$ augr chart
Day 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Tue ████████████████ █████████████████████████████████████████ ███████████
Wed ████████████████ █████████████████████ ███████████████ ██ ████████
Thu ████████████████ ██ ██████████████████████
Fri ████████████████ ███████████████████████████ ███████████████████████
Sat ███████████████████████████████ ████ ████████████████████████████
Sun ████████████████████████████ ███ ██████████████ ████████
Mon ████████████████ ██████████████████████████████████████
You can filter the output of the summary by giving some tags to the summary
subcommand:
$ augr summary
Date Start Duration Total Tags
――――― ――――― ―――――――― ―――――――― ――――――――
06/29 06:33 54m 54m blog augr
07:27 47m 1h 41m blog
08:15 2h 51m 4h 33m social-media
11:06 29m 5h 2m food
11:36 1h 38m 6h 41m coding augr
13:15 1h 31m 8h 12m coding augr
14:46 8m 8h 20m social
14:54 53m 9h 14m augr
$ # Filter the output
$ augr summary augr
Date Start Duration Total Tags
――――― ――――― ―――――――― ―――――――― ――――――――
06/29 06:33 54m 54m blog augr
11:36 1h 38m 2h 33m coding augr
13:15 1h 31m 4h 4m coding augr
14:54 53m 4h 57m augr
If you forget to start tracking for a couple of minutes, you can use the
--time
option to set the event at a past time.
$ augr start hello world --time 10min
See Specifying Dates and Times for a complete list of ways to specify datetimes.
augr
also supports modifying past events. For example say you started reading,
but then decided that you wanted to tag this reading with entertainment
. You
can do this with the tag
subcommand.
$ augr summary --refs
Date Start Duration Total Tags
――――― ――――― ―――――――― ―――――――― ――――――――
08/31 17:04 14m 14m reading fbb4d730-c52a-450f-b920-78b20f8209bd
$ augr tag fbb4d730-c52a-450f-b920-78b20f8209bd entertainment
$ augr summary
Date Start Duration Total Tags
――――― ――――― ―――――――― ―――――――― ――――――――
08/31 17:04 17m 17m entertainment reading
The --refs
option gives you the EventRef
of each event. You can then use
that reference to tag
the event, or change its start time.
$ augr set-start fbb4d730-c52a-450f-b920-78b20f8209bd 17:15
$ augr summary
Date Start Duration Total Tags
――――― ――――― ―――――――― ―――――――― ――――――――
08/31 17:15 10m 10m entertainment reading
The summary
subcommand has --start
and --end
arguments which take a time
that may be specified using several different methods.
DateTimes conforming to RFC 3339 are allowed. The time zone may be excluded, and the systems Local time zone will be used.
$ # What was I doing in the afternoon of July 1st?
$ augr summary --start 2019-07-01T12:00:00 --end 2019-07-01T23:00:00
or with a timezone:
$ # What was I doing in the afternoon of July 1st, in UTC-0500?
$ augr summary --start 2019-07-01T12:00:00-05:00 --end 2019-07-01T23:00:00-05:00
If you don't the time on a date, it will assume that you mean midnight
(00:00:00
) in your local timezone. This is useful for getting a summary of
a few days:
$ # What was I doing in the afternoon on July 4th, 2019, to July 5th, 2019?
$ augr summary --start 2019-07-04 --end 2019-07-06
Better yet, you can exclude the current year to make it even shorter:
$ # What was I doing in the afternoon on July 4th, 2019, to July 5th, 2019?
$ augr summary --start 7-4 --end 7-6
You may also omit the date, and just write the hour and minute.
$ # What have I done since 16:00 today?
$ augr summary --start 16:00
Writing a duration will subtract it from the current time. The parse_duration
crate is used, which supports the standard set by systemd.time and more.
$ # Get a summary of the week
$ augr summary --start 1week