Current section
Files
Jump to
Current section
Files
src/chrobot@internal@keymap.erl
-module(chrobot@internal@keymap).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]).
-export([get_key_data/1]).
-export_type([key_data/0]).
-type key_data() :: {key_data,
gleam@option:option(integer()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(binary()),
gleam@option:option(integer())}.
-spec get_key_data(binary()) -> {ok, key_data()} | {error, nil}.
get_key_data(Input) ->
case Input of
<<"0"/utf8>> ->
{ok,
{key_data,
{some, 48},
{some, <<"Digit0"/utf8>>},
{some, <<"0"/utf8>>},
none,
none}};
<<"1"/utf8>> ->
{ok,
{key_data,
{some, 49},
{some, <<"Digit1"/utf8>>},
{some, <<"1"/utf8>>},
none,
none}};
<<"2"/utf8>> ->
{ok,
{key_data,
{some, 50},
{some, <<"Digit2"/utf8>>},
{some, <<"2"/utf8>>},
none,
none}};
<<"3"/utf8>> ->
{ok,
{key_data,
{some, 51},
{some, <<"Digit3"/utf8>>},
{some, <<"3"/utf8>>},
none,
none}};
<<"4"/utf8>> ->
{ok,
{key_data,
{some, 52},
{some, <<"Digit4"/utf8>>},
{some, <<"4"/utf8>>},
none,
none}};
<<"5"/utf8>> ->
{ok,
{key_data,
{some, 53},
{some, <<"Digit5"/utf8>>},
{some, <<"5"/utf8>>},
none,
none}};
<<"6"/utf8>> ->
{ok,
{key_data,
{some, 54},
{some, <<"Digit6"/utf8>>},
{some, <<"6"/utf8>>},
none,
none}};
<<"7"/utf8>> ->
{ok,
{key_data,
{some, 55},
{some, <<"Digit7"/utf8>>},
{some, <<"7"/utf8>>},
none,
none}};
<<"8"/utf8>> ->
{ok,
{key_data,
{some, 56},
{some, <<"Digit8"/utf8>>},
{some, <<"8"/utf8>>},
none,
none}};
<<"9"/utf8>> ->
{ok,
{key_data,
{some, 57},
{some, <<"Digit9"/utf8>>},
{some, <<"9"/utf8>>},
none,
none}};
<<"Power"/utf8>> ->
{ok,
{key_data,
none,
{some, <<"Power"/utf8>>},
{some, <<"Power"/utf8>>},
none,
none}};
<<"Eject"/utf8>> ->
{ok,
{key_data,
none,
{some, <<"Eject"/utf8>>},
{some, <<"Eject"/utf8>>},
none,
none}};
<<"Abort"/utf8>> ->
{ok,
{key_data,
{some, 3},
{some, <<"Abort"/utf8>>},
{some, <<"Cancel"/utf8>>},
none,
none}};
<<"Help"/utf8>> ->
{ok,
{key_data,
{some, 6},
{some, <<"Help"/utf8>>},
{some, <<"Help"/utf8>>},
none,
none}};
<<"Backspace"/utf8>> ->
{ok,
{key_data,
{some, 8},
{some, <<"Backspace"/utf8>>},
{some, <<"Backspace"/utf8>>},
none,
none}};
<<"Tab"/utf8>> ->
{ok,
{key_data,
{some, 9},
{some, <<"Tab"/utf8>>},
{some, <<"Tab"/utf8>>},
none,
none}};
<<"Numpad5"/utf8>> ->
{ok,
{key_data,
{some, 12},
{some, <<"Numpad5"/utf8>>},
{some, <<"Clear"/utf8>>},
none,
{some, 3}}};
<<"NumpadEnter"/utf8>> ->
{ok,
{key_data,
{some, 13},
{some, <<"NumpadEnter"/utf8>>},
{some, <<"Enter"/utf8>>},
{some, <<"\r"/utf8>>},
{some, 3}}};
<<"Enter"/utf8>> ->
{ok,
{key_data,
{some, 13},
{some, <<"Enter"/utf8>>},
{some, <<"Enter"/utf8>>},
{some, <<"\r"/utf8>>},
none}};
<<"\r"/utf8>> ->
{ok,
{key_data,
{some, 13},
{some, <<"Enter"/utf8>>},
{some, <<"Enter"/utf8>>},
{some, <<"\r"/utf8>>},
none}};
<<"\n"/utf8>> ->
{ok,
{key_data,
{some, 13},
{some, <<"Enter"/utf8>>},
{some, <<"Enter"/utf8>>},
{some, <<"\r"/utf8>>},
none}};
<<"ShiftLeft"/utf8>> ->
{ok,
{key_data,
{some, 16},
{some, <<"ShiftLeft"/utf8>>},
{some, <<"Shift"/utf8>>},
none,
{some, 1}}};
<<"ShiftRight"/utf8>> ->
{ok,
{key_data,
{some, 16},
{some, <<"ShiftRight"/utf8>>},
{some, <<"Shift"/utf8>>},
none,
{some, 2}}};
<<"ControlLeft"/utf8>> ->
{ok,
{key_data,
{some, 17},
{some, <<"ControlLeft"/utf8>>},
{some, <<"Control"/utf8>>},
none,
{some, 1}}};
<<"ControlRight"/utf8>> ->
{ok,
{key_data,
{some, 17},
{some, <<"ControlRight"/utf8>>},
{some, <<"Control"/utf8>>},
none,
{some, 2}}};
<<"AltLeft"/utf8>> ->
{ok,
{key_data,
{some, 18},
{some, <<"AltLeft"/utf8>>},
{some, <<"Alt"/utf8>>},
none,
{some, 1}}};
<<"AltRight"/utf8>> ->
{ok,
{key_data,
{some, 18},
{some, <<"AltRight"/utf8>>},
{some, <<"Alt"/utf8>>},
none,
{some, 2}}};
<<"Pause"/utf8>> ->
{ok,
{key_data,
{some, 19},
{some, <<"Pause"/utf8>>},
{some, <<"Pause"/utf8>>},
none,
none}};
<<"CapsLock"/utf8>> ->
{ok,
{key_data,
{some, 20},
{some, <<"CapsLock"/utf8>>},
{some, <<"CapsLock"/utf8>>},
none,
none}};
<<"Escape"/utf8>> ->
{ok,
{key_data,
{some, 27},
{some, <<"Escape"/utf8>>},
{some, <<"Escape"/utf8>>},
none,
none}};
<<"Convert"/utf8>> ->
{ok,
{key_data,
{some, 28},
{some, <<"Convert"/utf8>>},
{some, <<"Convert"/utf8>>},
none,
none}};
<<"NonConvert"/utf8>> ->
{ok,
{key_data,
{some, 29},
{some, <<"NonConvert"/utf8>>},
{some, <<"NonConvert"/utf8>>},
none,
none}};
<<"Space"/utf8>> ->
{ok,
{key_data,
{some, 32},
{some, <<"Space"/utf8>>},
{some, <<" "/utf8>>},
none,
none}};
<<"Numpad9"/utf8>> ->
{ok,
{key_data,
{some, 33},
{some, <<"Numpad9"/utf8>>},
{some, <<"PageUp"/utf8>>},
none,
{some, 3}}};
<<"PageUp"/utf8>> ->
{ok,
{key_data,
{some, 33},
{some, <<"PageUp"/utf8>>},
{some, <<"PageUp"/utf8>>},
none,
none}};
<<"Numpad3"/utf8>> ->
{ok,
{key_data,
{some, 34},
{some, <<"Numpad3"/utf8>>},
{some, <<"PageDown"/utf8>>},
none,
{some, 3}}};
<<"PageDown"/utf8>> ->
{ok,
{key_data,
{some, 34},
{some, <<"PageDown"/utf8>>},
{some, <<"PageDown"/utf8>>},
none,
none}};
<<"End"/utf8>> ->
{ok,
{key_data,
{some, 35},
{some, <<"End"/utf8>>},
{some, <<"End"/utf8>>},
none,
none}};
<<"Numpad1"/utf8>> ->
{ok,
{key_data,
{some, 35},
{some, <<"Numpad1"/utf8>>},
{some, <<"End"/utf8>>},
none,
{some, 3}}};
<<"Home"/utf8>> ->
{ok,
{key_data,
{some, 36},
{some, <<"Home"/utf8>>},
{some, <<"Home"/utf8>>},
none,
none}};
<<"Numpad7"/utf8>> ->
{ok,
{key_data,
{some, 36},
{some, <<"Numpad7"/utf8>>},
{some, <<"Home"/utf8>>},
none,
{some, 3}}};
<<"ArrowLeft"/utf8>> ->
{ok,
{key_data,
{some, 37},
{some, <<"ArrowLeft"/utf8>>},
{some, <<"ArrowLeft"/utf8>>},
none,
none}};
<<"Numpad4"/utf8>> ->
{ok,
{key_data,
{some, 37},
{some, <<"Numpad4"/utf8>>},
{some, <<"ArrowLeft"/utf8>>},
none,
{some, 3}}};
<<"Numpad8"/utf8>> ->
{ok,
{key_data,
{some, 38},
{some, <<"Numpad8"/utf8>>},
{some, <<"ArrowUp"/utf8>>},
none,
{some, 3}}};
<<"ArrowUp"/utf8>> ->
{ok,
{key_data,
{some, 38},
{some, <<"ArrowUp"/utf8>>},
{some, <<"ArrowUp"/utf8>>},
none,
none}};
<<"ArrowRight"/utf8>> ->
{ok,
{key_data,
{some, 39},
{some, <<"ArrowRight"/utf8>>},
{some, <<"ArrowRight"/utf8>>},
none,
none}};
<<"Numpad6"/utf8>> ->
{ok,
{key_data,
{some, 39},
{some, <<"Numpad6"/utf8>>},
{some, <<"ArrowRight"/utf8>>},
none,
{some, 3}}};
<<"Numpad2"/utf8>> ->
{ok,
{key_data,
{some, 40},
{some, <<"Numpad2"/utf8>>},
{some, <<"ArrowDown"/utf8>>},
none,
{some, 3}}};
<<"ArrowDown"/utf8>> ->
{ok,
{key_data,
{some, 40},
{some, <<"ArrowDown"/utf8>>},
{some, <<"ArrowDown"/utf8>>},
none,
none}};
<<"Select"/utf8>> ->
{ok,
{key_data,
{some, 41},
{some, <<"Select"/utf8>>},
{some, <<"Select"/utf8>>},
none,
none}};
<<"Open"/utf8>> ->
{ok,
{key_data,
{some, 43},
{some, <<"Open"/utf8>>},
{some, <<"Execute"/utf8>>},
none,
none}};
<<"PrintScreen"/utf8>> ->
{ok,
{key_data,
{some, 44},
{some, <<"PrintScreen"/utf8>>},
{some, <<"PrintScreen"/utf8>>},
none,
none}};
<<"Insert"/utf8>> ->
{ok,
{key_data,
{some, 45},
{some, <<"Insert"/utf8>>},
{some, <<"Insert"/utf8>>},
none,
none}};
<<"Numpad0"/utf8>> ->
{ok,
{key_data,
{some, 45},
{some, <<"Numpad0"/utf8>>},
{some, <<"Insert"/utf8>>},
none,
{some, 3}}};
<<"Delete"/utf8>> ->
{ok,
{key_data,
{some, 46},
{some, <<"Delete"/utf8>>},
{some, <<"Delete"/utf8>>},
none,
none}};
<<"NumpadDecimal"/utf8>> ->
{ok,
{key_data,
{some, 46},
{some, <<"NumpadDecimal"/utf8>>},
{some, <<"\\u0000"/utf8>>},
none,
{some, 3}}};
<<"Digit0"/utf8>> ->
{ok,
{key_data,
{some, 48},
{some, <<"Digit0"/utf8>>},
{some, <<"0"/utf8>>},
none,
none}};
<<"Digit1"/utf8>> ->
{ok,
{key_data,
{some, 49},
{some, <<"Digit1"/utf8>>},
{some, <<"1"/utf8>>},
none,
none}};
<<"Digit2"/utf8>> ->
{ok,
{key_data,
{some, 50},
{some, <<"Digit2"/utf8>>},
{some, <<"2"/utf8>>},
none,
none}};
<<"Digit3"/utf8>> ->
{ok,
{key_data,
{some, 51},
{some, <<"Digit3"/utf8>>},
{some, <<"3"/utf8>>},
none,
none}};
<<"Digit4"/utf8>> ->
{ok,
{key_data,
{some, 52},
{some, <<"Digit4"/utf8>>},
{some, <<"4"/utf8>>},
none,
none}};
<<"Digit5"/utf8>> ->
{ok,
{key_data,
{some, 53},
{some, <<"Digit5"/utf8>>},
{some, <<"5"/utf8>>},
none,
none}};
<<"Digit6"/utf8>> ->
{ok,
{key_data,
{some, 54},
{some, <<"Digit6"/utf8>>},
{some, <<"6"/utf8>>},
none,
none}};
<<"Digit7"/utf8>> ->
{ok,
{key_data,
{some, 55},
{some, <<"Digit7"/utf8>>},
{some, <<"7"/utf8>>},
none,
none}};
<<"Digit8"/utf8>> ->
{ok,
{key_data,
{some, 56},
{some, <<"Digit8"/utf8>>},
{some, <<"8"/utf8>>},
none,
none}};
<<"Digit9"/utf8>> ->
{ok,
{key_data,
{some, 57},
{some, <<"Digit9"/utf8>>},
{some, <<"9"/utf8>>},
none,
none}};
<<"KeyA"/utf8>> ->
{ok,
{key_data,
{some, 65},
{some, <<"KeyA"/utf8>>},
{some, <<"a"/utf8>>},
none,
none}};
<<"KeyB"/utf8>> ->
{ok,
{key_data,
{some, 66},
{some, <<"KeyB"/utf8>>},
{some, <<"b"/utf8>>},
none,
none}};
<<"KeyC"/utf8>> ->
{ok,
{key_data,
{some, 67},
{some, <<"KeyC"/utf8>>},
{some, <<"c"/utf8>>},
none,
none}};
<<"KeyD"/utf8>> ->
{ok,
{key_data,
{some, 68},
{some, <<"KeyD"/utf8>>},
{some, <<"d"/utf8>>},
none,
none}};
<<"KeyE"/utf8>> ->
{ok,
{key_data,
{some, 69},
{some, <<"KeyE"/utf8>>},
{some, <<"e"/utf8>>},
none,
none}};
<<"KeyF"/utf8>> ->
{ok,
{key_data,
{some, 70},
{some, <<"KeyF"/utf8>>},
{some, <<"f"/utf8>>},
none,
none}};
<<"KeyG"/utf8>> ->
{ok,
{key_data,
{some, 71},
{some, <<"KeyG"/utf8>>},
{some, <<"g"/utf8>>},
none,
none}};
<<"KeyH"/utf8>> ->
{ok,
{key_data,
{some, 72},
{some, <<"KeyH"/utf8>>},
{some, <<"h"/utf8>>},
none,
none}};
<<"KeyI"/utf8>> ->
{ok,
{key_data,
{some, 73},
{some, <<"KeyI"/utf8>>},
{some, <<"i"/utf8>>},
none,
none}};
<<"KeyJ"/utf8>> ->
{ok,
{key_data,
{some, 74},
{some, <<"KeyJ"/utf8>>},
{some, <<"j"/utf8>>},
none,
none}};
<<"KeyK"/utf8>> ->
{ok,
{key_data,
{some, 75},
{some, <<"KeyK"/utf8>>},
{some, <<"k"/utf8>>},
none,
none}};
<<"KeyL"/utf8>> ->
{ok,
{key_data,
{some, 76},
{some, <<"KeyL"/utf8>>},
{some, <<"l"/utf8>>},
none,
none}};
<<"KeyM"/utf8>> ->
{ok,
{key_data,
{some, 77},
{some, <<"KeyM"/utf8>>},
{some, <<"m"/utf8>>},
none,
none}};
<<"KeyN"/utf8>> ->
{ok,
{key_data,
{some, 78},
{some, <<"KeyN"/utf8>>},
{some, <<"n"/utf8>>},
none,
none}};
<<"KeyO"/utf8>> ->
{ok,
{key_data,
{some, 79},
{some, <<"KeyO"/utf8>>},
{some, <<"o"/utf8>>},
none,
none}};
<<"KeyP"/utf8>> ->
{ok,
{key_data,
{some, 80},
{some, <<"KeyP"/utf8>>},
{some, <<"p"/utf8>>},
none,
none}};
<<"KeyQ"/utf8>> ->
{ok,
{key_data,
{some, 81},
{some, <<"KeyQ"/utf8>>},
{some, <<"q"/utf8>>},
none,
none}};
<<"KeyR"/utf8>> ->
{ok,
{key_data,
{some, 82},
{some, <<"KeyR"/utf8>>},
{some, <<"r"/utf8>>},
none,
none}};
<<"KeyS"/utf8>> ->
{ok,
{key_data,
{some, 83},
{some, <<"KeyS"/utf8>>},
{some, <<"s"/utf8>>},
none,
none}};
<<"KeyT"/utf8>> ->
{ok,
{key_data,
{some, 84},
{some, <<"KeyT"/utf8>>},
{some, <<"t"/utf8>>},
none,
none}};
<<"KeyU"/utf8>> ->
{ok,
{key_data,
{some, 85},
{some, <<"KeyU"/utf8>>},
{some, <<"u"/utf8>>},
none,
none}};
<<"KeyV"/utf8>> ->
{ok,
{key_data,
{some, 86},
{some, <<"KeyV"/utf8>>},
{some, <<"v"/utf8>>},
none,
none}};
<<"KeyW"/utf8>> ->
{ok,
{key_data,
{some, 87},
{some, <<"KeyW"/utf8>>},
{some, <<"w"/utf8>>},
none,
none}};
<<"KeyX"/utf8>> ->
{ok,
{key_data,
{some, 88},
{some, <<"KeyX"/utf8>>},
{some, <<"x"/utf8>>},
none,
none}};
<<"KeyY"/utf8>> ->
{ok,
{key_data,
{some, 89},
{some, <<"KeyY"/utf8>>},
{some, <<"y"/utf8>>},
none,
none}};
<<"KeyZ"/utf8>> ->
{ok,
{key_data,
{some, 90},
{some, <<"KeyZ"/utf8>>},
{some, <<"z"/utf8>>},
none,
none}};
<<"MetaLeft"/utf8>> ->
{ok,
{key_data,
{some, 91},
{some, <<"MetaLeft"/utf8>>},
{some, <<"Meta"/utf8>>},
none,
{some, 1}}};
<<"MetaRight"/utf8>> ->
{ok,
{key_data,
{some, 92},
{some, <<"MetaRight"/utf8>>},
{some, <<"Meta"/utf8>>},
none,
{some, 2}}};
<<"ContextMenu"/utf8>> ->
{ok,
{key_data,
{some, 93},
{some, <<"ContextMenu"/utf8>>},
{some, <<"ContextMenu"/utf8>>},
none,
none}};
<<"NumpadMultiply"/utf8>> ->
{ok,
{key_data,
{some, 106},
{some, <<"NumpadMultiply"/utf8>>},
{some, <<"*"/utf8>>},
none,
{some, 3}}};
<<"NumpadAdd"/utf8>> ->
{ok,
{key_data,
{some, 107},
{some, <<"NumpadAdd"/utf8>>},
{some, <<"+"/utf8>>},
none,
{some, 3}}};
<<"NumpadSubtract"/utf8>> ->
{ok,
{key_data,
{some, 109},
{some, <<"NumpadSubtract"/utf8>>},
{some, <<"-"/utf8>>},
none,
{some, 3}}};
<<"NumpadDivide"/utf8>> ->
{ok,
{key_data,
{some, 111},
{some, <<"NumpadDivide"/utf8>>},
{some, <<"/"/utf8>>},
none,
{some, 3}}};
<<"F1"/utf8>> ->
{ok,
{key_data,
{some, 112},
{some, <<"F1"/utf8>>},
{some, <<"F1"/utf8>>},
none,
none}};
<<"F2"/utf8>> ->
{ok,
{key_data,
{some, 113},
{some, <<"F2"/utf8>>},
{some, <<"F2"/utf8>>},
none,
none}};
<<"F3"/utf8>> ->
{ok,
{key_data,
{some, 114},
{some, <<"F3"/utf8>>},
{some, <<"F3"/utf8>>},
none,
none}};
<<"F4"/utf8>> ->
{ok,
{key_data,
{some, 115},
{some, <<"F4"/utf8>>},
{some, <<"F4"/utf8>>},
none,
none}};
<<"F5"/utf8>> ->
{ok,
{key_data,
{some, 116},
{some, <<"F5"/utf8>>},
{some, <<"F5"/utf8>>},
none,
none}};
<<"F6"/utf8>> ->
{ok,
{key_data,
{some, 117},
{some, <<"F6"/utf8>>},
{some, <<"F6"/utf8>>},
none,
none}};
<<"F7"/utf8>> ->
{ok,
{key_data,
{some, 118},
{some, <<"F7"/utf8>>},
{some, <<"F7"/utf8>>},
none,
none}};
<<"F8"/utf8>> ->
{ok,
{key_data,
{some, 119},
{some, <<"F8"/utf8>>},
{some, <<"F8"/utf8>>},
none,
none}};
<<"F9"/utf8>> ->
{ok,
{key_data,
{some, 120},
{some, <<"F9"/utf8>>},
{some, <<"F9"/utf8>>},
none,
none}};
<<"F10"/utf8>> ->
{ok,
{key_data,
{some, 121},
{some, <<"F10"/utf8>>},
{some, <<"F10"/utf8>>},
none,
none}};
<<"F11"/utf8>> ->
{ok,
{key_data,
{some, 122},
{some, <<"F11"/utf8>>},
{some, <<"F11"/utf8>>},
none,
none}};
<<"F12"/utf8>> ->
{ok,
{key_data,
{some, 123},
{some, <<"F12"/utf8>>},
{some, <<"F12"/utf8>>},
none,
none}};
<<"F13"/utf8>> ->
{ok,
{key_data,
{some, 124},
{some, <<"F13"/utf8>>},
{some, <<"F13"/utf8>>},
none,
none}};
<<"F14"/utf8>> ->
{ok,
{key_data,
{some, 125},
{some, <<"F14"/utf8>>},
{some, <<"F14"/utf8>>},
none,
none}};
<<"F15"/utf8>> ->
{ok,
{key_data,
{some, 126},
{some, <<"F15"/utf8>>},
{some, <<"F15"/utf8>>},
none,
none}};
<<"F16"/utf8>> ->
{ok,
{key_data,
{some, 127},
{some, <<"F16"/utf8>>},
{some, <<"F16"/utf8>>},
none,
none}};
<<"F17"/utf8>> ->
{ok,
{key_data,
{some, 128},
{some, <<"F17"/utf8>>},
{some, <<"F17"/utf8>>},
none,
none}};
<<"F18"/utf8>> ->
{ok,
{key_data,
{some, 129},
{some, <<"F18"/utf8>>},
{some, <<"F18"/utf8>>},
none,
none}};
<<"F19"/utf8>> ->
{ok,
{key_data,
{some, 130},
{some, <<"F19"/utf8>>},
{some, <<"F19"/utf8>>},
none,
none}};
<<"F20"/utf8>> ->
{ok,
{key_data,
{some, 131},
{some, <<"F20"/utf8>>},
{some, <<"F20"/utf8>>},
none,
none}};
<<"F21"/utf8>> ->
{ok,
{key_data,
{some, 132},
{some, <<"F21"/utf8>>},
{some, <<"F21"/utf8>>},
none,
none}};
<<"F22"/utf8>> ->
{ok,
{key_data,
{some, 133},
{some, <<"F22"/utf8>>},
{some, <<"F22"/utf8>>},
none,
none}};
<<"F23"/utf8>> ->
{ok,
{key_data,
{some, 134},
{some, <<"F23"/utf8>>},
{some, <<"F23"/utf8>>},
none,
none}};
<<"F24"/utf8>> ->
{ok,
{key_data,
{some, 135},
{some, <<"F24"/utf8>>},
{some, <<"F24"/utf8>>},
none,
none}};
<<"NumLock"/utf8>> ->
{ok,
{key_data,
{some, 144},
{some, <<"NumLock"/utf8>>},
{some, <<"NumLock"/utf8>>},
none,
none}};
<<"ScrollLock"/utf8>> ->
{ok,
{key_data,
{some, 145},
{some, <<"ScrollLock"/utf8>>},
{some, <<"ScrollLock"/utf8>>},
none,
none}};
<<"AudioVolumeMute"/utf8>> ->
{ok,
{key_data,
{some, 173},
{some, <<"AudioVolumeMute"/utf8>>},
{some, <<"AudioVolumeMute"/utf8>>},
none,
none}};
<<"AudioVolumeDown"/utf8>> ->
{ok,
{key_data,
{some, 174},
{some, <<"AudioVolumeDown"/utf8>>},
{some, <<"AudioVolumeDown"/utf8>>},
none,
none}};
<<"AudioVolumeUp"/utf8>> ->
{ok,
{key_data,
{some, 175},
{some, <<"AudioVolumeUp"/utf8>>},
{some, <<"AudioVolumeUp"/utf8>>},
none,
none}};
<<"MediaTrackNext"/utf8>> ->
{ok,
{key_data,
{some, 176},
{some, <<"MediaTrackNext"/utf8>>},
{some, <<"MediaTrackNext"/utf8>>},
none,
none}};
<<"MediaTrackPrevious"/utf8>> ->
{ok,
{key_data,
{some, 177},
{some, <<"MediaTrackPrevious"/utf8>>},
{some, <<"MediaTrackPrevious"/utf8>>},
none,
none}};
<<"MediaStop"/utf8>> ->
{ok,
{key_data,
{some, 178},
{some, <<"MediaStop"/utf8>>},
{some, <<"MediaStop"/utf8>>},
none,
none}};
<<"MediaPlayPause"/utf8>> ->
{ok,
{key_data,
{some, 179},
{some, <<"MediaPlayPause"/utf8>>},
{some, <<"MediaPlayPause"/utf8>>},
none,
none}};
<<"Semicolon"/utf8>> ->
{ok,
{key_data,
{some, 186},
{some, <<"Semicolon"/utf8>>},
{some, <<";"/utf8>>},
none,
none}};
<<"Equal"/utf8>> ->
{ok,
{key_data,
{some, 187},
{some, <<"Equal"/utf8>>},
{some, <<"="/utf8>>},
none,
none}};
<<"NumpadEqual"/utf8>> ->
{ok,
{key_data,
{some, 187},
{some, <<"NumpadEqual"/utf8>>},
{some, <<"="/utf8>>},
none,
{some, 3}}};
<<"Comma"/utf8>> ->
{ok,
{key_data,
{some, 188},
{some, <<"Comma"/utf8>>},
{some, <<","/utf8>>},
none,
none}};
<<"Minus"/utf8>> ->
{ok,
{key_data,
{some, 189},
{some, <<"Minus"/utf8>>},
{some, <<"-"/utf8>>},
none,
none}};
<<"Period"/utf8>> ->
{ok,
{key_data,
{some, 190},
{some, <<"Period"/utf8>>},
{some, <<"."/utf8>>},
none,
none}};
<<"Slash"/utf8>> ->
{ok,
{key_data,
{some, 191},
{some, <<"Slash"/utf8>>},
{some, <<"/"/utf8>>},
none,
none}};
<<"Backquote"/utf8>> ->
{ok,
{key_data,
{some, 192},
{some, <<"Backquote"/utf8>>},
{some, <<"`"/utf8>>},
none,
none}};
<<"BracketLeft"/utf8>> ->
{ok,
{key_data,
{some, 219},
{some, <<"BracketLeft"/utf8>>},
{some, <<"["/utf8>>},
none,
none}};
<<"Backslash"/utf8>> ->
{ok,
{key_data,
{some, 220},
{some, <<"Backslash"/utf8>>},
{some, <<"\\"/utf8>>},
none,
none}};
<<"BracketRight"/utf8>> ->
{ok,
{key_data,
{some, 221},
{some, <<"BracketRight"/utf8>>},
{some, <<"]"/utf8>>},
none,
none}};
<<"Quote"/utf8>> ->
{ok,
{key_data,
{some, 222},
{some, <<"Quote"/utf8>>},
{some, <<"'"/utf8>>},
none,
none}};
<<"AltGraph"/utf8>> ->
{ok,
{key_data,
{some, 225},
{some, <<"AltGraph"/utf8>>},
{some, <<"AltGraph"/utf8>>},
none,
none}};
<<"Props"/utf8>> ->
{ok,
{key_data,
{some, 247},
{some, <<"Props"/utf8>>},
{some, <<"CrSel"/utf8>>},
none,
none}};
<<"Cancel"/utf8>> ->
{ok,
{key_data,
{some, 3},
{some, <<"Abort"/utf8>>},
{some, <<"Cancel"/utf8>>},
none,
none}};
<<"Clear"/utf8>> ->
{ok,
{key_data,
{some, 12},
{some, <<"Numpad5"/utf8>>},
{some, <<"Clear"/utf8>>},
none,
{some, 3}}};
<<"Shift"/utf8>> ->
{ok,
{key_data,
{some, 16},
{some, <<"ShiftLeft"/utf8>>},
{some, <<"Shift"/utf8>>},
none,
{some, 1}}};
<<"Control"/utf8>> ->
{ok,
{key_data,
{some, 17},
{some, <<"ControlLeft"/utf8>>},
{some, <<"Control"/utf8>>},
none,
{some, 1}}};
<<"Alt"/utf8>> ->
{ok,
{key_data,
{some, 18},
{some, <<"AltLeft"/utf8>>},
{some, <<"Alt"/utf8>>},
none,
{some, 1}}};
<<"Accept"/utf8>> ->
{ok,
{key_data,
{some, 30},
none,
{some, <<"Accept"/utf8>>},
none,
none}};
<<"ModeChange"/utf8>> ->
{ok,
{key_data,
{some, 31},
none,
{some, <<"ModeChange"/utf8>>},
none,
none}};
<<" "/utf8>> ->
{ok,
{key_data,
{some, 32},
{some, <<"Space"/utf8>>},
{some, <<" "/utf8>>},
none,
none}};
<<"Print"/utf8>> ->
{ok,
{key_data,
{some, 42},
none,
{some, <<"Print"/utf8>>},
none,
none}};
<<"Execute"/utf8>> ->
{ok,
{key_data,
{some, 43},
{some, <<"Open"/utf8>>},
{some, <<"Execute"/utf8>>},
none,
none}};
<<"\\u0000"/utf8>> ->
{ok,
{key_data,
{some, 46},
{some, <<"NumpadDecimal"/utf8>>},
{some, <<"\\u0000"/utf8>>},
none,
{some, 3}}};
<<"a"/utf8>> ->
{ok,
{key_data,
{some, 65},
{some, <<"KeyA"/utf8>>},
{some, <<"a"/utf8>>},
none,
none}};
<<"b"/utf8>> ->
{ok,
{key_data,
{some, 66},
{some, <<"KeyB"/utf8>>},
{some, <<"b"/utf8>>},
none,
none}};
<<"c"/utf8>> ->
{ok,
{key_data,
{some, 67},
{some, <<"KeyC"/utf8>>},
{some, <<"c"/utf8>>},
none,
none}};
<<"d"/utf8>> ->
{ok,
{key_data,
{some, 68},
{some, <<"KeyD"/utf8>>},
{some, <<"d"/utf8>>},
none,
none}};
<<"e"/utf8>> ->
{ok,
{key_data,
{some, 69},
{some, <<"KeyE"/utf8>>},
{some, <<"e"/utf8>>},
none,
none}};
<<"f"/utf8>> ->
{ok,
{key_data,
{some, 70},
{some, <<"KeyF"/utf8>>},
{some, <<"f"/utf8>>},
none,
none}};
<<"g"/utf8>> ->
{ok,
{key_data,
{some, 71},
{some, <<"KeyG"/utf8>>},
{some, <<"g"/utf8>>},
none,
none}};
<<"h"/utf8>> ->
{ok,
{key_data,
{some, 72},
{some, <<"KeyH"/utf8>>},
{some, <<"h"/utf8>>},
none,
none}};
<<"i"/utf8>> ->
{ok,
{key_data,
{some, 73},
{some, <<"KeyI"/utf8>>},
{some, <<"i"/utf8>>},
none,
none}};
<<"j"/utf8>> ->
{ok,
{key_data,
{some, 74},
{some, <<"KeyJ"/utf8>>},
{some, <<"j"/utf8>>},
none,
none}};
<<"k"/utf8>> ->
{ok,
{key_data,
{some, 75},
{some, <<"KeyK"/utf8>>},
{some, <<"k"/utf8>>},
none,
none}};
<<"l"/utf8>> ->
{ok,
{key_data,
{some, 76},
{some, <<"KeyL"/utf8>>},
{some, <<"l"/utf8>>},
none,
none}};
<<"m"/utf8>> ->
{ok,
{key_data,
{some, 77},
{some, <<"KeyM"/utf8>>},
{some, <<"m"/utf8>>},
none,
none}};
<<"n"/utf8>> ->
{ok,
{key_data,
{some, 78},
{some, <<"KeyN"/utf8>>},
{some, <<"n"/utf8>>},
none,
none}};
<<"o"/utf8>> ->
{ok,
{key_data,
{some, 79},
{some, <<"KeyO"/utf8>>},
{some, <<"o"/utf8>>},
none,
none}};
<<"p"/utf8>> ->
{ok,
{key_data,
{some, 80},
{some, <<"KeyP"/utf8>>},
{some, <<"p"/utf8>>},
none,
none}};
<<"q"/utf8>> ->
{ok,
{key_data,
{some, 81},
{some, <<"KeyQ"/utf8>>},
{some, <<"q"/utf8>>},
none,
none}};
<<"r"/utf8>> ->
{ok,
{key_data,
{some, 82},
{some, <<"KeyR"/utf8>>},
{some, <<"r"/utf8>>},
none,
none}};
<<"s"/utf8>> ->
{ok,
{key_data,
{some, 83},
{some, <<"KeyS"/utf8>>},
{some, <<"s"/utf8>>},
none,
none}};
<<"t"/utf8>> ->
{ok,
{key_data,
{some, 84},
{some, <<"KeyT"/utf8>>},
{some, <<"t"/utf8>>},
none,
none}};
<<"u"/utf8>> ->
{ok,
{key_data,
{some, 85},
{some, <<"KeyU"/utf8>>},
{some, <<"u"/utf8>>},
none,
none}};
<<"v"/utf8>> ->
{ok,
{key_data,
{some, 86},
{some, <<"KeyV"/utf8>>},
{some, <<"v"/utf8>>},
none,
none}};
<<"w"/utf8>> ->
{ok,
{key_data,
{some, 87},
{some, <<"KeyW"/utf8>>},
{some, <<"w"/utf8>>},
none,
none}};
<<"x"/utf8>> ->
{ok,
{key_data,
{some, 88},
{some, <<"KeyX"/utf8>>},
{some, <<"x"/utf8>>},
none,
none}};
<<"y"/utf8>> ->
{ok,
{key_data,
{some, 89},
{some, <<"KeyY"/utf8>>},
{some, <<"y"/utf8>>},
none,
none}};
<<"z"/utf8>> ->
{ok,
{key_data,
{some, 90},
{some, <<"KeyZ"/utf8>>},
{some, <<"z"/utf8>>},
none,
none}};
<<"Meta"/utf8>> ->
{ok,
{key_data,
{some, 91},
{some, <<"MetaLeft"/utf8>>},
{some, <<"Meta"/utf8>>},
none,
{some, 1}}};
<<"*"/utf8>> ->
{ok,
{key_data,
{some, 106},
{some, <<"NumpadMultiply"/utf8>>},
{some, <<"*"/utf8>>},
none,
{some, 3}}};
<<"+"/utf8>> ->
{ok,
{key_data,
{some, 107},
{some, <<"NumpadAdd"/utf8>>},
{some, <<"+"/utf8>>},
none,
{some, 3}}};
<<"-"/utf8>> ->
{ok,
{key_data,
{some, 109},
{some, <<"NumpadSubtract"/utf8>>},
{some, <<"-"/utf8>>},
none,
{some, 3}}};
<<"/"/utf8>> ->
{ok,
{key_data,
{some, 111},
{some, <<"NumpadDivide"/utf8>>},
{some, <<"/"/utf8>>},
none,
{some, 3}}};
<<";"/utf8>> ->
{ok,
{key_data,
{some, 186},
{some, <<"Semicolon"/utf8>>},
{some, <<";"/utf8>>},
none,
none}};
<<"="/utf8>> ->
{ok,
{key_data,
{some, 187},
{some, <<"Equal"/utf8>>},
{some, <<"="/utf8>>},
none,
none}};
<<","/utf8>> ->
{ok,
{key_data,
{some, 188},
{some, <<"Comma"/utf8>>},
{some, <<","/utf8>>},
none,
none}};
<<"."/utf8>> ->
{ok,
{key_data,
{some, 190},
{some, <<"Period"/utf8>>},
{some, <<"."/utf8>>},
none,
none}};
<<"`"/utf8>> ->
{ok,
{key_data,
{some, 192},
{some, <<"Backquote"/utf8>>},
{some, <<"`"/utf8>>},
none,
none}};
<<"["/utf8>> ->
{ok,
{key_data,
{some, 219},
{some, <<"BracketLeft"/utf8>>},
{some, <<"["/utf8>>},
none,
none}};
<<"\\"/utf8>> ->
{ok,
{key_data,
{some, 220},
{some, <<"Backslash"/utf8>>},
{some, <<"\\"/utf8>>},
none,
none}};
<<"]"/utf8>> ->
{ok,
{key_data,
{some, 221},
{some, <<"BracketRight"/utf8>>},
{some, <<"]"/utf8>>},
none,
none}};
<<"'"/utf8>> ->
{ok,
{key_data,
{some, 222},
{some, <<"Quote"/utf8>>},
{some, <<"'"/utf8>>},
none,
none}};
<<"Attn"/utf8>> ->
{ok,
{key_data,
{some, 246},
none,
{some, <<"Attn"/utf8>>},
none,
none}};
<<"CrSel"/utf8>> ->
{ok,
{key_data,
{some, 247},
{some, <<"Props"/utf8>>},
{some, <<"CrSel"/utf8>>},
none,
none}};
<<"ExSel"/utf8>> ->
{ok,
{key_data,
{some, 248},
none,
{some, <<"ExSel"/utf8>>},
none,
none}};
<<"EraseEof"/utf8>> ->
{ok,
{key_data,
{some, 249},
none,
{some, <<"EraseEof"/utf8>>},
none,
none}};
<<"Play"/utf8>> ->
{ok,
{key_data,
{some, 250},
none,
{some, <<"Play"/utf8>>},
none,
none}};
<<"ZoomOut"/utf8>> ->
{ok,
{key_data,
{some, 251},
none,
{some, <<"ZoomOut"/utf8>>},
none,
none}};
<<")"/utf8>> ->
{ok,
{key_data,
{some, 48},
{some, <<"Digit0"/utf8>>},
{some, <<")"/utf8>>},
none,
none}};
<<"!"/utf8>> ->
{ok,
{key_data,
{some, 49},
{some, <<"Digit1"/utf8>>},
{some, <<"!"/utf8>>},
none,
none}};
<<"@"/utf8>> ->
{ok,
{key_data,
{some, 50},
{some, <<"Digit2"/utf8>>},
{some, <<"@"/utf8>>},
none,
none}};
<<"#"/utf8>> ->
{ok,
{key_data,
{some, 51},
{some, <<"Digit3"/utf8>>},
{some, <<"#"/utf8>>},
none,
none}};
<<"$"/utf8>> ->
{ok,
{key_data,
{some, 52},
{some, <<"Digit4"/utf8>>},
{some, <<"$"/utf8>>},
none,
none}};
<<"%"/utf8>> ->
{ok,
{key_data,
{some, 53},
{some, <<"Digit5"/utf8>>},
{some, <<"%"/utf8>>},
none,
none}};
<<"^"/utf8>> ->
{ok,
{key_data,
{some, 54},
{some, <<"Digit6"/utf8>>},
{some, <<"^"/utf8>>},
none,
none}};
<<"&"/utf8>> ->
{ok,
{key_data,
{some, 55},
{some, <<"Digit7"/utf8>>},
{some, <<"&"/utf8>>},
none,
none}};
<<"("/utf8>> ->
{ok,
{key_data,
{some, 57},
{some, <<"Digit9"/utf8>>},
{some, <<"("/utf8>>},
none,
none}};
<<"A"/utf8>> ->
{ok,
{key_data,
{some, 65},
{some, <<"KeyA"/utf8>>},
{some, <<"A"/utf8>>},
none,
none}};
<<"B"/utf8>> ->
{ok,
{key_data,
{some, 66},
{some, <<"KeyB"/utf8>>},
{some, <<"B"/utf8>>},
none,
none}};
<<"C"/utf8>> ->
{ok,
{key_data,
{some, 67},
{some, <<"KeyC"/utf8>>},
{some, <<"C"/utf8>>},
none,
none}};
<<"D"/utf8>> ->
{ok,
{key_data,
{some, 68},
{some, <<"KeyD"/utf8>>},
{some, <<"D"/utf8>>},
none,
none}};
<<"E"/utf8>> ->
{ok,
{key_data,
{some, 69},
{some, <<"KeyE"/utf8>>},
{some, <<"E"/utf8>>},
none,
none}};
<<"F"/utf8>> ->
{ok,
{key_data,
{some, 70},
{some, <<"KeyF"/utf8>>},
{some, <<"F"/utf8>>},
none,
none}};
<<"G"/utf8>> ->
{ok,
{key_data,
{some, 71},
{some, <<"KeyG"/utf8>>},
{some, <<"G"/utf8>>},
none,
none}};
<<"H"/utf8>> ->
{ok,
{key_data,
{some, 72},
{some, <<"KeyH"/utf8>>},
{some, <<"H"/utf8>>},
none,
none}};
<<"I"/utf8>> ->
{ok,
{key_data,
{some, 73},
{some, <<"KeyI"/utf8>>},
{some, <<"I"/utf8>>},
none,
none}};
<<"J"/utf8>> ->
{ok,
{key_data,
{some, 74},
{some, <<"KeyJ"/utf8>>},
{some, <<"J"/utf8>>},
none,
none}};
<<"K"/utf8>> ->
{ok,
{key_data,
{some, 75},
{some, <<"KeyK"/utf8>>},
{some, <<"K"/utf8>>},
none,
none}};
<<"L"/utf8>> ->
{ok,
{key_data,
{some, 76},
{some, <<"KeyL"/utf8>>},
{some, <<"L"/utf8>>},
none,
none}};
<<"M"/utf8>> ->
{ok,
{key_data,
{some, 77},
{some, <<"KeyM"/utf8>>},
{some, <<"M"/utf8>>},
none,
none}};
<<"N"/utf8>> ->
{ok,
{key_data,
{some, 78},
{some, <<"KeyN"/utf8>>},
{some, <<"N"/utf8>>},
none,
none}};
<<"O"/utf8>> ->
{ok,
{key_data,
{some, 79},
{some, <<"KeyO"/utf8>>},
{some, <<"O"/utf8>>},
none,
none}};
<<"P"/utf8>> ->
{ok,
{key_data,
{some, 80},
{some, <<"KeyP"/utf8>>},
{some, <<"P"/utf8>>},
none,
none}};
<<"Q"/utf8>> ->
{ok,
{key_data,
{some, 81},
{some, <<"KeyQ"/utf8>>},
{some, <<"Q"/utf8>>},
none,
none}};
<<"R"/utf8>> ->
{ok,
{key_data,
{some, 82},
{some, <<"KeyR"/utf8>>},
{some, <<"R"/utf8>>},
none,
none}};
<<"S"/utf8>> ->
{ok,
{key_data,
{some, 83},
{some, <<"KeyS"/utf8>>},
{some, <<"S"/utf8>>},
none,
none}};
<<"T"/utf8>> ->
{ok,
{key_data,
{some, 84},
{some, <<"KeyT"/utf8>>},
{some, <<"T"/utf8>>},
none,
none}};
<<"U"/utf8>> ->
{ok,
{key_data,
{some, 85},
{some, <<"KeyU"/utf8>>},
{some, <<"U"/utf8>>},
none,
none}};
<<"V"/utf8>> ->
{ok,
{key_data,
{some, 86},
{some, <<"KeyV"/utf8>>},
{some, <<"V"/utf8>>},
none,
none}};
<<"W"/utf8>> ->
{ok,
{key_data,
{some, 87},
{some, <<"KeyW"/utf8>>},
{some, <<"W"/utf8>>},
none,
none}};
<<"X"/utf8>> ->
{ok,
{key_data,
{some, 88},
{some, <<"KeyX"/utf8>>},
{some, <<"X"/utf8>>},
none,
none}};
<<"Y"/utf8>> ->
{ok,
{key_data,
{some, 89},
{some, <<"KeyY"/utf8>>},
{some, <<"Y"/utf8>>},
none,
none}};
<<"Z"/utf8>> ->
{ok,
{key_data,
{some, 90},
{some, <<"KeyZ"/utf8>>},
{some, <<"Z"/utf8>>},
none,
none}};
<<":"/utf8>> ->
{ok,
{key_data,
{some, 186},
{some, <<"Semicolon"/utf8>>},
{some, <<":"/utf8>>},
none,
none}};
<<"<"/utf8>> ->
{ok,
{key_data,
{some, 188},
{some, <<"Comma"/utf8>>},
{some, <<"<"/utf8>>},
none,
none}};
<<"_"/utf8>> ->
{ok,
{key_data,
{some, 189},
{some, <<"Minus"/utf8>>},
{some, <<"_"/utf8>>},
none,
none}};
<<">"/utf8>> ->
{ok,
{key_data,
{some, 190},
{some, <<"Period"/utf8>>},
{some, <<">"/utf8>>},
none,
none}};
<<"?"/utf8>> ->
{ok,
{key_data,
{some, 191},
{some, <<"Slash"/utf8>>},
{some, <<"?"/utf8>>},
none,
none}};
<<"~"/utf8>> ->
{ok,
{key_data,
{some, 192},
{some, <<"Backquote"/utf8>>},
{some, <<"~"/utf8>>},
none,
none}};
<<"{"/utf8>> ->
{ok,
{key_data,
{some, 219},
{some, <<"BracketLeft"/utf8>>},
{some, <<"{"/utf8>>},
none,
none}};
<<"|"/utf8>> ->
{ok,
{key_data,
{some, 220},
{some, <<"Backslash"/utf8>>},
{some, <<"|"/utf8>>},
none,
none}};
<<"}"/utf8>> ->
{ok,
{key_data,
{some, 221},
{some, <<"BracketRight"/utf8>>},
{some, <<"}"/utf8>>},
none,
none}};
<<"\""/utf8>> ->
{ok,
{key_data,
{some, 222},
{some, <<"Quote"/utf8>>},
{some, <<"\""/utf8>>},
none,
none}};
<<"SoftLeft"/utf8>> ->
{ok,
{key_data,
none,
{some, <<"SoftLeft"/utf8>>},
{some, <<"SoftLeft"/utf8>>},
none,
{some, 4}}};
<<"SoftRight"/utf8>> ->
{ok,
{key_data,
none,
{some, <<"SoftRight"/utf8>>},
{some, <<"SoftRight"/utf8>>},
none,
{some, 4}}};
<<"Camera"/utf8>> ->
{ok,
{key_data,
{some, 44},
{some, <<"Camera"/utf8>>},
{some, <<"Camera"/utf8>>},
none,
{some, 4}}};
<<"Call"/utf8>> ->
{ok,
{key_data,
none,
{some, <<"Call"/utf8>>},
{some, <<"Call"/utf8>>},
none,
{some, 4}}};
<<"EndCall"/utf8>> ->
{ok,
{key_data,
{some, 95},
{some, <<"EndCall"/utf8>>},
{some, <<"EndCall"/utf8>>},
none,
{some, 4}}};
<<"VolumeDown"/utf8>> ->
{ok,
{key_data,
{some, 182},
{some, <<"VolumeDown"/utf8>>},
{some, <<"VolumeDown"/utf8>>},
none,
{some, 4}}};
<<"VolumeUp"/utf8>> ->
{ok,
{key_data,
{some, 183},
{some, <<"VolumeUp"/utf8>>},
{some, <<"VolumeUp"/utf8>>},
none,
{some, 4}}};
_ ->
{error, nil}
end.