on master help sign in
adding support for Home, End and Begin. Thanks Mikolaj Konarski
93b8f8ecoreyoconnor
src/Graphics/Vty/LLInput.hs+13−3
@@ -36,7 +36,7 @@ import System.Posix.IO ( stdInput
36
36
37-- |Representations of non-modifier keys.
37-- |Representations of non-modifier keys.
38data Key = KEsc | KFun Int | KBackTab | KPrtScr | KPause | KASCII Char | KBS | KIns
38data Key = KEsc | KFun Int | KBackTab | KPrtScr | KPause | KASCII Char | KBS | KIns
39− | KHome | KPageUp | KDel | KEnd | KPageDown | KNP5 | KUp | KMenu
39+ | KHome | KPageUp | KDel | KEnd | KPageDown | KBegin | KNP5 | KUp | KMenu
40 | KLeft | KDown | KRight | KEnter
40 | KLeft | KDown | KRight | KEnter
41 deriving (Eq,Show,Ord)
41 deriving (Eq,Show,Ord)
42
42
@@ -155,7 +155,16 @@ initTermInput escDelay terminal = do
155
155
156 ansi_classify_table :: [[([Char], (Key, [Modifier]))]]
156 ansi_classify_table :: [[([Char], (Key, [Modifier]))]]
157 ansi_classify_table =
157 ansi_classify_table =
158− [ let k c s = ("\ESC["++c,(s,[])) in [ k "G" KNP5, k "P" KPause, k "A" KUp, k "B" KDown, k "C" KRight, k "D" KLeft ],
158+ [ let k c s = ("\ESC["++c,(s,[])) in [ k "G" KNP5
159+ , k "P" KPause
160+ , k "A" KUp
161+ , k "B" KDown
162+ , k "C" KRight
163+ , k "D" KLeft
164+ , k "H" KHome
165+ , k "F" KEnd
166+ , k "E" KBegin
167+ ],
159
168
160 -- Support for arrows
169 -- Support for arrows
161 [("\ESC[" ++ charCnt ++ show mc++c,(s,m))
170 [("\ESC[" ++ charCnt ++ show mc++c,(s,m))
@@ -165,7 +174,8 @@ initTermInput escDelay terminal = do
165 (c,s) <- [("A", KUp), ("B", KDown), ("C", KRight), ("D", KLeft)] -- directions and their codes
174 (c,s) <- [("A", KUp), ("B", KDown), ("C", KRight), ("D", KLeft)] -- directions and their codes
166 ],
175 ],
167
176
168− let k n s = ("\ESC["++show n++"~",(s,[])) in zipWith k [2::Int,3,5,6] [KIns,KDel,KPageUp,KPageDown],
177+ let k n s = ("\ESC["++show n++"~",(s,[])) in zipWith k [2::Int,3,5,6,1,4]
178+ [KIns,KDel,KPageUp,KPageDown,KHome,KEnd],
169
179
170 -- Support for simple characters.
180 -- Support for simple characters.
171 [ (x:[],(KASCII x,[])) | x <- map toEnum [0..255] ],
181 [ (x:[],(KASCII x,[])) | x <- map toEnum [0..255] ],