|
from __future__ import annotations |
|
|
|
from enum import Enum |
|
|
|
__all__ = [ |
|
"Keys", |
|
"ALL_KEYS", |
|
] |
|
|
|
|
|
class Keys(str, Enum): |
|
""" |
|
List of keys for use in key bindings. |
|
|
|
Note that this is an "StrEnum", all values can be compared against |
|
strings. |
|
""" |
|
|
|
value: str |
|
|
|
Escape = "escape" |
|
ShiftEscape = "s-escape" |
|
|
|
ControlAt = "c-@" |
|
|
|
ControlA = "c-a" |
|
ControlB = "c-b" |
|
ControlC = "c-c" |
|
ControlD = "c-d" |
|
ControlE = "c-e" |
|
ControlF = "c-f" |
|
ControlG = "c-g" |
|
ControlH = "c-h" |
|
ControlI = "c-i" |
|
ControlJ = "c-j" |
|
ControlK = "c-k" |
|
ControlL = "c-l" |
|
ControlM = "c-m" |
|
ControlN = "c-n" |
|
ControlO = "c-o" |
|
ControlP = "c-p" |
|
ControlQ = "c-q" |
|
ControlR = "c-r" |
|
ControlS = "c-s" |
|
ControlT = "c-t" |
|
ControlU = "c-u" |
|
ControlV = "c-v" |
|
ControlW = "c-w" |
|
ControlX = "c-x" |
|
ControlY = "c-y" |
|
ControlZ = "c-z" |
|
|
|
Control1 = "c-1" |
|
Control2 = "c-2" |
|
Control3 = "c-3" |
|
Control4 = "c-4" |
|
Control5 = "c-5" |
|
Control6 = "c-6" |
|
Control7 = "c-7" |
|
Control8 = "c-8" |
|
Control9 = "c-9" |
|
Control0 = "c-0" |
|
|
|
ControlShift1 = "c-s-1" |
|
ControlShift2 = "c-s-2" |
|
ControlShift3 = "c-s-3" |
|
ControlShift4 = "c-s-4" |
|
ControlShift5 = "c-s-5" |
|
ControlShift6 = "c-s-6" |
|
ControlShift7 = "c-s-7" |
|
ControlShift8 = "c-s-8" |
|
ControlShift9 = "c-s-9" |
|
ControlShift0 = "c-s-0" |
|
|
|
ControlBackslash = "c-\\" |
|
ControlSquareClose = "c-]" |
|
ControlCircumflex = "c-^" |
|
ControlUnderscore = "c-_" |
|
|
|
Left = "left" |
|
Right = "right" |
|
Up = "up" |
|
Down = "down" |
|
Home = "home" |
|
End = "end" |
|
Insert = "insert" |
|
Delete = "delete" |
|
PageUp = "pageup" |
|
PageDown = "pagedown" |
|
|
|
ControlLeft = "c-left" |
|
ControlRight = "c-right" |
|
ControlUp = "c-up" |
|
ControlDown = "c-down" |
|
ControlHome = "c-home" |
|
ControlEnd = "c-end" |
|
ControlInsert = "c-insert" |
|
ControlDelete = "c-delete" |
|
ControlPageUp = "c-pageup" |
|
ControlPageDown = "c-pagedown" |
|
|
|
ShiftLeft = "s-left" |
|
ShiftRight = "s-right" |
|
ShiftUp = "s-up" |
|
ShiftDown = "s-down" |
|
ShiftHome = "s-home" |
|
ShiftEnd = "s-end" |
|
ShiftInsert = "s-insert" |
|
ShiftDelete = "s-delete" |
|
ShiftPageUp = "s-pageup" |
|
ShiftPageDown = "s-pagedown" |
|
|
|
ControlShiftLeft = "c-s-left" |
|
ControlShiftRight = "c-s-right" |
|
ControlShiftUp = "c-s-up" |
|
ControlShiftDown = "c-s-down" |
|
ControlShiftHome = "c-s-home" |
|
ControlShiftEnd = "c-s-end" |
|
ControlShiftInsert = "c-s-insert" |
|
ControlShiftDelete = "c-s-delete" |
|
ControlShiftPageUp = "c-s-pageup" |
|
ControlShiftPageDown = "c-s-pagedown" |
|
|
|
BackTab = "s-tab" |
|
|
|
F1 = "f1" |
|
F2 = "f2" |
|
F3 = "f3" |
|
F4 = "f4" |
|
F5 = "f5" |
|
F6 = "f6" |
|
F7 = "f7" |
|
F8 = "f8" |
|
F9 = "f9" |
|
F10 = "f10" |
|
F11 = "f11" |
|
F12 = "f12" |
|
F13 = "f13" |
|
F14 = "f14" |
|
F15 = "f15" |
|
F16 = "f16" |
|
F17 = "f17" |
|
F18 = "f18" |
|
F19 = "f19" |
|
F20 = "f20" |
|
F21 = "f21" |
|
F22 = "f22" |
|
F23 = "f23" |
|
F24 = "f24" |
|
|
|
ControlF1 = "c-f1" |
|
ControlF2 = "c-f2" |
|
ControlF3 = "c-f3" |
|
ControlF4 = "c-f4" |
|
ControlF5 = "c-f5" |
|
ControlF6 = "c-f6" |
|
ControlF7 = "c-f7" |
|
ControlF8 = "c-f8" |
|
ControlF9 = "c-f9" |
|
ControlF10 = "c-f10" |
|
ControlF11 = "c-f11" |
|
ControlF12 = "c-f12" |
|
ControlF13 = "c-f13" |
|
ControlF14 = "c-f14" |
|
ControlF15 = "c-f15" |
|
ControlF16 = "c-f16" |
|
ControlF17 = "c-f17" |
|
ControlF18 = "c-f18" |
|
ControlF19 = "c-f19" |
|
ControlF20 = "c-f20" |
|
ControlF21 = "c-f21" |
|
ControlF22 = "c-f22" |
|
ControlF23 = "c-f23" |
|
ControlF24 = "c-f24" |
|
|
|
|
|
Any = "<any>" |
|
|
|
|
|
ScrollUp = "<scroll-up>" |
|
ScrollDown = "<scroll-down>" |
|
|
|
CPRResponse = "<cursor-position-response>" |
|
Vt100MouseEvent = "<vt100-mouse-event>" |
|
WindowsMouseEvent = "<windows-mouse-event>" |
|
BracketedPaste = "<bracketed-paste>" |
|
|
|
SIGINT = "<sigint>" |
|
|
|
|
|
|
|
Ignore = "<ignore>" |
|
|
|
|
|
ControlSpace = ControlAt |
|
Tab = ControlI |
|
Enter = ControlM |
|
Backspace = ControlH |
|
|
|
|
|
|
|
ShiftControlLeft = ControlShiftLeft |
|
ShiftControlRight = ControlShiftRight |
|
ShiftControlHome = ControlShiftHome |
|
ShiftControlEnd = ControlShiftEnd |
|
|
|
|
|
ALL_KEYS: list[str] = [k.value for k in Keys] |
|
|
|
|
|
|
|
KEY_ALIASES: dict[str, str] = { |
|
"backspace": "c-h", |
|
"c-space": "c-@", |
|
"enter": "c-m", |
|
"tab": "c-i", |
|
|
|
"s-c-left": "c-s-left", |
|
"s-c-right": "c-s-right", |
|
"s-c-home": "c-s-home", |
|
"s-c-end": "c-s-end", |
|
} |
|
|