As you grow your Linux operating system experience and become imprinted on its command-line environment, you start having more and more exciting tasks to do. With time, it might become impossible to keep track of what computing task or project milestone you have successfully accomplished.
Such a scenario might reduce your Linux OS productivity. However, with every problem associated with a Linux operating system, there is always a Linux-oriented solution. The best way of keeping track of your Linux OS activities/objectives is via a to-do list manager.
In this article guide, we will walk you through the analysis and installation of some recommended to-do list managers for your Linux command-line environment.
1. t Command-Line To-Do List Manager
t is a command-line to-do list manager that prioritizes the need to create a solution for users to finish tasks rather than organize them. Other list managers are attributed as feature-packed because their associated tasks can be prioritized, split, and tagged.
They also give users the opportunity to color-code tasks and order them if needed. As for t
to-do list manager, it is simple and almost featureless. Its almost featureless attribute makes it faster to use than its mentioned nemesis such that you won’t spend too much time tagging tasks instead of finishing them. It is flexible and version-control-friendly.
To install t
to-do list manager, you must have the latest Python3 (which comes preinstalled on most Linux distributions) and Git installed on your Linux system.
First, clone the repository and then create a directory for storing your to-do list:
$ git clone https://github.com/sjl/t.git $ cd t $ ls $ mkdir ~/tasks
Next, add an alias to t
in the ~/.bashrc file.
alias t='python3 /path/to/t.py --task-dir ~/tasks --list tasks'
Reload the ~/.bashrc file.
$ source ~/.bashrc
To add, list, finish or edit a task, implement:
$ t [task description] #add a task $ t #list tasks $ t -f [task_ID] #finish a task $ t -e ID [edit description] #edit a task
More usage of t
is on its manual page:
$ t -h
2. Yokadi To-Do List Manager
Yokadi is a command-line TO-DO list solution that is SQLITE-powered with the primary objective of aiding Linux users in organizing their workflow and ensuring they work on unfinished tasks.
Its functionality is characterized as efficient, intuitive, and simple. The tasks associated with this TO-DO list solution can have keywords, urgency, due date, and description.
To install Yokadi on Debian-based distributions using the apt package manager:
$ sudo apt install yokadi
On other Linux distributions, we can make use of the pip – Python package manager.
$ pip3 install yokadi
Open the following file:
$ sudo nano $HOME/.local/lib/python3.10/site-packages/sqlalchemy/sql/base.py
Replace all instances of collections.MutableMapping with collections.abc.MutableMapping to avoid running into the error message:
AttributeError: module 'collections' has no attribute 'MutableMapping'
To launch and know the usage of yokadi, use:
$ yokadi > t_add virtualbox download and install virtualbox #create a task
As you can see, the first portion of the command has been taken as the project name (virtualbox) and the remaining portion as a task (download and install virtualbox).
We can add more tasks in the following manner:
> t_add _ install Ubuntu 20.04 on virtualbox
The underscore links the task to the last used project:
> t_add _ install RHEL8 on virtualbox > t_add _ install Arch Linux on virtualbox
To list the tasks associated with our project (virtualbox), we’ll run:
> t_list virtualbox
To mark a task as done, we will use its task ID e.g mark “install arch Linux on virtualbox” as done.
> t_mark_done 4 > t_list virtualbox
To list tasks accomplished today (present date):
> t_list virtualbox --done today
To associate a task with a due date, we will use the task ID:
> t_due 1 +2d > t_due 3 21/08 11:00
Refer to the Yokadi manual page for more command usage and references.
3. Taskwarrior To-Do List Manager
Taskwarrior is a command line task list management tool that comes with a multitude of features. To install Taskwarrior, use:
$ git clone --recursive -b stable https://github.com/GothenburgBitFactory/taskwarrior.git $ cd taskwarrior $ cmake -DCMAKE_BUILD_TYPE=release . $ make $ sudo make install
To create a task or to-do list associated with a due date:
$ task add Pay Internet due:eom
To create a task without a due date and add a due date later:
$ task add Pay Water Bill $ task 2 modify due:eom
To remove the due date from the specific task:
$ task 1 modify due:
If your task has multiple line description, you can create it in the following manner:
$ task add "Ten things to learn from LinuxShellTips before 2022 ends!"
To display a list of your created tasks, run:
$ task list
A complete user manual of this utility can be found by running the command:
$ task help
4. DevTodo To-Do List Manager
DevTodo utility is hierarchically organized such that it can track the creation and completion time of tasks. To install it, you need Homebrew installed on your machine.
$ brew install devtodo
To add a task:
$ todo -a Pay Monthly Internet
We can also add a sub-task to the above task by specifying its index:
$ todo -ag 1 Vilcom Subscription
To add another sub-task, we will reference the sub-task index 1.1 above:
$ todo -ag 1.1 Contact Ravi
To list all your tasks:
$ todo -A
To mark a task as done:
$ todo -d 1.1.1
A complete user manual of this utility can be found by running the command:
$ man devtodo
5. Ultralist Task Management System
Ultralist is easy to use, powerful, and open-source task management system for the Linux command line. We can install it via Homebrew in the following manner:
$ brew install ultralist
The first step is to initialize an ultralist repo:
$ ultralist init
The following screenshot reveals a summary of commands associated with using Ultralist as a to-do list manager.
$ ultralist help
For instance, to add, mark, or list tasks:
$ ultralist add task_name $ ultralist complete task_name $ ultralist list
6. topydo To-Do List Manager
Users can benefit from topydo utility’s due and start date features, and recurring to-do items. Its installation requires pip3 (Python3 package manager).
$ pip3 install topydo
To see all available commands associated with topydo, run:
$ topydo help
For example, to add or list items:
$ topydo add item_1 $ topydo ls
These solutions ensure that your TO-DO lists are purely command-line driven. Know of another TO-DO list manager for the Linux command line? Feel free to leave a comment or feedback.
topydo includes a dependency manager, which I think is useful. A listing of tasks suppresses those for which the dependencies are not yet complete. This somehow makes me feel better, as I am not reminded of those tasks that cannot be started because some precursor task is still outstanding.