====== Todo Lists in TaskWarrior ====== [[http://taskwarrior.org|Taskwarrior]] is a powerful command-line todo list manager which can be installed from [[http://slackbuilds.org/office/task/|SlackBuilds.org]]. Please note that it depends on [[http://slackbuilds.org/development/lua/|Lua]]. ===== Managing Your Todo List ===== You can use TaskWarrior in 2 ways: 1. By invoking the ''Task Shell'' and issuing ''TW'' commands: % task shell task 2.1.1 shell Enter any task command (such as 'list'), or hit 'Enter'. There is no need to include the 'task' command itself. Enter 'quit' (or 'bye', 'exit') to end the session. task> 2. By typing ''TW'' commands directly from a system shell (eg. Bash) preceded with the ''task'' command. This is the approach we are going to take in this tutorial. In order to limit the amount of typing we could create a shell alias. If you use Bash, please edit (or create) the following file ''${HOME}/.bashrc'': alias t=task In this HOWTO we are going to use the full ''task'' command. === Adding Tasks === % task add Email Bob Created task 1. % task add priority:H Book a ticket Created task 2. We have just created 2 tasks with the second one being of high priority. === Adding Due Dates === % task 1 modify due:09/09/2012 % task 4 modify due:today % task 5 modify due:3days === Displaying Tasks === % task ID Project Pri Due A Age Urgency Description 2 H Book a ticket 1 09/09/2012 Email Bob 2 tasks Please note that because of high priority, task 2 is at the top of the list. There are a few ways you can list your tasks: * task * task minimal * task ls * task list * task long Each method differs in terms of the amount of displayed information. === Starting a Task === % task 1 start === Marking Tasks as Done === % task 2 done Completed task 2 'Book a ticket'. Completed 1 task. % task ls ID Project Pri Description 1 Email Bob 1 task === Deleting Tasks === % task 1 delete Alternatively, you can ''undo'' the task you've just created: % task undo === Duplicating Tasks === We have got the following task: ID Project Pri Due A Age Urgency Description 4 H 3s 6 Phone Lennart about the code You can duplicate the task with some modifications % task 4 duplicate /Lennart/Linus/ ID Project Pri Due A Age Urgency Description 4 H 1m 6 Phone Lennart about the code 5 H 7s 6 Phone Linus about the code === Modifying Tasks === You have just realised that one of your tasks contains a spelling mistake: ID Project Pri Due A Age Urgency Description ... 6 16s 0 Install Slakware on the lappy We can modify an existing task: % task 6 modify /Slakware/Slackware/g ID Project Pri Due A Age Urgency Description 4 H 14m 6 Phone Lennart about the code 5 H 14m 6 Phone Linus about the code 1 43m 0 Email Bob 2 33m 0 Install Opera 3 31m 0 Upgrade Angband 6 12m 0 Install Slackware on the lappy 7 6m 0 Create a SlackBuild for my new program 8 4m 0 Buy a present for Billy 9 4m 0 Test my SlackBuilds on Slackware 14 10 2m 0 Feed the dog 11 2m 0 Change my email address on SlackBuilds.org 12 28s 0 Tax Return 13 1s 0 Upgrade SlackBuilds % task 1-6 modify project:misc % task 7,9,11,13 modify project:SB % task 8,10 modify project:home ID Project Pri Due A Age Urgency Description 13 SB H 13m 7 Upgrade SlackBuilds 10 home H 16m 7 Feed the dog 4 misc H 28m 7 Phone Lennart about the code 5 misc H 28m 7 Phone Linus about the code 12 H 14m 6 Tax Return 9 SB M 18m 4.9 Test my SlackBuilds on Slackware 14 11 SB M 16m 4.9 Change my email address on SlackBuilds.org 8 home M 18m 4.9 Buy a present for Billy 1 misc M 57m 4.9 Email Bob 6 misc M 26m 4.9 Install Slackware on the lappy 7 SB L 20m 2.8 Create a SlackBuild for my new program 2 misc L 47m 2.8 Install Opera 3 misc L 44m 2.8 Upgrade Angband 13 tasks You can display a breakdown of your projects: % task projects Project Tasks Pri:None Pri:L Pri:M Pri:H (none) 1 0 0 0 1 SB 4 0 1 2 1 home 2 0 0 1 1 misc 6 0 2 2 2 3 projects (13 tasks) === Adding / Removing Tags === You can add tags by: % task 3,5,7-10 modify +work You can remove tags by: % task 7 modify -work Please note that tags are only displayed when you list your tasks with the ''long'' option. === Selective Display of Tasks === Display your tasks by priority: % task priority:H [task next priority:H] ID Project Pri Due A Age Urgency Description 13 SB H 15m 7 Upgrade SlackBuilds 10 home H 18m 7 Feed the dog 4 misc H 30m 7 Phone Lennart about the code 5 misc H 30m 7 Phone Linus about the code 12 H 16m 6 Tax Return 5 tasks Display your tasks by project: % task project:SB [task next project:SB] ID Project Pri Due A Age Urgency Description 13 SB H 16m 7 Upgrade SlackBuilds 9 SB M 20m 4.9 Test my SlackBuilds on Slackware 14 11 SB M 18m 4.9 Change my email address on SlackBuilds.org 7 SB L 22m 2.8 Create a SlackBuild for my new program 4 tasks Display your tasks by tag: % task +work === Adding annotations === You can annotate a task: % task 9 annotate i3 builds fine ID Project Pri Due A Age Urgency Description ... 9 SB M 1h 5.8 Test my SlackBuilds on Slackware 14 9/1/2012 yajl works fine 9/3/2012 i3 builds fine ... === Displaying Statistics === % task stats ===== Colours in TaskWarrior ===== You can enable one of the colour themes in ''~/.taskrc'' by uncommenting one of the lines: # Color theme (uncomment one to use) #include /usr/share/doc/task/rc/light-16.theme #include /usr/share/doc/task/rc/light-256.theme #include /usr/share/doc/task/rc/dark-16.theme #include /usr/share/doc/task/rc/dark-256.theme #include /usr/share/doc/task/rc/dark-red-256.theme include /usr/share/doc/task/rc/dark-green-256.theme #include /usr/share/doc/task/rc/dark-blue-256.theme #include /usr/share/doc/task/rc/dark-violets-256.theme #include /usr/share/doc/task/rc/dark-yellow-green.theme #include /usr/share/doc/task/rc/dark-gray-256.theme The ''dark-green-256'' theme looks as follows: {{ :howtos:task.png?nolink&500 | TaskWarrior}} You can display current colours (variables + colour values) with: % task color legend Colour themes can be easily customised by editing theme files. All the theme files are located in ''/usr/share/doc/task/rc/''. ===== Displaying a Calendar ===== All the tasks that have a due date assigned will be marked on the calendar. Additionally you can enable the display of holidays by specifying a country in ''~/.taskrc'': include /usr/local/share/doc/task/rc/holidays-GB.rc The ''/usr/share/doc/task/rc/'' directory contains holidays for other countries as well. ===== TaskWarrior Integration ===== TaskWarrior is a very flexible and powerful tool. What makes it even more useful is the possibility of integrating it into your working environment. ==== TaskWarrior and i3 ==== 1. You issue TaskWarrior commands from ''dmenu''. Simply press A-d and start typing a ''TW'' command, eg: task add priority:H due:2days Mom's birthday 2. Assign basic keybindings. #!/bin/sh task ls read -p "Press Enter to close the window." ''~/.i3/config'': ... for_window [title="taskwin"] floating enable bindsym $ms+t exec urxvt -title taskwin -e sh ~/.i3/path/to/display_tasks.sh bindsym $ms+Shift+D exec task $(task ls | awk 'NR==4 { print $1 }') done ... This will enable the floating mode for any window entitled ''taskwin''. The Win-t combination will display the list of your tasks in a floating mode in the middle of the screen. The Win-S-d keybinding will mark your top task as completed (Please see [[howtos:window_managers:i3wm?&#i3_configuration|configuring i3 modifier keys]]). 3. [[howtos:window_managers:i3wm?&#custom_i3status_display|Displaying the top task]] in ''i3status''. ====== Sources ====== * Originally written by [[wiki:user:sycamorex |Marcin Herda]] {{tag>howtos software taskwarrior todo gtd author_sycamorex}}