Parse a key binding string. Key binding strings specify zero or more modifier keys and a base key, separated by hyphens.
(modifier "-")* key
e.g. c-down, backspace, ctrl-shift-f1.
where each modifier is parsed case-insensitively as follows:
and key is parsed case-insensitively as follows:
"f1", "f2", ...: KFun
"esc": KEsc
"backspace": KBS
"enter": KEnter
"left": KLeft
"right": KRight
"up": KUp
"down": KDown
"upleft": KUpLeft
"upright": KUpRight
"downleft": KDownLeft
"downright": KDownRight
"center": KCenter
"backtab": KBackTab
"printscreen": KPrtScr
"pause": KPause
"insert": KIns
"home": KHome
"pgup": KPageUp
"del": KDel
"end": KEnd
"pgdown": KPageDown
"begin": KBegin
"menu": KMenu
"space":
' '"tab":
'\t'Otherwise, KChar