diff --git a/README.md b/README.md index bb05669..3032bd6 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,89 @@ Keep track of TODOs and deadlines using an interactive markdown TUI. This is roughly what the UI looks like in the terminal ```md - Chores -- [x] Get groceries (2024-06-20; 16:00) -- [ ] Do the dishes (2024-06-20; 20:00) -- [ ] Take out the trash (2024-06-20; 21:00) + [todue] Chores + [x] (2024-06-20 16:00) Get groceries + [ ] (2024-06-20 20:00) Do the dishes + [ ] (2024-06-20 21:00) Take out the trash ``` +### Control scheme + +The control scheme is vim-like and features a minimal line editor as well as datetime-input. + +- `j`/`k`: move focus down/up +- `J`/`K`: move focused entry down/up +- ``: toggle focused entry completed +- `q`: save and quit +- `Q`: quit without saving +- `g`/`G`: move focus to top/bottom +- `s`: cycle sort mode. + + +### TODO + +Things that might be implemented in the future + +- more controls + - `a`/`A`: append to entry text (enters line editor) + - `c`/`C`: change entry text (enters line editor) + - `i`/`I`: insert before entry text (enters line editor) + - `o`/`O`: edit new entry (after/before current - enters line then datetime editor) + - `r`: replace entry + - `/`/`?`: search entry by text (backwards) (wrapping) + - later on regex search + - `u`/``: undo + - ``/``: redo + - `z`: collapse/expand current group + - `yd`: copy entry date + - `yt`: copy entry text + - `yy`: copy entire entry + - `0`-`9`: as prefix for repeated commands + +- line editor with vim commands (prefixed with mode) + - normal: ``: exit line editor + - normal: `a`/`A`: append (to end) + - normal: `i`/`I`: insert (at beginning) + - normal: `d`: delete + - normal: `x`: remove character + - normal: `c`/`C`: change + - normal: `r`/`R`: replace + - normal: `s`/`S`: substitute (equal to `cl` and `cc` respectively) + - normal: `v`: visual mode + - normal: `y`/`Y`: copy + - normal: `p`/`P`: paste + - normal: `u`/``: undo + - normal: ``/``: redo + - normal: `f`/`F` and `t`/`T`: find (until) (backwards) + - normal: `/`/`?`: search (backwards) (wrapping to beginning of line) + - later on regex search + - insert: `w`,`b`,`e`: like vim, including uppercase equivalent + - insert: ``: exit line editor + - insert: ``/``: delete last word + - insert: ``/``: paste + - visual: `a`/`i`: select all/inside of... + +- datetime editor + - highlight date part (YYYY for example) + - `d`: remove entire deadline + - ``: go to next part + - `0`-`9`: input number (ignoring invalid inputs like months >12) + +- sort mode: cycle through modes and set ascending/descending separately + - `r`: insert before entry text (enters line editor) + +- collapsable todo group hierarchy + - detect indent width from md + - group entries together under previous entry with lower indent level + - display expandable groups in tui + +- config + - keybinds + - some other options (?) + +- some `:`-commands? + - regex substitution + - set commands for config entries + - help command that shows controls + - `set` with no key shows explicitly set keys (config and live) + - config wizard & write current config state to config file