diff --git a/internal/tui/components/core/list/keys.go b/internal/tui/components/core/list/keys.go index 3da14602ed2334f21e2af2e01574ccbcad0df8d5..65f379fd2ba4cebaeee756f2ddab5c9f6b8dcafe 100644 --- a/internal/tui/components/core/list/keys.go +++ b/internal/tui/components/core/list/keys.go @@ -5,49 +5,59 @@ import ( ) type KeyMap struct { - Down, Up, - DownOneItem, + Down, UpOneItem, - HalfPageDown, + DownOneItem, + PageUp, + PageDown, HalfPageUp, + HalfPageDown, Home, End key.Binding } func DefaultKeyMap() KeyMap { return KeyMap{ - Down: key.NewBinding( - key.WithKeys("down", "ctrl+j", "ctrl+n", "j"), - key.WithHelp("↓", "down"), + PageDown: key.NewBinding( + key.WithKeys("pgdown", "f"), + key.WithHelp("f/pgdn", "page down"), + ), + PageUp: key.NewBinding( + key.WithKeys("pgup", "b"), + key.WithHelp("b/pgup", "page up"), + ), + HalfPageUp: key.NewBinding( + key.WithKeys("u"), + key.WithHelp("u", "½ page up"), + ), + HalfPageDown: key.NewBinding( + key.WithKeys("d"), + key.WithHelp("d", "½ page down"), ), Up: key.NewBinding( - key.WithKeys("up", "ctrl+k", "ctrl+p", "k"), - key.WithHelp("↑", "up"), + key.WithKeys("up", "k"), + key.WithHelp("↑/k", "up"), + ), + Down: key.NewBinding( + key.WithKeys("down", "j"), + key.WithHelp("↓/j", "down"), ), UpOneItem: key.NewBinding( - key.WithKeys("shift+up", "K"), + key.WithKeys("shift+up"), key.WithHelp("shift+↑", "up one item"), ), DownOneItem: key.NewBinding( - key.WithKeys("shift+down", "J"), + key.WithKeys("shift+down"), key.WithHelp("shift+↓", "down one item"), ), - HalfPageDown: key.NewBinding( - key.WithKeys("d"), - key.WithHelp("d", "half page down"), - ), - HalfPageUp: key.NewBinding( - key.WithKeys("u"), - key.WithHelp("u", "half page up"), - ), Home: key.NewBinding( key.WithKeys("g", "home"), - key.WithHelp("g", "home"), + key.WithHelp("g/home", "top"), ), End: key.NewBinding( key.WithKeys("G", "end"), - key.WithHelp("G", "end"), + key.WithHelp("G/end", "end"), ), } } @@ -59,6 +69,8 @@ func (k KeyMap) KeyBindings() []key.Binding { k.Up, k.DownOneItem, k.UpOneItem, + k.PageDown, + k.PageUp, k.HalfPageDown, k.HalfPageUp, k.Home, diff --git a/internal/tui/components/core/list/list.go b/internal/tui/components/core/list/list.go index cb74287aacbb54baebbe26656b0f7f4eff62beb4..ca7a0ebbac20076f662f318314355acca7f8173a 100644 --- a/internal/tui/components/core/list/list.go +++ b/internal/tui/components/core/list/list.go @@ -330,6 +330,10 @@ func (m *model) handleKeyPress(msg tea.KeyPressMsg) (tea.Model, tea.Cmd) { m.scrollDown(m.listHeight() / 2) case key.Matches(msg, m.keyMap.HalfPageUp): m.scrollUp(m.listHeight() / 2) + case key.Matches(msg, m.keyMap.PageDown): + m.scrollDown(m.listHeight()) + case key.Matches(msg, m.keyMap.PageUp): + m.scrollUp(m.listHeight()) case key.Matches(msg, m.keyMap.Home): return m, m.goToTop() case key.Matches(msg, m.keyMap.End): diff --git a/internal/tui/components/dialogs/quit/keys.go b/internal/tui/components/dialogs/quit/keys.go index 3268749b20c703ae1faf7640e253ce557f051c65..53709515f6245c5c47567b35a1de898635ab395e 100644 --- a/internal/tui/components/dialogs/quit/keys.go +++ b/internal/tui/components/dialogs/quit/keys.go @@ -14,27 +14,29 @@ type KeyMap struct { Close key.Binding } -func DefaultKeymap() KeyMap { +func DefaultKeyMap() KeyMap { return KeyMap{ LeftRight: key.NewBinding( - key.WithKeys("left", "right"), - key.WithHelp("←/→", "switch options"), + key.WithKeys("h", "l", "left", "right"), + key.WithHelp("←/→", "toggle"), ), EnterSpace: key.NewBinding( - key.WithKeys("enter", " "), - key.WithHelp("enter/space", "confirm"), + key.WithKeys("enter"), + key.WithHelp("enter", "confirm"), ), Yes: key.NewBinding( key.WithKeys("y", "Y", "ctrl+c"), - key.WithHelp("y/Y/ctrl+c", "yes"), + key.WithHelp("y", "Yes"), ), No: key.NewBinding( key.WithKeys("n", "N"), - key.WithHelp("n/N", "no"), + key.WithHelp("n", "No"), ), + // TODO I think we can remove this. We don't have tab to toggle in Huh's + // confirm dialogue. Tab: key.NewBinding( key.WithKeys("tab"), - key.WithHelp("tab", "switch options"), + key.WithHelp("tab", "toggle"), ), Close: key.NewBinding( key.WithKeys("esc"), diff --git a/internal/tui/components/dialogs/quit/quit.go b/internal/tui/components/dialogs/quit/quit.go index 190303b71eaf31984d0c0c164cb1ae39cc8fa9fe..7adc759398729c429aace697e6b48a643e1e5e9d 100644 --- a/internal/tui/components/dialogs/quit/quit.go +++ b/internal/tui/components/dialogs/quit/quit.go @@ -31,7 +31,7 @@ type quitDialogCmp struct { func NewQuitDialog() QuitDialog { return &quitDialogCmp{ selectedNo: true, // Default to "No" for safety - keymap: DefaultKeymap(), + keymap: DefaultKeyMap(), } }