Dain-Bread Simple TODO list
pip install dbs-todo==0.6.1
dbs == dain-bread simple ======================== TODO list for minimalists # SPDX-License-Identifier: GPL-2.0-only # Copyright (c) 2022, Al Stone <ahs3@ahs3.net> A "task" consists of a file that looks something like this: Task: get something done State: open Project: stuff Priority: h Note: this is a note Note: this is another note (sans indenting, of course). Each key:value is exactly one line (everything up until the newline). There are a few limits: -- State is one of 'open', 'active', 'done' or 'deleted' [0] -- Priority is one of 'h', 'm', 'l' It's all pretty self-explanatory. I've tried to keep this as simple as possible, but Python wants things packaged properly, and I wanted to have both a CLI version (dbs) and an ncurses version (dbsui) using the same code for managing tasks. So, yeah, needed to create a module to package and distribute with. Installation is simple: clone the source tree, cd to the clone, then: $ make install Or: $ pip install dbs-todo That's it. Python3 is the only requirement. Most distros will have the right Python modules by default. I use this on Fedora and Debian, so your mileage may vary. To add a task like the one above: $ dbs add 0001 stuff h "get something done" That's it. It's automatically created as an open task. You can find all open tasks with: $ dbs lo ('lo' == 'list open' -- extra credit if you can figure out the command for 'list active' and 'list done'). If you do this: $ dbs You'll get a list of all current commands and any parameters they might need. There is a config file: it is always $HOME/.config/dbs/config. The only thing you can specify is this: repo: <some directory path> If it does not exist, it will be created. If the repo path does not exist, it will be created, also. In the repo, there is a directory for each task state containing one file for each task in that state. Task names must be unique across all states since we move the files around in the various repo directories [1]. With 0.6.0, I've added an ncurses-based UI. It's crude, probably buggy even. It can be invoked with: $ dbsui There is a 'help' command ('?'). The left panel lists the projects that have open tasks, and the right panel lists the tasks for the current project. This is still experimental code so caveat emptor. Notes: [0] Nothing ever gets actually deleted unless you remove the files. [1] In order to sync across machines, I create ~/Dropbox/dbs and use Dropbox to sync that directory across machines.