1package chat
2
3import (
4 "charm.land/bubbles/v2/key"
5)
6
7type KeyMap struct {
8 NewSession key.Binding
9 AddAttachment key.Binding
10 Cancel key.Binding
11 Tab key.Binding
12 Details key.Binding
13 TogglePills key.Binding
14 PillLeft key.Binding
15 PillRight key.Binding
16}
17
18func DefaultKeyMap() KeyMap {
19 return KeyMap{
20 NewSession: key.NewBinding(
21 key.WithKeys("ctrl+n"),
22 key.WithHelp("ctrl+n", "new session"),
23 ),
24 AddAttachment: key.NewBinding(
25 key.WithKeys("ctrl+f"),
26 key.WithHelp("ctrl+f", "add attachment"),
27 ),
28 Cancel: key.NewBinding(
29 key.WithKeys("esc", "alt+esc"),
30 key.WithHelp("esc", "cancel"),
31 ),
32 Tab: key.NewBinding(
33 key.WithKeys("tab"),
34 key.WithHelp("tab", "change focus"),
35 ),
36 Details: key.NewBinding(
37 key.WithKeys("ctrl+d"),
38 key.WithHelp("ctrl+d", "toggle details"),
39 ),
40 TogglePills: key.NewBinding(
41 key.WithKeys("ctrl+space"),
42 key.WithHelp("ctrl+space", "toggle tasks"),
43 ),
44 PillLeft: key.NewBinding(
45 key.WithKeys("left"),
46 key.WithHelp("←/→", "switch section"),
47 ),
48 PillRight: key.NewBinding(
49 key.WithKeys("right"),
50 key.WithHelp("←/→", "switch section"),
51 ),
52 }
53}