A command-line task manager
Sticky Notes
During my basement cleanup, I discovered some old novels that Aunt Dorothy lent me. I need to make a note of this somehow as a reminder. Dstask lets you attach as many notes to a task as you like. To create a reminder for Aunt Dorothy's books, use the command from line 1 of Listing 3. The number stands for the task ID. In the example, dstask then pins a note reading return novels to Aunt Dorothy onto the clean up basement task.
Listing 3
Pinning Notes
01 $ dstask note 1 return novels to Aunt Dorothy 02 $ dstask add clean up basement +basement P2 / return novels to Aunt Dorothy
Using the same principle, you can create as many additional notes as you like. Markdown experts can also use tags, but dstask 0.23.2 is not currently capable of evaluating or visually rendering Markdown tags. You can also tell dstask to directly add a note when you add a task (Figure 2). To do this, simply append a slash followed by the note (Listing 3, line 2).

Project Work
While you're cleaning up the basement, you might as well tackle the garage and declutter the shoe closet. All three cleaning tasks could be grouped together to create a spring cleaning
project.
Dstask lets you add individual tasks to a project by adding another parameter when you create a task. The tasks in lines 1 and 2 of Listing 4 are part of the spring cleaning
project specified after the project:
parameter. (Note again that dstask is not case sensitive.)
Listing 4
Organizing Tasks in Projects
01 $ dstask add clean up garage +private P3 project:spring cleaning 02 $ dstask add declutter shoe closet +Private P1 project:Spring Cleaning 03 $ dstask modify 1 -Private +Books P1 project:Spring cleaning
As shown in Figure 3, a call to dstask
reveals that the original task clean up basement
does not yet belong to any project. To change this, you can quickly modify the information by typing
dstask modify 1 project:Spring cleaning

The number again stands for the corresponding task ID (where 1
is the basement cleanup task). You can use modify
to adjust the priority, keywords, and the project itself; a minus sign removes the tag in question (Listing 4, line 3).
Targeted Intervention
Use the dstask edit 1
command to make a correction in a note. Dstask then opens all the details of the specified task in a text editor (Figure 4).

The editor that opens is defined by the $EDITOR
environment variable. This is often nano, but it could also be Vim or another editor. Some distributions, such as Ubuntu 20.04 and later, do not set a text editor. Instead, you have to set the environment variable explicitly with the commands shown in Listing 5. When editing a task, make sure that you only adjust the values to the right of the colons. As shown in Figure 3, modify the project name to the right of the project:
parameter. When you are done, save your adjustments and exit the editor (in nano, press Ctrl+O followed by Ctrl+X).
Listing 5
Setting the Environment Variable
$ echo "export EDITOR=nano" > ~/.bash_profile $ source ~/.bash_profile
While I was removing the sneakers from the shoe closet, I also dumped the waste paper in the recycling bin. To retroactively log this completed task, dstask has a log
action. It works exactly like add
, but immediately sets the project to resolved
(Listing 6).
Listing 6
Logging Tasks
$ dstask log waste paper dumped +Private P3 project:spring cleaning
In the meantime, quite a few spring cleaning tasks have accumulated. The most urgent are revealed by typing dstask
or dstask next
. The task manager sorts the list by the priority and the age of the task, placing your next task at the top of the list. To see all the tasks that you have started but not yet finished, enter:
dstask show-active
To see all paused tasks, enter:
dstask show-paused
Dstask supports some further display formats (see Table 1). If dstask does not find any matching tasks or data for an action, it just stubbornly provides a command overview.
Table 1
Display Formats and Commands
Action | Function |
---|---|
next |
List of major tasks |
show-projects |
List of all projects including the resolved tasks |
show-tags |
List of all assigned tags |
show-active |
List of all started tasks |
show-paused |
List of all tasks that were started and then paused |
show-open |
List of all tasks not yet finished |
show-resolved |
List of all completed tasks |
show-templates |
List of all templates |
show-unorganised |
List of all tasks that do not have a tag or are not assigned to a project |
« Previous 1 2 3 4 Next »
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.
News
-
Arch Linux 2023.12.01 Released with a Much-Improved Installer
If you've ever wanted to install Arch Linux, now is your time. With the latest release, the archinstall script vastly simplifies the process.
-
Zorin OS 17 Beta Available for Testing
The upcoming version of Zorin OS includes plenty of improvements to take your PC to a whole new level of user-friendliness.
-
Red Hat Migrates RHEL from Xorg to Wayland
If you've been wondering when Xorg will finally be a thing of the past, wonder no more, as Red Hat has made it clear.
-
PipeWire 1.0 Officially Released
PipeWire was created to take the place of the oft-troubled PulseAudio and has finally reached the 1.0 status as a major update with plenty of improvements and the usual bug fixes.
-
Rocky Linux 9.3 Available for Download
The latest version of the RHEL alternative is now available and brings back cloud and container images for ppc64le along with plenty of new features and fixes.
-
Ubuntu Budgie Shifts How to Tackle Wayland
Ubuntu Budgie has yet to make the switch to Wayland but with a change in approaches, they're finally on track to making it happen.
-
TUXEDO's New Ultraportable Linux Workstation Released
The TUXEDO Pulse 14 blends portability with power, thanks to the AMD Ryzen 7 7840HS CPU.
-
AlmaLinux Will No Longer Be "Just Another RHEL Clone"
With the release of AlmaLinux 9.3, the distribution will be built entirely from upstream sources.
-
elementary OS 8 Has a Big Surprise in Store
When elementary OS 8 finally arrives, it will not only be based on Ubuntu 24.04 but it will also default to Wayland for better performance and security.
-
OpenELA Releases Enterprise Linux Source Code
With Red Hat restricting the source for RHEL, it was only a matter of time before those who depended on that source struck out on their own.