From e86c2f2000aa9e9c26c7c927ff8e9d39967009e6 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sun, 26 Nov 2017 17:34:34 +0530 Subject: [PATCH] Fix shift+up/down not generating correct escape codes Fixes #186 --- kitty/keys.h | 16 ++++++++-------- kitty/keys.py | 2 ++ kitty/terminfo.py | 6 +++--- terminfo/78/xterm-kitty | Bin 1769 -> 1776 bytes terminfo/kitty.terminfo | 1 + terminfo/x/xterm-kitty | Bin 1769 -> 1776 bytes 6 files changed, 14 insertions(+), 11 deletions(-) diff --git a/kitty/keys.h b/kitty/keys.h index 73ec3adb2..1198f6dc7 100644 --- a/kitty/keys.h +++ b/kitty/keys.h @@ -569,9 +569,9 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { case 57: // LEFT return "\x06\x1b\x5b\x31\x3b\x32\x44"; case 58: // DOWN - return "\x03\x1b\x5b\x42"; + return "\x06\x1b\x5b\x31\x3b\x32\x42"; case 59: // UP - return "\x03\x1b\x5b\x41"; + return "\x06\x1b\x5b\x31\x3b\x32\x41"; case 60: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; case 61: // PAGE_DOWN @@ -1767,9 +1767,9 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { case 57: // LEFT return "\x06\x1b\x5b\x31\x3b\x32\x44"; case 58: // DOWN - return "\x03\x1b\x5b\x42"; + return "\x06\x1b\x5b\x31\x3b\x32\x42"; case 59: // UP - return "\x03\x1b\x5b\x41"; + return "\x06\x1b\x5b\x31\x3b\x32\x41"; case 60: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; case 61: // PAGE_DOWN @@ -2973,9 +2973,9 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { case 57: // LEFT return "\x06\x1b\x5b\x31\x3b\x32\x44"; case 58: // DOWN - return "\x03\x1b\x4f\x42"; + return "\x06\x1b\x5b\x31\x3b\x32\x42"; case 59: // UP - return "\x03\x1b\x4f\x41"; + return "\x06\x1b\x5b\x31\x3b\x32\x41"; case 60: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; case 61: // PAGE_DOWN @@ -4171,9 +4171,9 @@ key_lookup(uint8_t key, KeyboardMode mode, uint8_t mods, uint8_t action) { case 57: // LEFT return "\x06\x1b\x5b\x31\x3b\x32\x44"; case 58: // DOWN - return "\x03\x1b\x4f\x42"; + return "\x06\x1b\x5b\x31\x3b\x32\x42"; case 59: // UP - return "\x03\x1b\x4f\x41"; + return "\x06\x1b\x5b\x31\x3b\x32\x41"; case 60: // PAGE_UP return "\x04\x1b\x5b\x35\x7e"; case 61: // PAGE_DOWN diff --git a/kitty/keys.py b/kitty/keys.py index 4d9756cb5..01cad4e36 100644 --- a/kitty/keys.py +++ b/kitty/keys.py @@ -79,6 +79,8 @@ SHIFTED_KEYS = { defines.GLFW_KEY_END: key_as_bytes('kEND'), defines.GLFW_KEY_LEFT: key_as_bytes('kLFT'), defines.GLFW_KEY_RIGHT: key_as_bytes('kRIT'), + defines.GLFW_KEY_UP: key_as_bytes('kri'), + defines.GLFW_KEY_DOWN: key_as_bytes('kind'), } control_codes.update({ diff --git a/kitty/terminfo.py b/kitty/terminfo.py index d3a6c7d0e..ec8cb1961 100644 --- a/kitty/terminfo.py +++ b/kitty/terminfo.py @@ -190,6 +190,8 @@ string_capabilities = { 'kpp': r'\E[5~', # Scroll backwards (reverse index) 'kri': r'\E[1;2A', + # scroll forwards (index) + 'kind': r'\E[1;2B', # Restore cursor 'rc': r'\E8', # Reverse video @@ -276,8 +278,6 @@ string_capabilities = { # 'is2': r'\E[!p\E[?3;4l\E[4l\E>', # # Enter/send key # 'kent': r'\EOM', - # # scroll forwards - # 'kind': r'\E[1;2B', # # reset2 # 'rs2': r'\E[!p\E[?3;4l\E[4l\E>', } @@ -350,6 +350,7 @@ termcap_aliases.update({ 'kN': 'knp', 'kP': 'kpp', 'kR': 'kri', + 'kF': 'kind', 'rc': 'rc', 'mr': 'rev', 'sr': 'ri', @@ -400,7 +401,6 @@ termcap_aliases.update({ # 'mk': 'invis', # 'is': 'is2', # '@8': 'kent', - # 'kF': 'kind', # 'r2': 'rs2', }) diff --git a/terminfo/78/xterm-kitty b/terminfo/78/xterm-kitty index 615403479f37a75f6f36903a30cbe0746e1808a5..75c3f2bba1484228226cfcc313c689a635bf3929 100644 GIT binary patch delta 293 zcmaFK`+=8Ricyq7hJl|Ulkw0*?w>q?j1i3g|Hm^XGiEYQ7G#o3$Y-ozY-H?WoXj|f zaVg_E#_fy;fC`YoNhtpe<9WtgjCUFDGd^N8Vfz2yoXHYMf`A>9J&@(VR1{sse{Qn?` tHe)-+be`!N*dj3#W|$5HZOIH&<-~0dm2zfo+N{eQ&dBJrxsD~92>|_6r!)Wn delta 291 zcmeys`;wPiicyq7hJl|UlX3S%?w>sW{|7Su{~y5^!;GLs0%v#uJQ}8Lu(kV7$$!%k=-h0h1As1Oam<3n0sq$qLN329h;k zRs&NT(_}$LF|Hmk_y7M1KrWMl(?lp2q8mg`f{V-qvKGL3Fcr&@MAk8F0U49Z{C^jS rHe=h*bb{$T*dj4qW|$5HZNv;z<-~0Pm9k;3-mJ?U&bYaoC6x&PigBku diff --git a/terminfo/kitty.terminfo b/terminfo/kitty.terminfo index fe86e0ed5..b761ada23 100644 --- a/terminfo/kitty.terminfo +++ b/terminfo/kitty.terminfo @@ -85,6 +85,7 @@ xterm-kitty|KovIdTTY, khlp=, khome=\EOH, kich1=\E[2~, + kind=\E[1;2B, kmous=\E[M, knp=\E[6~, kpp=\E[5~, diff --git a/terminfo/x/xterm-kitty b/terminfo/x/xterm-kitty index 615403479f37a75f6f36903a30cbe0746e1808a5..75c3f2bba1484228226cfcc313c689a635bf3929 100644 GIT binary patch delta 293 zcmaFK`+=8Ricyq7hJl|Ulkw0*?w>q?j1i3g|Hm^XGiEYQ7G#o3$Y-ozY-H?WoXj|f zaVg_E#_fy;fC`YoNhtpe<9WtgjCUFDGd^N8Vfz2yoXHYMf`A>9J&@(VR1{sse{Qn?` tHe)-+be`!N*dj3#W|$5HZOIH&<-~0dm2zfo+N{eQ&dBJrxsD~92>|_6r!)Wn delta 291 zcmeys`;wPiicyq7hJl|UlX3S%?w>sW{|7Su{~y5^!;GLs0%v#uJQ}8Lu(kV7$$!%k=-h0h1As1Oam<3n0sq$qLN329h;k zRs&NT(_}$LF|Hmk_y7M1KrWMl(?lp2q8mg`f{V-qvKGL3Fcr&@MAk8F0U49Z{C^jS rHe=h*bb{$T*dj4qW|$5HZNv;z<-~0Pm9k;3-mJ?U&bYaoC6x&PigBku