// NOTE: BasedOn
// NOTE: Pulled XK_MISCELLANY and XK_LATIN1 only.
package X11
// Done in nvim via:
// TitleCase to Ada_Case substitution: s/\(_.*\)\(\w\)\([A-K]\)/\1\2_\3/ge
// #define macro to Odin constant macro: qavelxve[run substitution]elcw :: fxlvegU/#defineq
// Later, after deciding to go the enum route: qadf_elct0 = A,/XK_q
Key_Code :: enum u16 {
// #ifdef XK_MISCELLANY
Back_Space = 0xFF08,
Tab = 0xFF09,
Linefeed = 0xFF0A,
Clear = 0xFF0B,
Return = 0xFF0D,
Pause = 0xFF13,
Scroll_Lock = 0xFF14,
Sys_Req = 0xFF15,
Escape = 0xFF1B,
Delete = 0xFFFF,
Multi_Key = 0xFF20,
Codeinput = 0xFF37,
Single_Candidate = 0xFF3C,
Multiple_Candidate = 0xFF3D,
Previous_Candidate = 0xFF3E,
Kanji = 0xFF21,
Muhenkan = 0xFF22,
Henkan_Mode = 0xFF23,
Henkan = 0xFF23,
Romaji = 0xFF24,
Hiragana = 0xFF25,
Katakana = 0xFF26,
Hiragana_Katakana = 0xFF27,
Zenkaku = 0xFF28,
Hankaku = 0xFF29,
Zenkaku_Hankaku = 0xFF2A,
Touroku = 0xFF2B,
Massyo = 0xFF2C,
Kana_Lock = 0xFF2D,
Kana_Shift = 0xFF2E,
Eisu_Shift = 0xFF2F,
Eisu_Toggle = 0xFF30,
Kanji_Bangou = 0xFF37,
Zen_Koho = 0xFF3D,
Mae_Koho = 0xFF3E,
Home = 0xFF50,
Left = 0xFF51,
Up = 0xFF52,
Right = 0xFF53,
Down = 0xFF54,
Prior = 0xFF55,
Page_Up = 0xFF55,
Next = 0xFF56,
Page_Down = 0xFF56,
End = 0xFF57,
Begin = 0xFF58,
Select = 0xFF60,
Print = 0xFF61,
Execute = 0xFF62,
Insert = 0xFF63,
Undo = 0xFF65,
Redo = 0xFF66,
Menu = 0xFF67,
Find = 0xFF68,
Cancel = 0xFF69,
Help = 0xFF6A,
Break = 0xFF6B,
Mode_Switch = 0xFF7E,
Script_Switch = 0xFF7E,
Num_Lock = 0xFF7F,
KP_Space = 0xFF80,
KP_Tab = 0xFF89,
KP_Enter = 0xFF8D,
KP_F1 = 0xFF91,
KP_F2 = 0xFF92,
KP_F3 = 0xFF93,
KP_F4 = 0xFF94,
KP_Home = 0xFF95,
KP_Left = 0xFF96,
KP_Up = 0xFF97,
KP_Right = 0xFF98,
KP_Down = 0xFF99,
KP_Prior = 0xFF9A,
KP_Page_Up = 0xFF9A,
KP_Next = 0xFF9B,
KP_Page_Down = 0xFF9B,
KP_End = 0xFF9C,
KP_Begin = 0xFF9D,
KP_Insert = 0xFF9E,
KP_Delete = 0xFF9F,
KP_Equal = 0xFFBD,
KP_Multiply = 0xFFAA,
KP_Add = 0xFFAB,
KP_Separator = 0xFFAC,
KP_Subtract = 0xFFAD,
KP_Decimal = 0xFFAE,
KP_Divide = 0xFFAF,
KP_0 = 0xFFB0,
KP_1 = 0xFFB1,
KP_2 = 0xFFB2,
KP_3 = 0xFFB3,
KP_4 = 0xFFB4,
KP_5 = 0xFFB5,
KP_6 = 0xFFB6,
KP_7 = 0xFFB7,
KP_8 = 0xFFB8,
KP_9 = 0xFFB9,
F1 = 0xFFBE,
F2 = 0xFFBF,
F3 = 0xFFC0,
F4 = 0xFFC1,
F5 = 0xFFC2,
F6 = 0xFFC3,
F7 = 0xFFC4,
F8 = 0xFFC5,
F9 = 0xFFC6,
F10 = 0xFFC7,
F11 = 0xFFC8,
L1 = 0xFFC8,
F12 = 0xFFC9,
L2 = 0xFFC9,
F13 = 0xFFCA,
L3 = 0xFFCA,
F14 = 0xFFCB,
L4 = 0xFFCB,
F15 = 0xFFCC,
L5 = 0xFFCC,
F16 = 0xFFCD,
L6 = 0xFFCD,
F17 = 0xFFCE,
L7 = 0xFFCE,
F18 = 0xFFCF,
L8 = 0xFFCF,
F19 = 0xFFD0,
L9 = 0xFFD0,
F20 = 0xFFD1,
L10 = 0xFFD1,
F21 = 0xFFD2,
R1 = 0xFFD2,
F22 = 0xFFD3,
R2 = 0xFFD3,
F23 = 0xFFD4,
R3 = 0xFFD4,
F24 = 0xFFD5,
R4 = 0xFFD5,
F25 = 0xFFD6,
R5 = 0xFFD6,
F26 = 0xFFD7,
R6 = 0xFFD7,
F27 = 0xFFD8,
R7 = 0xFFD8,
F28 = 0xFFD9,
R8 = 0xFFD9,
F29 = 0xFFDA,
R9 = 0xFFDA,
F30 = 0xFFDB,
R10 = 0xFFDB,
F31 = 0xFFDC,
R11 = 0xFFDC,
F32 = 0xFFDD,
R12 = 0xFFDD,
F33 = 0xFFDE,
R13 = 0xFFDE,
F34 = 0xFFDF,
R14 = 0xFFDF,
F35 = 0xFFE0,
R15 = 0xFFE0,
Shift_L = 0xFFE1,
Shift_R = 0xFFE2,
Control_L = 0xFFE3,
Control_R = 0xFFE4,
Caps_Lock = 0xFFE5,
Shift_Lock = 0xFFE6,
Meta_L = 0xFFE7,
Meta_R = 0xFFE8,
Alt_L = 0xFFE9,
Alt_R = 0xFFEA,
Super_L = 0xFFEB,
Super_R = 0xFFEC,
Hyper_L = 0xFFED,
Hyper_R = 0xFFEE,
// #endif MISCELLANY
// #ifdef XK_LATIN1
Space = 0x0020,
Exclam = 0x0021,
Quotedbl = 0x0022,
Numbersign = 0x0023,
Dollar = 0x0024,
Percent = 0x0025,
Ampersand = 0x0026,
Apostrophe = 0x0027,
Quoteright = 0x0027,
Parenleft = 0x0028,
Parenright = 0x0029,
Asterisk = 0x002A,
Plus = 0x002B,
Comma = 0x002C,
Minus = 0x002D,
Period = 0x002E,
Slash = 0x002F,
Num0 = 0x0030,
Num1 = 0x0031,
Num2 = 0x0032,
Num3 = 0x0033,
Num4 = 0x0034,
Num5 = 0x0035,
Num6 = 0x0036,
Num7 = 0x0037,
Num8 = 0x0038,
Num9 = 0x0039,
Colon = 0x003A,
Semicolon = 0x003B,
Less = 0x003C,
Equal = 0x003D,
Greater = 0x003E,
Question = 0x003F,
At = 0x0040,
A = 0x0041,
B = 0x0042,
C = 0x0043,
D = 0x0044,
E = 0x0045,
F = 0x0046,
G = 0x0047,
H = 0x0048,
I = 0x0049,
J = 0x004A,
K = 0x004B,
L = 0x004C,
M = 0x004D,
N = 0x004E,
O = 0x004F,
P = 0x0050,
Q = 0x0051,
R = 0x0052,
S = 0x0053,
T = 0x0054,
U = 0x0055,
V = 0x0056,
W = 0x0057,
X = 0x0058,
Y = 0x0059,
Z = 0x005A,
Bracketleft = 0x005B,
Backslash = 0x005C,
Bracketright = 0x005D,
Asciicircum = 0x005E,
Underscore = 0x005F,
Grave = 0x0060,
Quoteleft = 0x0060,
a = 0x0061,
b = 0x0062,
c = 0x0063,
d = 0x0064,
e = 0x0065,
f = 0x0066,
g = 0x0067,
h = 0x0068,
i = 0x0069,
j = 0x006A,
k = 0x006B,
l = 0x006C,
m = 0x006D,
n = 0x006E,
o = 0x006F,
p = 0x0070,
q = 0x0071,
r = 0x0072,
s = 0x0073,
t = 0x0074,
u = 0x0075,
v = 0x0076,
w = 0x0077,
x = 0x0078,
y = 0x0079,
z = 0x007A,
Braceleft = 0x007B,
Bar = 0x007C,
Braceright = 0x007D,
Asciitilde = 0x007E,
Nobreakspace = 0x00A0,
Exclamdown = 0x00A1,
Cent = 0x00A2,
Sterling = 0x00A3,
Currency = 0x00A4,
Yen = 0x00A5,
Brokenbar = 0x00A6,
Section = 0x00A7,
Diaeresis = 0x00A8,
Copyright = 0x00A9,
Ordfeminine = 0x00AA,
Guillemotleft = 0x00AB,
Notsign = 0x00AC,
Hyphen = 0x00AD,
Registered = 0x00AE,
Macron = 0x00AF,
Degree = 0x00B0,
Plusminus = 0x00B1,
Twosuperior = 0x00B2,
Threesuperior = 0x00B3,
Acute = 0x00B4,
Mu = 0x00B5,
Paragraph = 0x00B6,
Periodcentered = 0x00B7,
Cedilla = 0x00B8,
Onesuperior = 0x00B9,
Masculine = 0x00BA,
Guillemotright = 0x00BB,
Onequarter = 0x00BC,
Onehalf = 0x00BD,
Threequarters = 0x00BE,
Questiondown = 0x00BF,
Agrave = 0x00C0,
Aacute = 0x00C1,
Acircumflex = 0x00C2,
Atilde = 0x00C3,
Adiaeresis = 0x00C4,
Aring = 0x00C5,
A_E = 0x00C6,
Ccedilla = 0x00C7,
Egrave = 0x00C8,
Eacute = 0x00C9,
Ecircumflex = 0x00CA,
Ediaeresis = 0x00CB,
Igrave = 0x00CC,
Iacute = 0x00CD,
Icircumflex = 0x00CE,
Idiaeresis = 0x00CF,
Eth = 0x00D0,
Ntilde = 0x00D1,
Ograve = 0x00D2,
Oacute = 0x00D3,
Ocircumflex = 0x00D4,
Otilde = 0x00D5,
Odiaeresis = 0x00D6,
Multiply = 0x00D7,
Oslash = 0x00D8,
Ooblique = 0x00D8,
Ugrave = 0x00D9,
Uacute = 0x00DA,
Ucircumflex = 0x00DB,
Udiaeresis = 0x00DC,
Yacute = 0x00DD,
Thorn = 0x00DE,
ssharp = 0x00DF,
agrave = 0x00E0,
aacute = 0x00E1,
acircumflex = 0x00E2,
atilde = 0x00E3,
adiaeresis = 0x00E4,
aring = 0x00E5,
ae = 0x00E6,
ccedilla = 0x00E7,
egrave = 0x00E8,
eacute = 0x00E9,
ecircumflex = 0x00EA,
ediaeresis = 0x00EB,
igrave = 0x00EC,
iacute = 0x00ED,
icircumflex = 0x00EE,
idiaeresis = 0x00EF,
eth = 0x00F0,
ntilde = 0x00F1,
ograve = 0x00F2,
oacute = 0x00F3,
ocircumflex = 0x00F4,
otilde = 0x00F5,
odiaeresis = 0x00F6,
division = 0x00F7,
oslash = 0x00F8,
ooblique = 0x00F8,
ugrave = 0x00F9,
uacute = 0x00FA,
ucircumflex = 0x00FB,
udiaeresis = 0x00FC,
yacute = 0x00FD,
thorn = 0x00FE,
ydiaeresis = 0x00FF,
// #endif LATIN1
}