diff --git a/terminfo/a/alacritty/term.go b/terminfo/a/alacritty/term.go index e65a8833..09d56e14 100644 --- a/terminfo/a/alacritty/term.go +++ b/terminfo/a/alacritty/term.go @@ -8,149 +8,151 @@ func init() { // alacritty terminal emulator terminfo.AddTerminfo(&terminfo.Terminfo{ - Name: "alacritty", - Columns: 80, - Lines: 24, - Colors: 256, - Bell: "\a", - Clear: "\x1b[H\x1b[2J", - EnterCA: "\x1b[?1049h\x1b[22;0;0t", - ExitCA: "\x1b[?1049l\x1b[23;0;0t", - ShowCursor: "\x1b[?12l\x1b[?25h", - HideCursor: "\x1b[?25l", - AttrOff: "\x1b(B\x1b[m", - Underline: "\x1b[4m", - Bold: "\x1b[1m", - Dim: "\x1b[2m", - Blink: "\x1b[5m", - Reverse: "\x1b[7m", - EnterKeypad: "\x1b[?1h\x1b=", - ExitKeypad: "\x1b[?1l\x1b>", - SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", - SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m", - SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m", - AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", - EnterAcs: "\x1b(0", - ExitAcs: "\x1b(B", - Mouse: "\x1b[M", - MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", - SetCursor: "\x1b[%i%p1%d;%p2%dH", - CursorBack1: "\b", - CursorUp1: "\x1b[A", - KeyUp: "\x1bOA", - KeyDown: "\x1bOB", - KeyRight: "\x1bOC", - KeyLeft: "\x1bOD", - KeyInsert: "\x1b[2~", - KeyDelete: "\x1b[3~", - KeyBackspace: "\b", - KeyHome: "\x1bOH", - KeyEnd: "\x1bOF", - KeyPgUp: "\x1b[5~", - KeyPgDn: "\x1b[6~", - KeyF1: "\x1bOP", - KeyF2: "\x1bOQ", - KeyF3: "\x1bOR", - KeyF4: "\x1bOS", - KeyF5: "\x1b[15~", - KeyF6: "\x1b[17~", - KeyF7: "\x1b[18~", - KeyF8: "\x1b[19~", - KeyF9: "\x1b[20~", - KeyF10: "\x1b[21~", - KeyF11: "\x1b[23~", - KeyF12: "\x1b[24~", - KeyF13: "\x1b[1;2P", - KeyF14: "\x1b[1;2Q", - KeyF15: "\x1b[1;2R", - KeyF16: "\x1b[1;2S", - KeyF17: "\x1b[15;2~", - KeyF18: "\x1b[17;2~", - KeyF19: "\x1b[18;2~", - KeyF20: "\x1b[19;2~", - KeyF21: "\x1b[20;2~", - KeyF22: "\x1b[21;2~", - KeyF23: "\x1b[23;2~", - KeyF24: "\x1b[24;2~", - KeyF25: "\x1b[1;5P", - KeyF26: "\x1b[1;5Q", - KeyF27: "\x1b[1;5R", - KeyF28: "\x1b[1;5S", - KeyF29: "\x1b[15;5~", - KeyF30: "\x1b[17;5~", - KeyF31: "\x1b[18;5~", - KeyF32: "\x1b[19;5~", - KeyF33: "\x1b[20;5~", - KeyF34: "\x1b[21;5~", - KeyF35: "\x1b[23;5~", - KeyF36: "\x1b[24;5~", - KeyF37: "\x1b[1;6P", - KeyF38: "\x1b[1;6Q", - KeyF39: "\x1b[1;6R", - KeyF40: "\x1b[1;6S", - KeyF41: "\x1b[15;6~", - KeyF42: "\x1b[17;6~", - KeyF43: "\x1b[18;6~", - KeyF44: "\x1b[19;6~", - KeyF45: "\x1b[20;6~", - KeyF46: "\x1b[21;6~", - KeyF47: "\x1b[23;6~", - KeyF48: "\x1b[24;6~", - KeyF49: "\x1b[1;3P", - KeyF50: "\x1b[1;3Q", - KeyF51: "\x1b[1;3R", - KeyF52: "\x1b[1;3S", - KeyF53: "\x1b[15;3~", - KeyF54: "\x1b[17;3~", - KeyF55: "\x1b[18;3~", - KeyF56: "\x1b[19;3~", - KeyF57: "\x1b[20;3~", - KeyF58: "\x1b[21;3~", - KeyF59: "\x1b[23;3~", - KeyF60: "\x1b[24;3~", - KeyF61: "\x1b[1;4P", - KeyF62: "\x1b[1;4Q", - KeyF63: "\x1b[1;4R", - KeyBacktab: "\x1b[Z", - KeyShfLeft: "\x1b[1;2D", - KeyShfRight: "\x1b[1;2C", - KeyShfUp: "\x1b[1;2A", - KeyShfDown: "\x1b[1;2B", - KeyCtrlLeft: "\x1b[1;5D", - KeyCtrlRight: "\x1b[1;5C", - KeyCtrlUp: "\x1b[1;5A", - KeyCtrlDown: "\x1b[1;5B", - KeyMetaLeft: "\x1b[1;9D", - KeyMetaRight: "\x1b[1;9C", - KeyMetaUp: "\x1b[1;9A", - KeyMetaDown: "\x1b[1;9B", - KeyAltLeft: "\x1b[1;3D", - KeyAltRight: "\x1b[1;3C", - KeyAltUp: "\x1b[1;3A", - KeyAltDown: "\x1b[1;3B", - KeyAltShfLeft: "\x1b[1;4D", - KeyAltShfRight: "\x1b[1;4C", - KeyAltShfUp: "\x1b[1;4A", - KeyAltShfDown: "\x1b[1;4B", - KeyMetaShfLeft: "\x1b[1;10D", + Name: "alacritty", + Columns: 80, + Lines: 24, + Colors: 256, + Bell: "\a", + Clear: "\x1b[H\x1b[2J", + EnterCA: "\x1b[?1049h\x1b[22;0;0t", + ExitCA: "\x1b[?1049l\x1b[23;0;0t", + ShowCursor: "\x1b[?12l\x1b[?25h", + HideCursor: "\x1b[?25l", + AttrOff: "\x1b(B\x1b[m", + Underline: "\x1b[4m", + Bold: "\x1b[1m", + Dim: "\x1b[2m", + Blink: "\x1b[5m", + Reverse: "\x1b[7m", + EnterKeypad: "\x1b[?1h\x1b=", + ExitKeypad: "\x1b[?1l\x1b>", + SetFg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;m", + SetBg: "\x1b[%?%p1%{8}%<%t4%p1%d%e%p1%{16}%<%t10%p1%{8}%-%d%e48;5;%p1%d%;m", + SetFgBg: "\x1b[%?%p1%{8}%<%t3%p1%d%e%p1%{16}%<%t9%p1%{8}%-%d%e38;5;%p1%d%;;%?%p2%{8}%<%t4%p2%d%e%p2%{16}%<%t10%p2%{8}%-%d%e48;5;%p2%d%;m", + AltChars: "``aaffggiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~", + EnterAcs: "\x1b(0", + ExitAcs: "\x1b(B", + Mouse: "\x1b[M", + MouseMode: "%?%p1%{1}%=%t%'h'%Pa%e%'l'%Pa%;\x1b[?1000%ga%c\x1b[?1002%ga%c\x1b[?1003%ga%c\x1b[?1006%ga%c", + SetCursor: "\x1b[%i%p1%d;%p2%dH", + CursorBack1: "\b", + CursorUp1: "\x1b[A", + KeyUp: "\x1bOA", + KeyDown: "\x1bOB", + KeyRight: "\x1bOC", + KeyLeft: "\x1bOD", + KeyInsert: "\x1b[2~", + KeyDelete: "\x1b[3~", + KeyBackspace: "\b", + KeyHome: "\x1bOH", + KeyEnd: "\x1bOF", + KeyPgUp: "\x1b[5~", + KeyPgDn: "\x1b[6~", + KeyF1: "\x1bOP", + KeyF2: "\x1bOQ", + KeyF3: "\x1bOR", + KeyF4: "\x1bOS", + KeyF5: "\x1b[15~", + KeyF6: "\x1b[17~", + KeyF7: "\x1b[18~", + KeyF8: "\x1b[19~", + KeyF9: "\x1b[20~", + KeyF10: "\x1b[21~", + KeyF11: "\x1b[23~", + KeyF12: "\x1b[24~", + KeyF13: "\x1b[1;2P", + KeyF14: "\x1b[1;2Q", + KeyF15: "\x1b[1;2R", + KeyF16: "\x1b[1;2S", + KeyF17: "\x1b[15;2~", + KeyF18: "\x1b[17;2~", + KeyF19: "\x1b[18;2~", + KeyF20: "\x1b[19;2~", + KeyF21: "\x1b[20;2~", + KeyF22: "\x1b[21;2~", + KeyF23: "\x1b[23;2~", + KeyF24: "\x1b[24;2~", + KeyF25: "\x1b[1;5P", + KeyF26: "\x1b[1;5Q", + KeyF27: "\x1b[1;5R", + KeyF28: "\x1b[1;5S", + KeyF29: "\x1b[15;5~", + KeyF30: "\x1b[17;5~", + KeyF31: "\x1b[18;5~", + KeyF32: "\x1b[19;5~", + KeyF33: "\x1b[20;5~", + KeyF34: "\x1b[21;5~", + KeyF35: "\x1b[23;5~", + KeyF36: "\x1b[24;5~", + KeyF37: "\x1b[1;6P", + KeyF38: "\x1b[1;6Q", + KeyF39: "\x1b[1;6R", + KeyF40: "\x1b[1;6S", + KeyF41: "\x1b[15;6~", + KeyF42: "\x1b[17;6~", + KeyF43: "\x1b[18;6~", + KeyF44: "\x1b[19;6~", + KeyF45: "\x1b[20;6~", + KeyF46: "\x1b[21;6~", + KeyF47: "\x1b[23;6~", + KeyF48: "\x1b[24;6~", + KeyF49: "\x1b[1;3P", + KeyF50: "\x1b[1;3Q", + KeyF51: "\x1b[1;3R", + KeyF52: "\x1b[1;3S", + KeyF53: "\x1b[15;3~", + KeyF54: "\x1b[17;3~", + KeyF55: "\x1b[18;3~", + KeyF56: "\x1b[19;3~", + KeyF57: "\x1b[20;3~", + KeyF58: "\x1b[21;3~", + KeyF59: "\x1b[23;3~", + KeyF60: "\x1b[24;3~", + KeyF61: "\x1b[1;4P", + KeyF62: "\x1b[1;4Q", + KeyF63: "\x1b[1;4R", + KeyBacktab: "\x1b[Z", + KeyShfLeft: "\x1b[1;2D", + KeyShfRight: "\x1b[1;2C", + KeyShfUp: "\x1b[1;2A", + KeyShfDown: "\x1b[1;2B", + KeyCtrlLeft: "\x1b[1;5D", + KeyCtrlRight: "\x1b[1;5C", + KeyCtrlUp: "\x1b[1;5A", + KeyCtrlDown: "\x1b[1;5B", + KeyMetaLeft: "\x1b[1;9D", + KeyMetaRight: "\x1b[1;9C", + KeyMetaUp: "\x1b[1;9A", + KeyMetaDown: "\x1b[1;9B", + KeyAltLeft: "\x1b[1;3D", + KeyAltRight: "\x1b[1;3C", + KeyAltUp: "\x1b[1;3A", + KeyAltDown: "\x1b[1;3B", + KeyAltShfLeft: "\x1b[1;4D", + KeyAltShfRight: "\x1b[1;4C", + KeyAltShfUp: "\x1b[1;4A", + KeyAltShfDown: "\x1b[1;4B", + KeyMetaShfLeft: "\x1b[1;10D", KeyMetaShfRight: "\x1b[1;10C", - KeyMetaShfUp: "\x1b[1;10A", - KeyMetaShfDown: "\x1b[1;10B", - KeyCtrlShfLeft: "\x1b[1;6D", + KeyMetaShfUp: "\x1b[1;10A", + KeyMetaShfDown: "\x1b[1;10B", + KeyCtrlShfLeft: "\x1b[1;6D", KeyCtrlShfRight: "\x1b[1;6C", - KeyCtrlShfUp: "\x1b[1;6A", - KeyCtrlShfDown: "\x1b[1;6B", - KeyShfHome: "\x1b[1;2H", - KeyShfEnd: "\x1b[1;2F", - KeyCtrlHome: "\x1b[1;5H", - KeyCtrlEnd: "\x1b[1;5F", - KeyAltHome: "\x1b[1;9H", - KeyAltEnd: "\x1b[1;9F", - KeyCtrlShfHome: "\x1b[1;6H", - KeyCtrlShfEnd: "\x1b[1;6F", - KeyMetaShfHome: "\x1b[1;10H", - KeyMetaShfEnd: "\x1b[1;10F", - KeyAltShfHome: "\x1b[1;4H", - KeyAltShfEnd: "\x1b[1;4F", + KeyCtrlShfUp: "\x1b[1;6A", + KeyCtrlShfDown: "\x1b[1;6B", + KeyShfHome: "\x1b[1;2H", + KeyShfEnd: "\x1b[1;2F", + KeyCtrlHome: "\x1b[1;5H", + KeyCtrlEnd: "\x1b[1;5F", + KeyAltHome: "\x1b[1;9H", + KeyAltEnd: "\x1b[1;9F", + KeyCtrlShfHome: "\x1b[1;6H", + KeyCtrlShfEnd: "\x1b[1;6F", + KeyMetaShfHome: "\x1b[1;10H", + KeyMetaShfEnd: "\x1b[1;10F", + KeyAltShfHome: "\x1b[1;4H", + KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", }) } diff --git a/terminfo/dynamic/dynamic.go b/terminfo/dynamic/dynamic.go index 71de2080..fa9136f7 100644 --- a/terminfo/dynamic/dynamic.go +++ b/terminfo/dynamic/dynamic.go @@ -341,6 +341,9 @@ func LoadTerminfo(name string) (*terminfo.Terminfo, string, error) { t.KeyCtrlShfDown = "\x1b[1;6B" t.KeyCtrlShfRight = "\x1b[1;6C" t.KeyCtrlShfLeft = "\x1b[1;6D" + + t.KeyShfPgUp = "\x1b[5;2~" + t.KeyShfPgDn = "\x1b[6;2~" } // And also for Home and End if t.KeyShfHome == "\x1b[1;2H" && t.KeyShfEnd == "\x1b[1;2F" { diff --git a/terminfo/g/gnome/term.go b/terminfo/g/gnome/term.go index 08b913eb..0825b7e2 100644 --- a/terminfo/g/gnome/term.go +++ b/terminfo/g/gnome/term.go @@ -153,6 +153,8 @@ func init() { KeyMetaShfEnd: "\x1b[1;10F", KeyAltShfHome: "\x1b[1;4H", KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", }) // GNOME Terminal with xterm 256-colors @@ -302,5 +304,7 @@ func init() { KeyMetaShfEnd: "\x1b[1;10F", KeyAltShfHome: "\x1b[1;4H", KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", }) } diff --git a/terminfo/k/konsole/term.go b/terminfo/k/konsole/term.go index 21cd72ae..9fb48788 100644 --- a/terminfo/k/konsole/term.go +++ b/terminfo/k/konsole/term.go @@ -152,6 +152,8 @@ func init() { KeyMetaShfEnd: "\x1b[1;10F", KeyAltShfHome: "\x1b[1;4H", KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", }) // KDE console window with xterm 256-colors @@ -300,5 +302,7 @@ func init() { KeyMetaShfEnd: "\x1b[1;10F", KeyAltShfHome: "\x1b[1;4H", KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", }) } diff --git a/terminfo/mkinfo.go b/terminfo/mkinfo.go index eb4b67f1..c91f04ba 100644 --- a/terminfo/mkinfo.go +++ b/terminfo/mkinfo.go @@ -359,6 +359,9 @@ func getinfo(name string) (*terminfo.Terminfo, string, error) { t.KeyCtrlShfDown = "\x1b[1;6B" t.KeyCtrlShfRight = "\x1b[1;6C" t.KeyCtrlShfLeft = "\x1b[1;6D" + + t.KeyShfPgUp = "\x1b[5;2~" + t.KeyShfPgDn = "\x1b[6;2~" } // And also for Home and End if t.KeyShfHome == "\x1b[1;2H" && t.KeyShfEnd == "\x1b[1;2F" { @@ -648,6 +651,8 @@ func dotGoInfo(w io.Writer, terms []*TData) { dotGoAddStr(w, "KeyMetaShfEnd", t.KeyMetaShfEnd) dotGoAddStr(w, "KeyAltShfHome", t.KeyAltShfHome) dotGoAddStr(w, "KeyAltShfEnd", t.KeyAltShfEnd) + dotGoAddStr(w, "KeyShfPgUp", t.KeyShfPgUp) + dotGoAddStr(w, "KeyShfPgDn", t.KeyShfPgDn) fmt.Fprintln(w, "\t})") } fmt.Fprintln(w, "}") diff --git a/terminfo/s/simpleterm/term.go b/terminfo/s/simpleterm/term.go index ad7c1e81..16258ca5 100644 --- a/terminfo/s/simpleterm/term.go +++ b/terminfo/s/simpleterm/term.go @@ -154,6 +154,8 @@ func init() { KeyMetaShfEnd: "\x1b[1;10F", KeyAltShfHome: "\x1b[1;4H", KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", }) // simpleterm with 256 colors @@ -304,5 +306,7 @@ func init() { KeyMetaShfEnd: "\x1b[1;10F", KeyAltShfHome: "\x1b[1;4H", KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", }) } diff --git a/terminfo/t/termite/term.go b/terminfo/t/termite/term.go index 62b1c5b8..579c57f3 100644 --- a/terminfo/t/termite/term.go +++ b/terminfo/t/termite/term.go @@ -150,5 +150,7 @@ func init() { KeyMetaShfEnd: "\x1b[1;10F", KeyAltShfHome: "\x1b[1;4H", KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", }) } diff --git a/terminfo/terminfo.go b/terminfo/terminfo.go index d0f46e93..edb65f36 100644 --- a/terminfo/terminfo.go +++ b/terminfo/terminfo.go @@ -170,6 +170,8 @@ type Terminfo struct { SetBgRGB string // setbrgb KeyShfUp string // shift-up KeyShfDown string // shift-down + KeyShfPgUp string // shift-kpp + KeyShfPgDn string // shift-knp KeyCtrlUp string // ctrl-up KeyCtrlDown string // ctrl-left KeyCtrlRight string // ctrl-right diff --git a/terminfo/x/xfce/term.go b/terminfo/x/xfce/term.go index 219cc6fd..904a9c93 100644 --- a/terminfo/x/xfce/term.go +++ b/terminfo/x/xfce/term.go @@ -152,5 +152,7 @@ func init() { KeyMetaShfEnd: "\x1b[1;10F", KeyAltShfHome: "\x1b[1;4H", KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", }) } diff --git a/terminfo/x/xterm/term.go b/terminfo/x/xterm/term.go index 0e4c175f..6fbb1bea 100644 --- a/terminfo/x/xterm/term.go +++ b/terminfo/x/xterm/term.go @@ -153,6 +153,8 @@ func init() { KeyMetaShfEnd: "\x1b[1;10F", KeyAltShfHome: "\x1b[1;4H", KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", }) // xterm with 88 colors @@ -301,6 +303,8 @@ func init() { KeyMetaShfEnd: "\x1b[1;10F", KeyAltShfHome: "\x1b[1;4H", KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", }) // xterm with 256 colors @@ -449,5 +453,7 @@ func init() { KeyMetaShfEnd: "\x1b[1;10F", KeyAltShfHome: "\x1b[1;4H", KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", }) } diff --git a/terminfo/x/xterm_kitty/term.go b/terminfo/x/xterm_kitty/term.go index 8a8d69b8..801a4ded 100644 --- a/terminfo/x/xterm_kitty/term.go +++ b/terminfo/x/xterm_kitty/term.go @@ -151,5 +151,7 @@ func init() { KeyMetaShfEnd: "\x1b[1;10F", KeyAltShfHome: "\x1b[1;4H", KeyAltShfEnd: "\x1b[1;4F", + KeyShfPgUp: "\x1b[5;2~", + KeyShfPgDn: "\x1b[6;2~", }) } diff --git a/tscreen.go b/tscreen.go index b86a6c47..a64c29c2 100644 --- a/tscreen.go +++ b/tscreen.go @@ -289,6 +289,8 @@ func (t *tScreen) prepareKeys() { t.prepareKeyMod(KeyDown, ModShift, ti.KeyShfDown) t.prepareKeyMod(KeyHome, ModShift, ti.KeyShfHome) t.prepareKeyMod(KeyEnd, ModShift, ti.KeyShfEnd) + t.prepareKeyMod(KeyPgUp, ModShift, ti.KeyShfPgUp) + t.prepareKeyMod(KeyPgDn, ModShift, ti.KeyShfPgDn) t.prepareKeyMod(KeyRight, ModCtrl, ti.KeyCtrlRight) t.prepareKeyMod(KeyLeft, ModCtrl, ti.KeyCtrlLeft)