diff options
| author | Paul Buetow <paul@buetow.org> | 2026-03-10 07:44:21 +0200 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-03-10 07:44:21 +0200 |
| commit | 2cb21567bf6bfb68d5b27bce6f9d59a5297abaf0 (patch) | |
| tree | 166a7007f751c5d172a64fc8a9872c61299bd3cb | |
| parent | 34f286d38d1329e8f904bbb63c4cfea2f7fe7642 (diff) | |
tui: simplify default key map construction (task 425)
| -rw-r--r-- | internal/tui/common/keys.go | 52 |
1 files changed, 28 insertions, 24 deletions
diff --git a/internal/tui/common/keys.go b/internal/tui/common/keys.go index 2e54a6d..bdfa5e2 100644 --- a/internal/tui/common/keys.go +++ b/internal/tui/common/keys.go @@ -39,33 +39,37 @@ type KeyMap struct { // Keys contains the default shared key map. var Keys = DefaultKeyMap() +func keyBinding(desc string, keys ...string) key.Binding { + return key.NewBinding(key.WithKeys(keys...), key.WithHelp(keys[0], desc)) +} + // DefaultKeyMap builds the default key bindings used by models. func DefaultKeyMap() KeyMap { return KeyMap{ - Tab: key.NewBinding(key.WithKeys("tab"), key.WithHelp("tab", "next tab")), - ShiftTab: key.NewBinding(key.WithKeys("shift+tab"), key.WithHelp("shift+tab", "prev tab")), - One: key.NewBinding(key.WithKeys("1"), key.WithHelp("1", "flame")), - Two: key.NewBinding(key.WithKeys("2"), key.WithHelp("2", "overview")), - Three: key.NewBinding(key.WithKeys("3"), key.WithHelp("3", "syscalls")), - Four: key.NewBinding(key.WithKeys("4"), key.WithHelp("4", "files")), - Five: key.NewBinding(key.WithKeys("5"), key.WithHelp("5", "processes")), - Six: key.NewBinding(key.WithKeys("6"), key.WithHelp("6", "lat+gaps")), - Seven: key.NewBinding(key.WithKeys("7"), key.WithHelp("7", "stream")), - Visualize: key.NewBinding(key.WithKeys("v"), key.WithHelp("v", "viz")), - Metric: key.NewBinding(key.WithKeys("b"), key.WithHelp("b", "metric")), - Sort: key.NewBinding(key.WithKeys("s"), key.WithHelp("s", "sort table")), - ReverseSort: key.NewBinding(key.WithKeys("S"), key.WithHelp("S", "reverse sort")), - DirGroup: key.NewBinding(key.WithKeys("d"), key.WithHelp("d", "dir group")), - SelectPID: key.NewBinding(key.WithKeys("p"), key.WithHelp("p", "select pid")), - SelectTID: key.NewBinding(key.WithKeys("t"), key.WithHelp("t", "select tid")), - Probes: key.NewBinding(key.WithKeys("o"), key.WithHelp("o", "probes")), - Filter: key.NewBinding(key.WithKeys("f"), key.WithHelp("f", "filter")), - FilterUndo: key.NewBinding(key.WithKeys("F"), key.WithHelp("F", "undo filter")), - Export: key.NewBinding(key.WithKeys("e"), key.WithHelp("e", "stream export")), - Quit: key.NewBinding(key.WithKeys("q", "ctrl+c"), key.WithHelp("q", "quit")), - Enter: key.NewBinding(key.WithKeys("enter"), key.WithHelp("enter", "select")), - Esc: key.NewBinding(key.WithKeys("esc"), key.WithHelp("esc", "back")), - Refresh: key.NewBinding(key.WithKeys("r"), key.WithHelp("r", "reset baseline")), + Tab: keyBinding("next tab", "tab"), + ShiftTab: keyBinding("prev tab", "shift+tab"), + One: keyBinding("flame", "1"), + Two: keyBinding("overview", "2"), + Three: keyBinding("syscalls", "3"), + Four: keyBinding("files", "4"), + Five: keyBinding("processes", "5"), + Six: keyBinding("lat+gaps", "6"), + Seven: keyBinding("stream", "7"), + Visualize: keyBinding("viz", "v"), + Metric: keyBinding("metric", "b"), + Sort: keyBinding("sort table", "s"), + ReverseSort: keyBinding("reverse sort", "S"), + DirGroup: keyBinding("dir group", "d"), + SelectPID: keyBinding("select pid", "p"), + SelectTID: keyBinding("select tid", "t"), + Probes: keyBinding("probes", "o"), + Filter: keyBinding("filter", "f"), + FilterUndo: keyBinding("undo filter", "F"), + Export: keyBinding("stream export", "e"), + Quit: keyBinding("quit", "q", "ctrl+c"), + Enter: keyBinding("select", "enter"), + Esc: keyBinding("back", "esc"), + Refresh: keyBinding("reset baseline", "r"), } } |
