Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/q1chenl/todoism

A simple and easy-to-use todo TUI
https://github.com/q1chenl/todoism

curses pip python task-manager terminal todo todo-app todolist tui

Last synced: 2 months ago
JSON representation

A simple and easy-to-use todo TUI

Awesome Lists containing this project

README

        

# todoism

A simple and easy-to-use todo TUI

## Demo

![UI](./assets/demo.gif)

## Install and use

- Install: `pip install todoism`
- Run: `todoism` or `todo`
- Update: `pip install todoism --upgrade`

```
┌──────────────────────────────────────────────────┐
│ │
│ short commands: │
│ a - create new task │
│ d - mark task as done │
│ e - edit task │
│ f - mark task as flagged │
│ q - quit this help message/todoism │
│ │
│ vim-like long commands: │
│ (: [args]) │
│ :help - show this help message │
│ :purge - purge all done tasks │
│ :sort f - sort flagged tasks to top │
│ :sort d - sort done tasks to bottom │
│ :autosort f on|off │
│ :autosort d on|off │
│ :setcolor blue|red|yellow|green │
│ - change background color of current task │
│ :del [task_id] - delete task │
│ :edit [task_id] - edit task │
│ :done [task_id] - mark task as done │
│ │
│ other key bindings: │
│ double Backspace - delete task │
│ ESC - quit adding/editing task │
│ Enter - finish adding/editing task │
│ Up/Down Arrow Keys - navigate through tasks │
│ │
└──────────────────────────────────────────────────┘
```

## ToDos

- **sidebar: categories**
- ~~apply post_deletion_update to command del~~
- update time regularly: seperate thread or
- ~~commandline interface for e.g adding tasks~~
- ~~command: done xx~~
- ~~set color random~~
- ~~command flag~~
- fix too long task causing error
- prevent view blinking when scroll fast
- reset key names of settings etc
- maybe restore prev current id and row at command edit as well
- properly display completed tasks
- maybe make autosort flag and done default
- grey background when adding new task using 'a'
- make status bar prettier: wrap it as a block
- ~~done/flag x,y,z~~
- stroke-through effect
- add chinese language support
- Caps commands
- make no-task message more helpful
- ~~purge all~~
- command autosort
- emulate the popup menu when right click on task
- esc to quit exit() too slow
- command: date ymd, dmy
- invalid command
- custom theme
- wrap a setup func for e.g paths
- add mouse support
- command print overwriting
- can not fully display help when window too small
- ctl + shift to select multiple tasks to delete/done
- ~~handle window size change~~
- group different kinds of tasks
- use repaint
- simplify print args
- history total done count in maybe settings
- ~~max task count: 99 and message for it~~
- ~~message when task count == 1~~
- delete printing status bar except for time update
- ~~dynamic indent based on window size~~
- sound

## Contribute

Issues and PRs are welcome! todoism uses curses library as its main tech stack. Please refer to the library [docs](https://docs.python.org/3/library/curses.html#module-curses) and [how-to](https://docs.python.org/3/howto/curses.html) to get started.