Open Tasks
A todo board that keeps unfinished work in front of you. Tasks you never finished
stay on the board instead of scrolling out of sight.
This is the editor companion to the Open Tasks desktop app, and it
follows the same rules for what counts as due, late, or still open.
The board
Tasks land in one of four sections in the sidebar:
| Section |
What it shows |
| Today |
Due today, or added today with no leftover date |
| Still open |
Unfinished tasks from previous days |
| Upcoming |
Due later than today |
| Done today |
Finished today, so you can undo it |
The status bar shows how many tasks are waiting and turns amber when something is
overdue. The activity bar icon carries the same count as a badge.
Use
- Add: the
+ button on the view, or Open Tasks: Add Task. Put #tag
anywhere in the text (pay rent #money) and it becomes a label.
- Finish: tick the checkbox. The task moves to Done today.
- Undo: untick it in Done today and it returns to the board.
- Edit: click a task to open a menu for its title, due date, tags, priority,
and notes.
- Priority: the star on a row. High-priority tasks sort to the top of their section.
- Push to tomorrow: the arrow on a row, for the things you are not doing today.
- Delete: permanent, and it asks first. Prefer ticking tasks off.
- Filter: the funnel icon filters by word or tag. Clear it from the same spot.
Settings
| Setting |
Default |
What it does |
opentasks.statusBar.enabled |
true |
Show the waiting count in the status bar |
opentasks.confirmDelete |
true |
Ask before deleting a task |
opentasks.showDoneToday |
true |
Keep today's finished tasks on the board |
opentasks.defaultDueToday |
true |
Give new tasks today's date |
Where tasks are kept
In a single JSON file in the extension's global storage, so there are no runtime
dependencies and nothing to install or compile. Export Tasks to JSON and
Import Tasks from JSON move them between machines. Import also accepts the
desktop app's column names (due_date, created_at, tags as a comma-separated
string), so a dump of its SQLite table loads directly.
Development
npm install
npm run compile
npm test
npm test includes a parity suite. extension/test-fixtures/parity.json is
generated from the desktop app's opentasks/db.py by npm run parity, and the
tests assert the TypeScript port produces identical grouping, tag parsing,
ordering, and counts. If the Python rules change, regenerate the fixture and the
tests will point at whatever drifted.
Press F5 to launch an editor window with the extension loaded.
Not included
The desktop app shows its board when you log in, unlock, or wake the machine.
Editors have no equivalent signal, so the closest this gets is refreshing when the
window regains focus. If you want the board to greet you when you sit down at the
computer, run the desktop app.
License
GPL-3.0-or-later