No description
| src | ||
| .gitignore | ||
| Cargo.lock | ||
| Cargo.toml | ||
| README.md | ||
wat
wat is a terminal UI wrapper around Watson that lets you browse and launch timers via a keyboard-driven interface.
Goals & Workflow
- Never type
watson start ...again—start/stop timers withEnter. - Maintain three panes simultaneously:
- Permanent Items – curated recurring tasks defined in
state.yaml. - Recurring Items – semi-regular tasks you hop between.
- Ad-Hoc Items – last ~20 one-offs, automatically tracked.
- Permanent Items – curated recurring tasks defined in
- Highlight clearly when a timer is running (bold green) vs idle (yellow).
- Keep everything human-editable: YAML state/config under
~/.config/wat.
Key Features
- Navigation:
j/kor arrows move within a pane;h/l, arrows, orCtrl+n/pswitch panes;qquits. - Timer control:
Entertoggles the selected item. Starting a different item automatically stops the previous timer. - New entries:
nlaunches a modal (task name + optional project tag). Item is added to the current pane. - Project reassignment:
popens a modal to change the project tag for the selected item. - Log viewing:
vopens Watson's log viewer with daily/weekly/monthly views. Used/w/mto switch periods,j/kto scroll. - Deletion:
dremoves the selected entry; no noisy status message. - Config editing:
Ctrl+eedits task config (state.yaml).cedits app config (config.yaml).
- Help overlays:
?for help,cinside help for config instructions.
Files & Persistence
~/.config/wat/
├─ state.yaml # serialized AppState (items, selections, active timer)
└─ config.yaml # UI/app options (help hints, allowed projects, etc.)
state.yamlandconfig.yamluseserde_yamlfor readability.
Building & Running
cargo build
cargo run
Requires watson on your PATH with a configured workspace.
Keybindings (Summary)
| Keys | Action |
|---|---|
j / k, arrows |
Move selection |
h / l, arrows, Ctrl+n / Ctrl+p |
Switch panes |
Enter |
Start/stop timer |
n |
New entry (task + optional project) |
p |
Reassign project for selected item |
v |
View Watson log (d/w/m for day/week/month) |
d |
Delete entry |
Ctrl+e |
Edit task config (state.yaml) |
c |
Edit app config (config.yaml) or show config help |
? |
Help screen |
q |
Quit |
TODO / Follow-ups
- Add inline editing of permanent/recurring items instead of dropping to
$EDITOR. - Consider status messaging for critical errors (currently unused after deleting the delete confirmation).
- Add tests/snapshots for UI components.