| .gitignore | ||
| .python-version | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
| topen.py | ||
| uv.lock | ||
Topen - simple taskwarrior note editing
A script without bells and whistles. Focuses on letting you quickly:
- create notes for taskwarrior tasks
- edit notes for taskwarrior tasks
Does both by simply being invoked with topen <task-id>.
Automatically appends a small 'Note' annotation to your task so you know you already have notes for it.
Should just work as-is without additional configuration in most modern taskwarrior setups.1
Can be configured through environment variables or cli options, see below.
Can be used as-is with the topen command or directly from taskwarrior by being aliased in your taskrc:
alias.note=exec topen
And you can open any note with your usual taskwarrior workflow,
by doing task note <id>.
That's all there is to it.
Installation
You can install the script with your favorite python environment manager:
uv tool install git+https://git.martyoeh.me/Marty/topen.git
pipx install git+https://git.martyoeh.me/Marty/topen.git
pip install git+https://git.martyoeh.me/Marty/topen.git
Or just manually copy the topen file to a directory in your PATH.
If you just want to try the script out,
feel free to do so by invoking it e.g. with uvx git+https://git.martyoeh.me/Marty/topen.git.
Only has tasklib as a dependency.
Configuration
TASK_RC = os.getenv("TASKRC", "~/.config/task/taskrc") # not implemented yet
TASK_DATA_DIR = os.getenv("TASKDATA", "~/.local/share/task")
TOPEN_DIR = os.getenv("TOPEN_DIR", "~/.local/share/task/notes")
TOPEN_EXT = os.getenv("TOPEN_EXT", "md")
TOPEN_ANNOT = os.getenv("TOPEN_ANNOT", "Note")
TOPEN_EDITOR = os.getenv("EDITOR") or os.getenv("VISUAL", "nano")
TOPEN_QUIET = os.getenv("TOPEN_QUIET", False)
These are all environment variables offered, needs improved documentation.
Ultimately the goal would probably be to support reading from a taskwarrior 'taskrc' file, which can then be optionally overwritten with env variables, which can then be optionally overwritten with cli options.
This is not fully implemented -- we support the above environment variables and cli options, that's it.
-
The script assumes your taskwarrior setup follows the XDG base directory suggestions. That means, taskrc in
$XDG_CONFIG_HOME/task/taskrc, usually~/.config/task/taskrc. Furthermore, at the moment it assumes the taskwarrior data residing in the$XDG_DATA_HOME/taskdirectory. This will diverge from many taskwarrior setups still and can be set through the cli option--task-data. The idea is for futuretopenversions to recognize the task data directory from the taskrc file itself but this has not been implemented. ↩︎