FOSS Task Management: A Custom Made System

Meet Gregory, a writer and the brains behind Face Dragons. He's the go-to guy for getting things done. Gregory's been living the digital nomad life in Asia for as long as anyone can remember, helping clients smash their goals. He writes on topics like software, personal knowledge management (PKM), and personal development. When he's not writing, you'll catch him at the local MMA gym, nose buried in a book, or just chilling with the family.

Anyone who reads Face Dragons regularly knows we love productivity and just getting stuff done. We have how-to articles on task management – like this minimalist productivity system – but today, we’re talking about something powerful enough to drive your productivity every day. This is an advanced system. Take it and run with it, customize it, and make it your own. This FOSS task management system is perfect for someone who needs to be highly productive and doesn’t get in your way.

Every part of this system is free and open-source, so if you want to replicate it, you can. I’m running Linux, but you could make this work on a Mac or Windows with a little extra work. It involves a few different working parts, so here’s what you’d need:

  • Simpletask – An Android task management app.
  • Syncthing – A multi-platform file syncing tool.
  • My GTD App – A custom-made, Dmenu-driven desktop GTD app. Feel free to use it, but I recommend you build something perfect for you.
  • A few Bash scripts that give some nifty extra functionality. (See below)

There are five can’t-live-without parts that make up any productivity system: Capture, Processing/Organizing, Prioritizing, Calendar Events, and Projects.

So, let’s jump straight in!

1. Capture

When an idea first comes to you, capture it quickly before you forget it or get distracted. Your capture tool needs to be immediate and always available. There’s no point in having a great capture tool, but it’s on your laptop at home. No, capture needs to be everywhere you are. And your capture tools must stay in sync. You don’t want three different lists of captures!

So, for most people, you need the ability to capture on your phone and desktop/laptop.

Capturing Tasks On Mobile

On mobile, Simpletask is the best option. It’s free and open-source, is based on the todo.txt standard (so it’s compatible with other software,) has all the features you’ll need (plus widgets,) and stores everything in a plain text file.

It has a dedicated capture “widget,” which I keep on the app launcher on Android. With this setup, you’re always one click away from your capture tool.

Simpletask Capture Widget on Android

SimpleTask saves all my captures in plain text format in a file, which I sync to my laptop and desktop using synching.

The settings in Simpletask let you choose which file to use for your tasks. So simply choose the file you’re syncing to your other devices. You never need to do anything else, syncthing will work in the background, making sure everything is in-sync.

Capturing Tasks On the Desktop

On a computer or laptop, you want the capture process to be equally easy.

I hit a hotkey, and my GTD program opens instantly, covering just one line at the top of the screen. From there, I can enter a new task or idea and close it again.

Why do it like this? While reading an article or watching a YouTube video, if an idea strikes you, you can quickly capture it without leaving the article (or video,) without needing to open another program, and you can still see the entire page you’re on. This one-line program stays out of your way.

You can see it in the top left of the screenshot below (it says “New Capture”)

Capturing tasks with custom GTD app

This program is great if I have a few things to capture, like when I do a brain dump or have many tasks I need to enter. I just type one after another and hit enter.

Whether I capture from my phone or my desktop, everything is instantly available on both. Syncthing keeps everything in sync.

2. Process

Don’t get me wrong, everyone should learn the fundamentals of GTD, but you don’t need to follow its methodology to the letter. I don’t clarify and organize as David Allen lays it out.

In GTD, you should capture quickly, e.g., “Learn Piano,” then later come back and process. First, make the task more specific, e.g., “Find a Piano Teacher,” and put it on a list with other tasks of the same context, e.g., “Find a Piano Teacher online @Computer.”

When you add a new capture, if you can, try to make it as specific as possible so it doesn’t need clarifying later. It is the same with organizing; if you know what it is, add the context when you capture it. This saves time later, but you can still come back and clarify/organize captures if you need to. They will stay in your capture inbox until it’s complete or you add a context.

Widgets & Reminders for un-processed tasks

How do I know when I have unclarified tasks in my capture box? A widget in my taskbar tells me. It’s a simple widget showing the number of tasks without contexts on my list.

Tasks to process taskbar widget

It’s just a single line of code:

cat folder/tasklist | grep -v "@" | wc -l

The -v flag inverts grep to find all lines without an @ symbol, and wc -l simply counts how many lines are returned. The result is the number of tasks without context. (Of course, you must change “folder/tasklist” to the actual location of your task list.)

On mobile, I use a Simplenote widget with a filter to show only tasks with no context on the second page of my Android home screen. Here it is.

Simpletask Process Widget

Processing on Mobile

Simpletask makes processing on mobile fast and easy, it comes with a widget to show a list and filter it any way you like. So, I keep a list of tasks with no context above and can process them any time I like.

To process, I just click one or multiple tasks, and options pop up at the bottom of Simpletask to edit, add a context, add a project, or add a due date. Processing takes no more than a couple of seconds for each task.

Processing a new task on Simplenote

Processing on Desktop

Processing on the desktop is just as simple. Again, I open my GTD program with a hotkey, hit “tasks,” then “process,” and then it’s the same: pick a task, choose to edit, add context, etc.

Processing a new task using my custom GTD app

3. Prioritizing and MITs

David Allen doesn’t recommend writing a list of things you want to do that day. Instead, he thinks a list like that is arbitrary as you never quite know what the day will throw at you (which is true.) Still, I find that a daily list of things I must do helps me focus my day and stops me from having too many wasted days – You know, the ones where you get to the end and wonder why you didn’t get to any of your important tasks.

A daily todo list can take many forms. Sometimes, it’s just jotted down in my planner while having my morning espresso or keto coffee. Usually, however, it’s handled digitally – like the rest of my system. Writing a list in my planner was great when I kept it open and didn’t move from my desk, but once the planner was out of sight, it was easy for my day to stray.

Instead of reading something depressing (the news), I take a few moments to scroll through my tasks in SimpleTask in the morning. For anything that I know I want to get done that day, I add an “A” priority.

Adding a priority in Simpletask

Another SimpleTask widget you can add to the homepage of your phone – filtered for priority “A” tasks only – will confront you every time you look at your phone. There’s no escaping them.

Simpletask Priority Widget

On the desktop, my wallpaper automatically shows only my priority “A” tasks in the dead center in big, bold letters.

So whether I’m working on my laptop or computer, or I’m out running errands or visiting people, those MITs (most important tasks) are continually forcing themselves into my consciousness.

Here’s what my desktop looks like today (with our “New Capture” task from above.)

Priority Tasks on Desktop

If you want to create a wallpaper similar to your tasks, it only takes a little bash script.

#!/bin/bash

# A variable with the tasks with "A priority" (change the location of your tasklist)
MITS=$(cat /folder/tasklist | grep "(A)")


# This removes any context and the (A) to make the text look cleaner and more readable
MITS2=$(echo $MITS | sed -e 's/@[[:alnum:]]\+//g' -e 's/(A)/\n\n/g')

# Convert the text to an image
convert -size 1920x1080 xc:black -pointsize 48 -fill white -gravity center -annotate +25+40 "$MITS2" "/home/wallpaper.jpg"

It’s a simple script. From here, you need to do two things:

  1. Periodically run this script so that it’s always up-to-date (My system runs it every 10 minutes)
  2. Set “Wallpaper.jpg” as your desktop wallpaper – Feh can do this.

4. Projects

A project workflow that is too complicated won’t get used. So, although it seems like a good idea to have a project list that links to the tasks related to each project and a space for doing project planning, it takes too much work to maintain. It won’t make you more efficient or productive. It will have the opposite effect.

  • Don’t add project tags to tasks (you’ll know that “buy sheet music” is part of your “start learning piano” project)
  • Keep your project planning (and project resources) somewhere outside your task management system. A notebook is perfect for this.

By following these two rules, your system will stay streamlined and usable. Then all you need to do is:

Add an @Project tag to projects in your system.

If you want to browse your projects list you can filter by the @Project context – simple.

5. Calendared Items

The final part of the puzzle is scheduled tasks. If you make a dentist appointment for a few months in the future, adding it to your list of tasks is silly; it needs to go on a calendar.

Simpletask has a dedicated button to turn any task into a calendared event. And it will integrate with whatever calendar you like to use. There are a couple of benefits to this:

  1. You never need to open the calendar app. Everything goes through Simpletask.
  2. You can use the default calendar on your phone if you like or a FOSS alternative (or anything.)
Creating a calendar event in Simpletask
Simpletask showing the installed calendars

I use Simple Mobile Tool’s Calendar. However, it has recently been forked, so I’d recommend you take a look at Fossify.

Calendar Widget on Android

Go Build Your System

I hope these components of my task management system will spark some ideas that you can incorporate into your own productivity workflow. If you have any questions about it, feel free to reach out on X.