mirror of
https://github.com/GothenburgBitFactory/taskwarrior.git
synced 2025-06-26 10:54:26 +02:00
419 lines
23 KiB
Text
419 lines
23 KiB
Text
|
|
Although currently incomplete, this is the script from which a 1.9.3-specific
|
|
movie will be made. On the left are the typed commands, and on the right is the
|
|
spoken track.
|
|
|
|
It is intended that the left and right be combined and the result will be a new
|
|
task-tutorial.5 man page.
|
|
|
|
|
|
|
|
---------------------------------------- Intro -----------------------------------------------------
|
|
|
|
http://taskwarrior.org Hello, and welcome to this task version 1.9.3 demo.
|
|
I'm going to show you over 100 features, so don't blink, or
|
|
you'll miss some. Even experienced task users are going to
|
|
learn something.
|
|
|
|
I will start off with basic usage, and proceed to more
|
|
sophisticated commands as we go along.
|
|
|
|
---------------------------------------- Basic Usage -----------------------------------------------
|
|
|
|
Let's get started. We're planning a party, and there is a
|
|
lot of work to do, so let's capture these tasks.
|
|
task add Select a free weekend in August First decide 'when'.
|
|
task add Select and book a venue Then decide 'where'.
|
|
task add Come up with a guest list Then decide 'who'.
|
|
task add Mail invitations Let's send out nice invitations.
|
|
task add Select a caterer And a caterer.
|
|
|
|
task list Let's take a look. Good.
|
|
|
|
task log Order a special cake Now I've already ordered a cake, so rather than 'add' this,
|
|
I'm going to 'log' it. This just means that I want to keep
|
|
track of the task, but I've already done it. It saves me a
|
|
step.
|
|
|
|
task 4 duplicate /Mail/Design/ As for those invitations, I'm going to need to design them
|
|
task 4 dup /Mail/Print/ first. And I'm also going to need print them. Here we are
|
|
task list duplicating a task and making a substitution. Notice how
|
|
the commands can be abbreviated, provided they are still
|
|
unique.
|
|
|
|
task 3 done That looks good - but now I think of it, I already have my
|
|
task list guest list, so I can mark that one as done.
|
|
|
|
And that's basic usage, and you already know enough to be
|
|
productive using task. If you stopped here, you would be
|
|
perfectly able to manage your task list.
|
|
|
|
But if you want to see what task can really do, keep watching...
|
|
|
|
---------------------------------------- Projects --------------------------------------------------
|
|
|
|
task add Pay teh rent on teh 31st Remember to pay the rent at the end of the month. Oh,
|
|
task 7 /teh/teh/g that was sloppy, but it can be fixed with a global
|
|
task list substitution.
|
|
|
|
task 7 project:home We can now use projects to separate home chores from the
|
|
party preparation. Let's assign that last task to the
|
|
'home' project. Note that a task may only belong to one
|
|
project.
|
|
|
|
task 1-6 project:party And we will put those first six tasks in the 'party'
|
|
project. See how we specify a range of tasks? Task will
|
|
want to confirm bulk changes like this, but we'll accept
|
|
all changes here.
|
|
|
|
task projects Now that we have multiple projects, as shown here, we can
|
|
task list project:home use project as a filter for the list report. You can see
|
|
task li pro:par again that we can abbreviate 'list' and 'project', but when
|
|
we abbreviate 'party', we are filtering all the projects
|
|
that begin with 'par'.
|
|
|
|
---------------------------------------- Priorities ------------------------------------------------
|
|
|
|
task 1-3,5 priority:H Priorities are another way to organize tasks. You can use
|
|
task list priority values of high, medium and low, and task knows
|
|
these as H, M or L.
|
|
|
|
task 3 pri: You can remove priorities by specifying a blank value.
|
|
|
|
---------------------------------------- Tags ------------------------------------------------------
|
|
|
|
task list A task may only have one project, but it may have any number
|
|
of tags, which are just single words associated with the task.
|
|
|
|
task 3,5,6 +mall I can go to the print shop at the mall, and do all the
|
|
invitation tasks, so let's tag them all.
|
|
|
|
task long The long report shows tags, too,
|
|
|
|
task list +mall and I can use tags as a filter to any report too.
|
|
|
|
task 3 -mall I made a mistake - I can't mail out the invitations at the
|
|
mall, so let's remove that tag.
|
|
|
|
---------------------------------------- Modifications ---------------------------------------------
|
|
|
|
task 7 Pay rent at the end of the month Task 7 is not worded correctly, so I can modify that by
|
|
specifying a task ID and a new description. This is also
|
|
considered a bulk change, and so requires confirmation.
|
|
|
|
task add music We'll need music.
|
|
task 8 prepend Select some I can prepend to that.
|
|
task 8 append for after dinner I can append to that.
|
|
task list
|
|
|
|
task edit I can also go straight into an editor and modify anything.
|
|
|
|
task add Hire a band? <--- Sometimes the command will confuse the shell. In this case,
|
|
what would happen if there was a file named 'bands' in the
|
|
current directory? The shell would expand that wildcard,
|
|
so to avoid that, you can...
|
|
task add Hire a band\? <--- escape the wildcard...
|
|
task add "Hire a band?" <--- or quote the whole description...
|
|
|
|
task add -- Hire a band\? +dj You can also use the minus minus operator which tells task
|
|
to stop being clever and interpret the rest of the arguments
|
|
as a task description. Otherwise, that +dj would be
|
|
interpreted as a tag.
|
|
|
|
task undo We don't need a band, so the easiest way to get rid of that
|
|
task is to undo the last change. Task has a complete undo
|
|
stack, so you can undo all the way back to the beginning.
|
|
task 1 delete The undo operation gets rid of the task completely, but I
|
|
task undo could also have just deleted the task, then the deletion
|
|
itself would be tracked, and also undoable.
|
|
|
|
---------------------------------------- Info ------------------------------------------------------
|
|
|
|
task 1 info During that undo operation, task displayed metadata that
|
|
is associated with the task. You can display this with the
|
|
task 1 info command, and its shortcut.
|
|
|
|
task stats There are also statistics that task gathers, which I can
|
|
display.
|
|
|
|
---------------------------------------- Annotations -----------------------------------------------
|
|
|
|
task 1 annotate the 12th looks good Annotations are little notes that can be added to a task.
|
|
task 1 annotate or the 13th There can be any number, and each has a time stamp.
|
|
task list
|
|
|
|
task 1 denotate 13th Annotations can be removed by providing a matching pattern.
|
|
|
|
---------------------------------------- Configuration ---------------------------------------------
|
|
|
|
task show Task has a 'show' command, that is used to display the
|
|
active configuration. There are hundreds of settings that
|
|
can be changed, and every one has a sensible default.
|
|
|
|
man taskrc If you want a complete list of all the settings and their
|
|
meanings, read the man page.
|
|
|
|
task config answer 42 The 'config' command is used to modify the settings, and in
|
|
this case the configuration variable 'answer' is given the
|
|
value of 42.
|
|
|
|
task show answer The 'show' command indicates that the value was changed,
|
|
task config answer and also that the variable is meaningless to task. The show
|
|
command performs a detailed check on your configuration, and
|
|
alerts you to several kinds of problem. The config command
|
|
can also remove a value.
|
|
|
|
task rc.report.list.sort=description+ list
|
|
A very powerful feature is the ability to override the
|
|
configuration variables temporarily. Here I am requesting
|
|
an ascending sort on the description field only.
|
|
|
|
---------------------------------------- Defaults --------------------------------------------------
|
|
|
|
task config default.command list Task has a default command, which can be set to anything,
|
|
task in this case it is set to the 'list' report. Then running
|
|
task with no command name runs the default command.
|
|
|
|
task config default.priority H I can also specify a default priority and project, which
|
|
task config default.project Work means that any tasks added will use them, unless an
|
|
task add New task alternative is provided.
|
|
task list
|
|
|
|
task undo Let's just revert those changes, to clean up.
|
|
task config default.priority
|
|
task config default.project
|
|
|
|
---------------------------------------- Aliases ---------------------------------------------------
|
|
|
|
task config alias.zzz=list You can create aliases to effectively rename task commands.
|
|
task zzz
|
|
|
|
---------------------------------------- Color -----------------------------------------------------
|
|
|
|
task config color on All the examples so far have been shown with color turned
|
|
task list off. How about some color?
|
|
|
|
What you see is the result of a set of color rules being
|
|
applied to the tasks. There is a hierarchy of color rules
|
|
that colorize a task based on the metadata
|
|
|
|
task 1 "bg:on red" Here is an example of an explicit override to the color
|
|
task list rules where a specific task is given a red background.
|
|
task 1 bg: Note that the quotes are necessary, otherwise the shell
|
|
will consider "bg:on" and "red" to be separate arugments.
|
|
|
|
task color Task supports 256 colors on certain terminal emulators,
|
|
and this shows the range of colors available.
|
|
|
|
task color white on red Task can also show a sample of a color.
|
|
|
|
task color legend Or samples of all the active color settings.
|
|
|
|
Themes are a simple way to use coordinated color schemes
|
|
so by including a color theme into the configuration file,
|
|
you can see some striking effects.
|
|
|
|
A blue theme.
|
|
|
|
# include /usr/local/share/doc/task/rc/dark-blue-256.theme
|
|
vi ~/.taskrc
|
|
task color legend
|
|
task list
|
|
A red theme.
|
|
|
|
# include /usr/local/share/doc/task/rc/dark-red-256.theme
|
|
vi ~/.taskrc
|
|
task color legend
|
|
task list
|
|
A general dark theme.
|
|
|
|
# include /usr/local/share/doc/task/rc/dark-256.theme
|
|
vi ~/.taskrc
|
|
task list
|
|
|
|
Here is a color rule that specifies a dark blue
|
|
background for all tasks that are part of the 'party'
|
|
project, and uses bold to identify any tasks with the
|
|
keyword 'invitations' in the description.
|
|
|
|
task rc:x "rc.color.project.party=on rgb001" rc.color.keyword.invit=bold list
|
|
|
|
man task-color There is a man page with a writeup of all the color
|
|
capabilities.
|
|
|
|
---------------------------------------- Active tasks ----------------------------------------------
|
|
|
|
task 2 start I'm selecting a venue, so let's indicate that task 2 is
|
|
task list active by starting it. See how active tasks are affected
|
|
by the color rules.
|
|
|
|
task active There is an active report that shows only active tasks, and
|
|
task 2 stop you can mark any active task as inactive, by stopping it.
|
|
|
|
---------------------------------------- Due dates -------------------------------------------------
|
|
|
|
task 1 due:7/31/2010 Due dates can be specified as dates...
|
|
task 1 due:2wks as some distance into the future...
|
|
task 1 due:-2wks or past...
|
|
task 1 due:eom or by mnemonic (end of month)...
|
|
task 2 due:8th or by ordinal...
|
|
task 2 due:sunday or by day...
|
|
task 5 due:eow
|
|
task list Some of these dates are in the past, so now you see there
|
|
task overdue are overdue tasks. Due dates have different colors for
|
|
due, imminent, today and overdue values.
|
|
|
|
task rc.dateformat.report:Y-M-DTH:N:SZ list
|
|
You can also choose the format - for input and output.
|
|
|
|
---------------------------------------- Calendar --------------------------------------------------
|
|
|
|
task calendar When tasks have due dates, you can see them on the calendar.
|
|
|
|
vi ~/.taskrc
|
|
# include /usr/local/share/doc/task/rc/holidays-US.rc
|
|
task calendar
|
|
Task comes with sample holiday files. You can create your
|
|
own, or use one of the samples to show holidays on the
|
|
calendar.
|
|
|
|
task cal 2010 You can see the whole year.
|
|
task rc.calendar.details:full cal You can see the tasks with due dates also.
|
|
task rc.calendar.holidays:full cal And you can see the holidays.
|
|
|
|
---------------------------------------- Recurrence ------------------------------------------------
|
|
|
|
task 7 info Remember the task we added to pay the rent? We're going to
|
|
task 7 due:eom recur:monthly need to do that every month. Recurring tasks allow us to
|
|
task 7 set up a single task that keeps coming back, just as you'd
|
|
expect.
|
|
|
|
task 7 until:eoy You can also limit the extent of the recurrence. Let's make
|
|
sure the task doesn't recur after the lease ends.
|
|
|
|
task recurring And there is a recurring report that shows you only the
|
|
recurring tasks.
|
|
|
|
To illustrate a point, let's set up a recurring annual task
|
|
as a reminder to pay taxes, and put the due date in the past.
|
|
This will cause task to fill in the gaps, and create a series
|
|
of severely overdue tasks.
|
|
|
|
task add Pay taxes due:4/15/2007 recur:yearly
|
|
task long
|
|
|
|
task 11 delete # y y Deletions to recurring tasks can be escalated to include all
|
|
task list the recurrences of a task.
|
|
|
|
---------------------------------------- Shell -----------------------------------------------------
|
|
|
|
shell
|
|
|
|
---------------------------------------- Special Tags ----------------------------------------------
|
|
|
|
special tags
|
|
|
|
---------------------------------------- Waiting ---------------------------------------------------
|
|
|
|
task add Look for new apartment due:eoy When you have a task with a due date that is far out into
|
|
task list the future, you may want to hide that task for a while.
|
|
|
|
task 10 wait:12/1/2010 You can provide a wait date for a task, and it will remain
|
|
task list hidden until that date. It will no longer be cluttering
|
|
task waiting your task list, but it is still there, and visible using
|
|
the 'waiting' report. When the wait date comes, the task
|
|
will just pop back into the list.
|
|
|
|
task add Do something in a few seconds To illustrate this, let's set up a task with a very short
|
|
task 11 wait:5s wait time of five seconds.
|
|
|
|
task list It's gone.
|
|
sleep 5
|
|
task list And it's back.
|
|
task 11 rc.confirmation:no delete And now it's deleted.
|
|
|
|
---------------------------------------- Dependencies ----------------------------------------------
|
|
|
|
dependencies
|
|
|
|
---------------------------------------- Reports ---------------------------------------------------
|
|
|
|
task minimal Task has a good many reports. There is the bare minimum.
|
|
task ls The simple.
|
|
task list The standard.
|
|
task long The kitchen sink.
|
|
task all The packrat.
|
|
task completed Nostalgia.
|
|
task recurring Groundhog day.
|
|
task waiting Secrets.
|
|
task blocked Wedged.
|
|
task oldest Ancient history.
|
|
task newest Contemporary.
|
|
task timesheet Corporate.
|
|
task next And "what should I work on next?" This one can be useful
|
|
because it pulls a few of the highest priority tasks from
|
|
all the projects. It's the report we should all be using.
|
|
|
|
---------------------------------------- Custom Report ---------------------------------------------
|
|
|
|
You can even define your own custom report. Let's quickly
|
|
create a custom report - we'll call it foo - and I can
|
|
choose from a long list of fields to include in the report,
|
|
but I want to see the ID, the date when I entered the task,
|
|
and the description. I can specify the labels for those
|
|
columns, the sort order of the report, and I can filter.
|
|
|
|
cat >> ~/.taskrc
|
|
report.foo.description=My own report
|
|
report.foo.columns=id,entry,description
|
|
report.foo.labels=ID,Entered,Description
|
|
report.foo.sort=entry+,description+
|
|
report.foo.filter=status:pending
|
|
|
|
task help | grep foo Custom reports also show up on the help output.
|
|
|
|
task show report.foo I can inspect the configuration.
|
|
|
|
task foo And they can be run just like the other reports.
|
|
|
|
---------------------------------------- Charts ----------------------------------------------------
|
|
|
|
task history The history report gives monthly totals of tasks added,
|
|
task history.annual completed and deleted. There is also an annual version.
|
|
|
|
task ghistory There is a graphical monthly...
|
|
task ghistory.annual and annual version.
|
|
|
|
task summary There is a project summary report that shows progress in
|
|
all the projects.
|
|
|
|
---------------------------------------- Advanced Filters ------------------------------------------
|
|
|
|
filters
|
|
limit:3
|
|
attribute modifiers
|
|
|
|
---------------------------------------- Import/Export ---------------------------------------------
|
|
|
|
import
|
|
export.yaml
|
|
export.csv
|
|
|
|
---------------------------------------- Help ------------------------------------------------------
|
|
|
|
task help You'll find a quick reference page built into task itself,
|
|
man task or perhaps you'll want to take a look at the several man
|
|
man taskrc pages installed with task.
|
|
man task-color
|
|
man task-tutorial
|
|
man task-faq
|
|
|
|
---------------------------------------- Wrap up ---------------------------------------------------
|
|
|
|
task version And that's it. Don't forget to take a look at
|
|
taskwarrior.org.
|
|
|
|
Thank you for watching.
|
|
|
|
---------------------------------------- End -------------------------------------------------------
|
|
|