Managing your tasks at the command line with TaskBook

Taskmaster

Author(s):

Boost your productivity from the Linux command line with the TaskBook task manager and note board.

How do you keep track of what you need to do? Chances are, that involves a calendar, a to-do list, or some arcane and complex mix of software. Although that's one way to do the deed effectively, it might not be the most efficient way to proceed.

Instead, you can manage all your tasks under one roof, or, in this case, from a single terminal window, and you can do it with a touch of visual panache. In this article, I take a look at a simple task management system called TaskBook, which can help anyone get and stay organized quickly and easily.

Why the Command Line?

Working from the command line goes beyond merely grabbing an opportunity to embrace your inner geek. Using the terminal to organize yourself has several advantages over the use of desktop applications.

The command line stays out of your way until you need it. A terminal window is usually small and unobtrusive and doesn't block out windows with your other work. Once you get into the flow of using the command line, you'll find a keyboard is faster than using a mouse.

Working in the terminal doesn't eat up system resource like many graphical applications, which is important for those of us who run Linux on older hardware that doesn't have the memory and processing power that modern systems pack.

With no notifications and alerts constantly flashing and blaring at you, the terminal represents the ultimate in calm technology, encouraging you to be more mindful and regular in checking what you're supposed to be doing to make sure you're on top of it all.

TaskBook [1] gives you all of that, and a bit more.

Getting Started

To begin, check your Linux distribution's package manager to see whether you can install TaskBook there. If TaskBook is not available, you can use that same package manager to install a piece of software called npm that enables you to install software and libraries written with Node.js (an environment for running JavaScript code outside of a web browser). NPM (Node Package Manager) not only puts TaskBook on your computer, it also installs the various bits and pieces that TaskBook needs to run.

With NPM installed, crack open a terminal window and run the command:

sudo npm install taskbook

The installation process should only take a few seconds. Once that's out of the way, you're ready to go.

Configuring TaskBook

This next step is optional. To configure TaskBook, you can edit a JSON (JavaScript Object Notation) file, which is a data format that both people and computers can easily read. The file in question is called .taskbook.json, and you can find it at the top of your /home directory to edit in your favorite text editor.

The file has only three options (Figure 1). The first is taskbookDirectory, which indicates the path to the folder that contains your task list. The default is the folder .taskbook at the top of your /home directory. If you prefer, for example, to save your task in a shared folder or sync your tasks with an instance of a file-sharing application like Nextcloud, change the first entry to the path to the file (e.g., ~/Nextcloud/).

Figure 1: Editing TaskBook's configuration file.

The second option is displayCompleteTasks, which controls whether TaskBook includes tasks you've finished in your list of tasks (Figure 2). Change this to false if you find that completed tasks clutter up the view.

Figure 2: Completed tasks in TaskBook.

The third option is displayProgressOverview, which controls whether TaskBook shows how many tasks are completed or are in progress at the bottom of your list (Figure 3). Again, change this to false if you want to hide that information.

Figure 3: The progress indicator in TaskBook.

Using TaskBook

When you first take TaskBook for a spin, it seems almost too simple – and maybe a bit too limited. Once you become familiar with using TaskBook, you'll appreciate that simplicity.

Interacting with TaskBook is not the same as how you interact with any of the similar programs in the GUI world. Adding your tasks and notes requires just one set of options, and displaying your task uses another command. This simple method doesn't make TaskBook any less useful or effective than other task management tools.

Say, for example, I want to create the tasks I need to accomplish to write this article. One of those tasks is to take some screen captures. To do that, I type:

tb --task Take screen captures for TaskBook article

I continue following this pattern (with a different description for each task, of course) until I have a list of everything I need to do.

TaskBook doesn't include a way to add due dates to tasks, so it lends itself to being more of a daily task list. However, you can indicate due dates by adding due: <date> to the description (e.g., due: 04/24/2019).

Viewing a Task List

Now that you have a list of tasks, you'll want to see them. To view your task list, type tb in a terminal window (Figure 4). If you left the default settings in the configuration file, TaskBook displays a running tally of the tasks you've completed, the tasks you still have to do, and the notes on your board at the bottom. I'll talk more about notes later.

Figure 4: A list of tasks in TaskBook.

Keeping this window open for reference saves having to reopen a terminal window and typing the command to run TaskBook each time you want to consult your list.

Adding Priorities

Not all tasks are created equal. Some are more important than others. You can indicate which task you need to tackle first by assigning priorities:

tb --priority @<task-number> <priority>

Priorities run from 1 (lowest) to 3 (highest). For example, say I want to give the fourth task in my list the highest priority; I type:

tb --priority @4 3

Figure 5 shows my prioritized task list. Tasks with the highest priority are red, and are followed by a pair of exclamation points. Tasks one level down are yellow, followed by a single exclamation point.

Figure 5: A prioritized set of tasks in TaskBook.

Grouping Tasks

A long list of tasks is not only demoralizing, it can set off a wave of procrastination. To get around that, you can group your tasks so you can focus on specific areas of your work or life and easily find the task you need to perform. For example, to move the first task in my list to a group called Writing, I typed

tb --move @1 Writing

and continued doing that until I had all my tasks in the appropriate groups. Any tasks that aren't in a group are lumped together into a generic group called My Board.

Changing and Completing Tasks

Sometimes, tasks change. Their scope might widen or narrow, or you might want to change the wording of a task to make it clearer. The general format is:

tb --edit @<task-number> <new description>

When I was writing this article, I was also working on a long essay for my email newsletter. The task I had in TaskBook was third in the list, and I needed to change its description, which read Outline the next newsletter essay, to change the wording of that task, I could enter:

tb --edit @3 Finish the outline for the next newsletter essay

When you're heads-down in work, knocking an item off your task list is a great feeling. When I finished the fifth item on my list, I marked it as done by typing:

tb --check 5

TaskBook added a green checkmark beside the task; the running tally of tasks pending at the bottom of the board decremented by one and the number of tasks done incremented by one.

Adding Notes to Your Board

TaskBook isn't just about managing your tasks, you can also add short notes to your task list or to your groups. Notes can be reminders of deadlines or to contact someone, and you can use them to remind yourself about why a task list exists. Your notes can be anything you need them to be.

I live on the other side of the dateline from the publications and clients with whom I work. Being a day ahead can sometimes become an excuse to procrastinate. An excuse I embrace all too often. To head that excuse off at the pass, I add a note like this to my Writing group in TaskBook:

tb --note @Writing Remember that the deadline for the Linux Magazine article is 24 April

Figure 6 shows the note in the Writing group (Figure 6).

Figure 6: A list of tasks with a note.

Final Thoughts

TaskBook isn't for you if you need your task management tool to send regular reminders, integrate with apps on your phone, or telnet your Internet-connected coffeemaker to start brewing. If, on the other hand, you need a tool that is quick, simple, and visually appealing, then TaskBook is a great choice to keep you on task and organized.

Infos

  1. TaskBook GitHub repository:https://github.com/klaussinani/taskbook

The Author

Scott Nesbitt is a freelance journalist, technical writer, and essayist. He is also a Community Moderator for Opensource.com and has been using FLOSS since the mid-1990s and writing about it since the early 2000s.