keys.go

 1package splash
 2
 3import (
 4	"charm.land/bubbles/v2/key"
 5)
 6
 7type KeyMap struct {
 8	Select,
 9	Next,
10	Previous,
11	Yes,
12	No,
13	Tab,
14	LeftRight,
15	Back,
16	Copy key.Binding
17}
18
19func DefaultKeyMap() KeyMap {
20	return KeyMap{
21		Select: key.NewBinding(
22			key.WithKeys("enter", "ctrl+y"),
23			key.WithHelp("enter", "confirm"),
24		),
25		Next: key.NewBinding(
26			key.WithKeys("down", "ctrl+n"),
27			key.WithHelp("↓", "next item"),
28		),
29		Previous: key.NewBinding(
30			key.WithKeys("up", "ctrl+p"),
31			key.WithHelp("↑", "previous item"),
32		),
33		Yes: key.NewBinding(
34			key.WithKeys("y", "Y"),
35			key.WithHelp("y", "yes"),
36		),
37		No: key.NewBinding(
38			key.WithKeys("n", "N"),
39			key.WithHelp("n", "no"),
40		),
41		Tab: key.NewBinding(
42			key.WithKeys("tab"),
43			key.WithHelp("tab", "switch"),
44		),
45		LeftRight: key.NewBinding(
46			key.WithKeys("left", "right"),
47			key.WithHelp("←/→", "switch"),
48		),
49		Back: key.NewBinding(
50			key.WithKeys("esc", "alt+esc"),
51			key.WithHelp("esc", "back"),
52		),
53		Copy: key.NewBinding(
54			key.WithKeys("c"),
55			key.WithHelp("c", "copy url"),
56		),
57	}
58}