| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| example_todo.md | ||
| LICENSE | ||
| README.md | ||
☑️ todue
Keep track of TODOs and deadlines using an interactive markdown TUI.
Layout preview
This is roughly what the UI looks like in the terminal
[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/upJ/K: move focused entry down/up<space>: toggle focused entry completedq: save and quitQ: quit without savingg/G: move focus to top/bottoms: 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/<ctrl-z>: undo<ctrl-r>/<ctrl-y>: redoz: collapse/expand current groupyd: copy entry dateyt: copy entry textyy: copy entire entry0-9: as prefix for repeated commands
-
line editor with vim commands (prefixed with mode)
- normal:
<esc>: 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 toclandccrespectively) - normal:
v: visual mode - normal:
y/Y: copy - normal:
p/P: paste - normal:
u/<ctrl-z>: undo - normal:
<ctrl-r>/<ctrl-y>: redo - normal:
f/Fandt/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:
<esc>: exit line editor - insert:
<ctrl-w>/<ctrl-backspace>: delete last word - insert:
<ctrl-shift-v>/<shift-insert>: paste - visual:
a/i: select all/inside of...
- normal:
-
datetime editor
- highlight date part (YYYY for example)
d: remove entire deadline<enter>: go to next part0-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
setwith no key shows explicitly set keys (config and live)- config wizard & write current config state to config file