c2ea63dd16
Status bar with entity count and context-sensitive key hints. Help overlay via ? key. Tag filter via # with cursor-navigable tag list. Todo toggle (x), pin (!), promote (p), demote (D), copy (c), edit (e) via $EDITOR. Delete confirmation with 3s timeout. Date-grouped list with completed todo and pinned indicators. Esc clears active tag filter. Adds CompletedAt/ClearCompleted to EntityUpdate for todo toggling.
48 lines
2.0 KiB
Go
48 lines
2.0 KiB
Go
package tui
|
|
|
|
import "github.com/charmbracelet/bubbles/key"
|
|
|
|
type keyMap struct {
|
|
Up key.Binding
|
|
Down key.Binding
|
|
Enter key.Binding
|
|
Back key.Binding
|
|
Add key.Binding
|
|
Delete key.Binding
|
|
Quit key.Binding
|
|
Help key.Binding
|
|
PageUp key.Binding
|
|
PageDn key.Binding
|
|
Top key.Binding
|
|
Bottom key.Binding
|
|
Todo key.Binding
|
|
Pin key.Binding
|
|
Filter key.Binding
|
|
Promote key.Binding
|
|
Demote key.Binding
|
|
Copy key.Binding
|
|
Edit key.Binding
|
|
}
|
|
|
|
var keys = keyMap{
|
|
Up: key.NewBinding(key.WithKeys("up", "k"), key.WithHelp("↑/k", "up")),
|
|
Down: key.NewBinding(key.WithKeys("down", "j"), key.WithHelp("↓/j", "down")),
|
|
Enter: key.NewBinding(key.WithKeys("enter"), key.WithHelp("enter", "view")),
|
|
Back: key.NewBinding(key.WithKeys("esc"), key.WithHelp("esc", "back")),
|
|
Add: key.NewBinding(key.WithKeys("a"), key.WithHelp("a", "add")),
|
|
Delete: key.NewBinding(key.WithKeys("d"), key.WithHelp("d", "delete")),
|
|
Quit: key.NewBinding(key.WithKeys("q", "ctrl+c"), key.WithHelp("q", "quit")),
|
|
Help: key.NewBinding(key.WithKeys("?"), key.WithHelp("?", "help")),
|
|
PageUp: key.NewBinding(key.WithKeys("pgup", "ctrl+u"), key.WithHelp("pgup", "page up")),
|
|
PageDn: key.NewBinding(key.WithKeys("pgdown", "ctrl+d"), key.WithHelp("pgdn", "page down")),
|
|
Top: key.NewBinding(key.WithKeys("home", "g"), key.WithHelp("home", "top")),
|
|
Bottom: key.NewBinding(key.WithKeys("end", "G"), key.WithHelp("end", "bottom")),
|
|
Todo: key.NewBinding(key.WithKeys("x"), key.WithHelp("x", "toggle todo")),
|
|
Pin: key.NewBinding(key.WithKeys("!"), key.WithHelp("!", "toggle pin")),
|
|
Filter: key.NewBinding(key.WithKeys("#"), key.WithHelp("#", "filter tag")),
|
|
Promote: key.NewBinding(key.WithKeys("p"), key.WithHelp("p", "promote")),
|
|
Demote: key.NewBinding(key.WithKeys("D"), key.WithHelp("D", "demote")),
|
|
Copy: key.NewBinding(key.WithKeys("c"), key.WithHelp("c", "copy")),
|
|
Edit: key.NewBinding(key.WithKeys("e"), key.WithHelp("e", "edit")),
|
|
}
|