A simple and easy-to-use todo TUI


Keywords
curses, pip, python, task-manager, terminal, todo, todo-app, todolist, tui
License
MIT
Install
pip install todoism==1.3

Documentation

todoism

A simple and easy-to-use todo TUI

Demo

UI

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:                        β”‚            
β”‚   (:<command> [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 and how-to to get started.