forked from Mirrors/bubbletea
Add support for ctrl+, ctrl+shift+ for home/end keys
This commit is contained in:
parent
5f76c2036d
commit
d9b2889cf4
46
key.go
46
key.go
|
@ -205,14 +205,20 @@ const (
|
||||||
KeyCtrlDown
|
KeyCtrlDown
|
||||||
KeyCtrlRight
|
KeyCtrlRight
|
||||||
KeyCtrlLeft
|
KeyCtrlLeft
|
||||||
|
KeyCtrlHome
|
||||||
|
KeyCtrlEnd
|
||||||
KeyShiftUp
|
KeyShiftUp
|
||||||
KeyShiftDown
|
KeyShiftDown
|
||||||
KeyShiftRight
|
KeyShiftRight
|
||||||
KeyShiftLeft
|
KeyShiftLeft
|
||||||
|
KeyShiftHome
|
||||||
|
KeyShiftEnd
|
||||||
KeyCtrlShiftUp
|
KeyCtrlShiftUp
|
||||||
KeyCtrlShiftDown
|
KeyCtrlShiftDown
|
||||||
KeyCtrlShiftLeft
|
KeyCtrlShiftLeft
|
||||||
KeyCtrlShiftRight
|
KeyCtrlShiftRight
|
||||||
|
KeyCtrlShiftHome
|
||||||
|
KeyCtrlShiftEnd
|
||||||
KeyF1
|
KeyF1
|
||||||
KeyF2
|
KeyF2
|
||||||
KeyF3
|
KeyF3
|
||||||
|
@ -282,6 +288,12 @@ var keyNames = map[KeyType]string{
|
||||||
KeyShiftTab: "shift+tab",
|
KeyShiftTab: "shift+tab",
|
||||||
KeyHome: "home",
|
KeyHome: "home",
|
||||||
KeyEnd: "end",
|
KeyEnd: "end",
|
||||||
|
KeyCtrlHome: "ctrl+home",
|
||||||
|
KeyCtrlEnd: "ctrl+end",
|
||||||
|
KeyShiftHome: "shift+home",
|
||||||
|
KeyShiftEnd: "shift+end",
|
||||||
|
KeyCtrlShiftHome: "ctrl+shift+home",
|
||||||
|
KeyCtrlShiftEnd: "ctrl+shift+end",
|
||||||
KeyPgUp: "pgup",
|
KeyPgUp: "pgup",
|
||||||
KeyPgDown: "pgdown",
|
KeyPgDown: "pgdown",
|
||||||
KeyDelete: "delete",
|
KeyDelete: "delete",
|
||||||
|
@ -392,16 +404,42 @@ var sequences = map[string]Key{
|
||||||
"\x1b\x1b[6~": {Type: KeyPgDown, Alt: true}, // urxvt
|
"\x1b\x1b[6~": {Type: KeyPgDown, Alt: true}, // urxvt
|
||||||
|
|
||||||
"\x1b[1~": {Type: KeyHome},
|
"\x1b[1~": {Type: KeyHome},
|
||||||
"\x1b[H": {Type: KeyHome}, // vt100
|
"\x1b[H": {Type: KeyHome}, // xterm, lxterm
|
||||||
"\x1b[1;3H": {Type: KeyHome, Alt: true}, // vt100
|
"\x1b[1;3H": {Type: KeyHome, Alt: true}, // xterm, lxterm
|
||||||
|
"\x1b[1;5H": {Type: KeyCtrlHome}, // xterm, lxterm
|
||||||
|
"\x1b[1;7H": {Type: KeyCtrlHome, Alt: true}, // xterm, lxterm
|
||||||
|
"\x1b[1;2H": {Type: KeyShiftHome}, // xterm, lxterm
|
||||||
|
"\x1b[1;4H": {Type: KeyShiftHome, Alt: true}, // xterm, lxterm
|
||||||
|
"\x1b[1;6H": {Type: KeyCtrlShiftHome}, // xterm, lxterm
|
||||||
|
"\x1b[1;8H": {Type: KeyCtrlShiftHome, Alt: true}, // xterm, lxterm
|
||||||
|
|
||||||
"\x1b[4~": {Type: KeyEnd},
|
"\x1b[4~": {Type: KeyEnd},
|
||||||
"\x1b[F": {Type: KeyEnd}, // vt100
|
"\x1b[F": {Type: KeyEnd}, // xterm, lxterm
|
||||||
"\x1b[1;3F": {Type: KeyEnd, Alt: true}, // vt100
|
"\x1b[1;3F": {Type: KeyEnd, Alt: true}, // xterm, lxterm
|
||||||
|
"\x1b[1;5F": {Type: KeyCtrlEnd}, // xterm, lxterm
|
||||||
|
"\x1b[1;7F": {Type: KeyCtrlEnd, Alt: true}, // xterm, lxterm
|
||||||
|
"\x1b[1;2F": {Type: KeyShiftEnd}, // xterm, lxterm
|
||||||
|
"\x1b[1;4F": {Type: KeyShiftEnd, Alt: true}, // xterm, lxterm
|
||||||
|
"\x1b[1;6F": {Type: KeyCtrlShiftEnd}, // xterm, lxterm
|
||||||
|
"\x1b[1;8F": {Type: KeyCtrlShiftEnd, Alt: true}, // xterm, lxterm
|
||||||
|
|
||||||
"\x1b[7~": {Type: KeyHome}, // urxvt
|
"\x1b[7~": {Type: KeyHome}, // urxvt
|
||||||
"\x1b\x1b[7~": {Type: KeyHome, Alt: true}, // urxvt
|
"\x1b\x1b[7~": {Type: KeyHome, Alt: true}, // urxvt
|
||||||
|
"\x1b[7^": {Type: KeyCtrlHome}, // urxvt
|
||||||
|
"\x1b\x1b[7^": {Type: KeyCtrlHome, Alt: true}, // urxvt
|
||||||
|
"\x1b[7$": {Type: KeyShiftHome}, // urxvt
|
||||||
|
"\x1b\x1b[7$": {Type: KeyShiftHome, Alt: true}, // urxvt
|
||||||
|
"\x1b[7@": {Type: KeyCtrlShiftHome}, // urxvt
|
||||||
|
"\x1b\x1b[7@": {Type: KeyCtrlShiftHome, Alt: true}, // urxvt
|
||||||
|
|
||||||
"\x1b[8~": {Type: KeyEnd}, // urxvt
|
"\x1b[8~": {Type: KeyEnd}, // urxvt
|
||||||
"\x1b\x1b[8~": {Type: KeyEnd, Alt: true}, // urxvt
|
"\x1b\x1b[8~": {Type: KeyEnd, Alt: true}, // urxvt
|
||||||
|
"\x1b[8^": {Type: KeyCtrlEnd}, // urxvt
|
||||||
|
"\x1b\x1b[8^": {Type: KeyCtrlEnd, Alt: true}, // urxvt
|
||||||
|
"\x1b[8$": {Type: KeyShiftEnd}, // urxvt
|
||||||
|
"\x1b\x1b[8$": {Type: KeyShiftEnd, Alt: true}, // urxvt
|
||||||
|
"\x1b[8@": {Type: KeyCtrlShiftEnd}, // urxvt
|
||||||
|
"\x1b\x1b[8@": {Type: KeyCtrlShiftEnd, Alt: true}, // urxvt
|
||||||
|
|
||||||
// Function keys, Linux console
|
// Function keys, Linux console
|
||||||
"\x1b[[A": {Type: KeyF1}, // linux console
|
"\x1b[[A": {Type: KeyF1}, // linux console
|
||||||
|
|
Loading…
Reference in New Issue