package viewport import "github.com/charmbracelet/bubbles/key" const spacebar = " " // KeyMap defines the keybindings for the viewport. Note that you don't // necessary need to use keybindings at all; the viewport can be controlled // programmatically with methods like Model.LineDown(1). See the GoDocs for // details. type KeyMap struct { PageDown key.Binding PageUp key.Binding HalfPageUp key.Binding HalfPageDown key.Binding Down key.Binding Up key.Binding } // DefaultKeyMap returns a set of pager-like default keybindings. func DefaultKeyMap() KeyMap { return KeyMap{ PageDown: key.NewBinding( key.WithKeys("pgdown", spacebar, "f"), ), PageUp: key.NewBinding( key.WithKeys("pgup", "b"), ), HalfPageUp: key.NewBinding( key.WithKeys("u", "ctrl+u"), ), HalfPageDown: key.NewBinding( key.WithKeys("d", "ctrl+d"), ), Up: key.NewBinding( key.WithKeys("up", "k"), ), Down: key.NewBinding( key.WithKeys("down", "j"), ), } }