mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-10-26 20:25:34 +08:00
[fix] compelete linux x11 keycode map
This commit is contained in:
@@ -247,21 +247,121 @@ std::map<int, int> CGKeyCodeToVkCode = {
|
|||||||
|
|
||||||
// Windows vkCode to X11 KeySym
|
// Windows vkCode to X11 KeySym
|
||||||
std::map<int, int> vkCodeToX11KeySym = {
|
std::map<int, int> vkCodeToX11KeySym = {
|
||||||
{0x41, 0x0041}, {0x42, 0x0042}, {0x43, 0x0043}, {0x44, 0x0044},
|
// A-Z
|
||||||
{0x45, 0x0045}, {0x46, 0x0046}, {0x47, 0x0047}, {0x48, 0x0048},
|
{0x41, 0x0041}, // A
|
||||||
{0x49, 0x0049}, {0x4A, 0x004A}, {0x4B, 0x004B}, {0x4C, 0x004C},
|
{0x42, 0x0042}, // B
|
||||||
{0x4D, 0x004D}, {0x4E, 0x004E}, {0x4F, 0x004F}, {0x50, 0x0050},
|
{0x43, 0x0043}, // C
|
||||||
{0x51, 0x0051}, {0x52, 0x0052}, {0x53, 0x0053}, {0x54, 0x0054},
|
{0x44, 0x0044}, // D
|
||||||
{0x55, 0x0055}, {0x56, 0x0056}, {0x57, 0x0057}, {0x58, 0x0058},
|
{0x45, 0x0045}, // E
|
||||||
{0x59, 0x0059}, {0x5A, 0x005A}, {0x30, 0x0030}, {0x31, 0x0031},
|
{0x46, 0x0046}, // F
|
||||||
{0x32, 0x0032}, {0x33, 0x0033}, {0x34, 0x0034}, {0x35, 0x0035},
|
{0x47, 0x0047}, // G
|
||||||
{0x36, 0x0036}, {0x37, 0x0037}, {0x38, 0x0038}, {0x39, 0x0039},
|
{0x48, 0x0048}, // H
|
||||||
{0x1B, 0xFF1B}, {0x0D, 0xFF0D}, {0x20, 0x0020}, {0x08, 0xFF08},
|
{0x49, 0x0049}, // I
|
||||||
{0x09, 0xFF09}, {0x25, 0xFF51}, {0x27, 0xFF53}, {0x26, 0xFF52},
|
{0x4A, 0x004A}, // J
|
||||||
{0x28, 0xFF54}, {0x70, 0xFFBE}, {0x71, 0xFFBF}, {0x72, 0xFFC0},
|
{0x4B, 0x004B}, // K
|
||||||
{0x73, 0xFFC1}, {0x74, 0xFFC2}, {0x75, 0xFFC3}, {0x76, 0xFFC4},
|
{0x4C, 0x004C}, // L
|
||||||
{0x77, 0xFFC5}, {0x78, 0xFFC6}, {0x79, 0xFFC7}, {0x7A, 0xFFC8},
|
{0x4D, 0x004D}, // M
|
||||||
|
{0x4E, 0x004E}, // N
|
||||||
|
{0x4F, 0x004F}, // O
|
||||||
|
{0x50, 0x0050}, // P
|
||||||
|
{0x51, 0x0051}, // Q
|
||||||
|
{0x52, 0x0052}, // R
|
||||||
|
{0x53, 0x0053}, // S
|
||||||
|
{0x54, 0x0054}, // T
|
||||||
|
{0x55, 0x0055}, // U
|
||||||
|
{0x56, 0x0056}, // V
|
||||||
|
{0x57, 0x0057}, // W
|
||||||
|
{0x58, 0x0058}, // X
|
||||||
|
{0x59, 0x0059}, // Y
|
||||||
|
{0x5A, 0x005A}, // Z
|
||||||
|
|
||||||
|
// 0-9
|
||||||
|
{0x30, 0x0030}, // 0
|
||||||
|
{0x31, 0x0031}, // 1
|
||||||
|
{0x32, 0x0032}, // 2
|
||||||
|
{0x33, 0x0033}, // 3
|
||||||
|
{0x34, 0x0034}, // 4
|
||||||
|
{0x35, 0x0035}, // 5
|
||||||
|
{0x36, 0x0036}, // 6
|
||||||
|
{0x37, 0x0037}, // 7
|
||||||
|
{0x38, 0x0038}, // 8
|
||||||
|
{0x39, 0x0039}, // 9
|
||||||
|
|
||||||
|
// F1-F12
|
||||||
|
{0x70, 0xFFBE},
|
||||||
|
{0x71, 0xFFBF},
|
||||||
|
{0x72, 0xFFC0},
|
||||||
|
{0x73, 0xFFC1},
|
||||||
|
{0x74, 0xFFC2},
|
||||||
|
{0x75, 0xFFC3},
|
||||||
|
{0x76, 0xFFC4},
|
||||||
|
{0x77, 0xFFC5},
|
||||||
|
{0x78, 0xFFC6},
|
||||||
|
{0x79, 0xFFC7},
|
||||||
|
{0x7A, 0xFFC8},
|
||||||
{0x7B, 0xFFC9},
|
{0x7B, 0xFFC9},
|
||||||
|
|
||||||
|
// control keys
|
||||||
|
{0x1B, 0xFF1B}, // Escape
|
||||||
|
{0x0D, 0xFF0D}, // Enter
|
||||||
|
{0x20, 0x0020}, // Space
|
||||||
|
|
||||||
|
{0x08, 0xFF08}, // Backspace
|
||||||
|
{0x09, 0xFF09}, // Tab
|
||||||
|
{0x2C, 0xFD1D}, // Print Screen
|
||||||
|
{0x2D, 0xFF63}, // Insert
|
||||||
|
{0x2E, 0xFFFF}, // Delete
|
||||||
|
{0x24, 0xFF50}, // Home
|
||||||
|
{0x23, 0xFF57}, // End
|
||||||
|
{0x21, 0xFF55}, // Page Up
|
||||||
|
{0x22, 0xFF56}, // Page Down
|
||||||
|
|
||||||
|
// arrow keys
|
||||||
|
{0x25, 0xFF51}, // Left Arrow
|
||||||
|
{0x27, 0xFF53}, // Right Arrow
|
||||||
|
{0x26, 0xFF52}, // Up Arrow
|
||||||
|
{0x28, 0xFF54}, // Down Arrow
|
||||||
|
|
||||||
|
// numpad
|
||||||
|
{0x60, 0x0030}, // Numpad 0
|
||||||
|
{0x61, 0x0031}, // Numpad 1
|
||||||
|
{0x62, 0x0032}, // Numpad 2
|
||||||
|
{0x63, 0x0033}, // Numpad 3
|
||||||
|
{0x64, 0x0034}, // Numpad 4
|
||||||
|
{0x65, 0x0035}, // Numpad 5
|
||||||
|
{0x66, 0x0036}, // Numpad 6
|
||||||
|
{0x67, 0x0037}, // Numpad 7
|
||||||
|
{0x68, 0x0038}, // Numpad 8
|
||||||
|
{0x69, 0x0039}, // Numpad 9
|
||||||
|
{0x6E, 0x003A}, // Numpad .
|
||||||
|
{0x6F, 0x002F}, // Numpad /
|
||||||
|
{0x6A, 0x002A}, // Numpad *
|
||||||
|
{0x6D, 0x002D}, // Numpad -
|
||||||
|
{0x6B, 0x002B}, // Numpad +
|
||||||
|
|
||||||
|
// symbol keys
|
||||||
|
{0xBA, 0x003B}, // ; (Semicolon)
|
||||||
|
{0xDE, 0x0027}, // ' (Quote)
|
||||||
|
{0xC0, 0x007E}, // ` (Grave)
|
||||||
|
{0xBC, 0x002C}, // , (Comma)
|
||||||
|
{0xBE, 0x002E}, // . (Period)
|
||||||
|
{0xBF, 0x002F}, // / (Slash)
|
||||||
|
{0xDC, 0x005C}, // \ (Backslash)
|
||||||
|
{0xDB, 0x005B}, // [ (Left Bracket)
|
||||||
|
{0xDD, 0x005D}, // ] (Right Bracket)
|
||||||
|
{0xBD, 0x002D}, // - (Minus)
|
||||||
|
{0xBB, 0x003D}, // = (Equals)
|
||||||
|
|
||||||
|
// modifier keys
|
||||||
|
{0x14, 0xFFE5}, // Caps Lock
|
||||||
|
{0xA0, 0xFFE1}, // Shift (Left)
|
||||||
|
{0xA1, 0xFFE2}, // Shift (Right)
|
||||||
|
{0xA2, 0xFFE3}, // Ctrl (Left)
|
||||||
|
{0xA3, 0xFFE4}, // Ctrl (Right)
|
||||||
|
{0xA4, 0xFFE9}, // Alt (Left)
|
||||||
|
{0xA5, 0xFFEA}, // Alt (Right)
|
||||||
|
{0x5B, 0xFFEB}, // Left Command (Windows key)
|
||||||
|
{0x5C, 0xFFEC}, // Right Command
|
||||||
};
|
};
|
||||||
|
|
||||||
// X11 KeySym to Windows vkCode
|
// X11 KeySym to Windows vkCode
|
||||||
@@ -275,21 +375,120 @@ std::map<int, int> x11KeySymToVkCode = []() {
|
|||||||
|
|
||||||
// macOS CGKeyCode to X11 KeySym
|
// macOS CGKeyCode to X11 KeySym
|
||||||
std::map<int, int> cgKeyCodeToX11KeySym = {
|
std::map<int, int> cgKeyCodeToX11KeySym = {
|
||||||
{0x00, 0x0041}, {0x0B, 0x0042}, {0x08, 0x0043}, {0x02, 0x0044},
|
// A-Z
|
||||||
{0x0E, 0x0045}, {0x03, 0x0046}, {0x05, 0x0047}, {0x04, 0x0048},
|
{0x00, 0x0041}, // A
|
||||||
{0x22, 0x0049}, {0x26, 0x004A}, {0x28, 0x004B}, {0x25, 0x004C},
|
{0x0B, 0x0042}, // B
|
||||||
{0x2E, 0x004D}, {0x2D, 0x004E}, {0x1F, 0x004F}, {0x23, 0x0050},
|
{0x08, 0x0043}, // C
|
||||||
{0x0C, 0x0051}, {0x0F, 0x0052}, {0x01, 0x0053}, {0x11, 0x0054},
|
{0x02, 0x0044}, // D
|
||||||
{0x20, 0x0055}, {0x09, 0x0056}, {0x0D, 0x0057}, {0x07, 0x0058},
|
{0x0E, 0x0045}, // E
|
||||||
{0x10, 0x0059}, {0x06, 0x005A}, {0x12, 0x0031}, {0x13, 0x0032},
|
{0x03, 0x0046}, // F
|
||||||
{0x14, 0x0033}, {0x15, 0x0034}, {0x17, 0x0035}, {0x16, 0x0036},
|
{0x05, 0x0047}, // G
|
||||||
{0x1A, 0x0037}, {0x1C, 0x0038}, {0x19, 0x0039}, {0x1D, 0x0030},
|
{0x04, 0x0048}, // H
|
||||||
{0x35, 0xFF1B}, {0x24, 0xFF0D}, {0x31, 0x0020}, {0x33, 0xFF08},
|
{0x22, 0x0049}, // I
|
||||||
{0x30, 0xFF09}, {0x7B, 0xFF51}, {0x7C, 0xFF53}, {0x7E, 0xFF52},
|
{0x26, 0x004A}, // J
|
||||||
{0x7D, 0xFF54}, {0x7A, 0xFFBE}, {0x78, 0xFFBF}, {0x63, 0xFFC0},
|
{0x28, 0x004B}, // K
|
||||||
{0x76, 0xFFC1}, {0x60, 0xFFC2}, {0x61, 0xFFC3}, {0x62, 0xFFC4},
|
{0x25, 0x004C}, // L
|
||||||
{0x64, 0xFFC5}, {0x65, 0xFFC6}, {0x6D, 0xFFC7}, {0x67, 0xFFC8},
|
{0x2E, 0x004D}, // M
|
||||||
{0x6F, 0xFFC9},
|
{0x2D, 0x004E}, // N
|
||||||
|
{0x1F, 0x004F}, // O
|
||||||
|
{0x23, 0x0050}, // P
|
||||||
|
{0x0C, 0x0051}, // Q
|
||||||
|
{0x0F, 0x0052}, // R
|
||||||
|
{0x01, 0x0053}, // S
|
||||||
|
{0x11, 0x0054}, // T
|
||||||
|
{0x20, 0x0055}, // U
|
||||||
|
{0x09, 0x0056}, // V
|
||||||
|
{0x0D, 0x0057}, // W
|
||||||
|
{0x07, 0x0058}, // X
|
||||||
|
{0x10, 0x0059}, // Y
|
||||||
|
{0x06, 0x005A}, // Z
|
||||||
|
|
||||||
|
// 0-9
|
||||||
|
{0x1D, 0x0030},
|
||||||
|
{0x12, 0x0031},
|
||||||
|
{0x13, 0x0032},
|
||||||
|
{0x14, 0x0033},
|
||||||
|
{0x15, 0x0034},
|
||||||
|
{0x17, 0x0035},
|
||||||
|
{0x16, 0x0036},
|
||||||
|
{0x1A, 0x0037},
|
||||||
|
{0x1C, 0x0038},
|
||||||
|
{0x19, 0x0039},
|
||||||
|
|
||||||
|
// F1-F12
|
||||||
|
{0x7A, 0xFFBE}, // F1
|
||||||
|
{0x78, 0xFFBF}, // F2
|
||||||
|
{0x63, 0xFFC0}, // F3
|
||||||
|
{0x76, 0xFFC1}, // F4
|
||||||
|
{0x60, 0xFFC2}, // F5
|
||||||
|
{0x61, 0xFFC3}, // F6
|
||||||
|
{0x62, 0xFFC4}, // F7
|
||||||
|
{0x64, 0xFFC5}, // F8
|
||||||
|
{0x65, 0xFFC6}, // F9
|
||||||
|
{0x6D, 0xFFC7}, // F10
|
||||||
|
{0x67, 0xFFC8}, // F11
|
||||||
|
{0x6F, 0xFFC9}, // F12
|
||||||
|
|
||||||
|
// control keys
|
||||||
|
{0x35, 0xFF1B}, // Escape
|
||||||
|
{0x24, 0xFF0D}, // Enter
|
||||||
|
{0x31, 0x0020}, // Space
|
||||||
|
{0x33, 0xFF08}, // Backspace
|
||||||
|
{0x30, 0xFF09}, // Tab
|
||||||
|
{0x74, 0xFD1D}, // Print Screen
|
||||||
|
{0x72, 0xFF63}, // Insert
|
||||||
|
{0x75, 0xFFFF}, // Delete
|
||||||
|
{0x73, 0xFF50}, // Home
|
||||||
|
{0x77, 0xFF57}, // End
|
||||||
|
{0x79, 0xFF55}, // Page Up
|
||||||
|
{0x7A, 0xFF56}, // Page Down
|
||||||
|
|
||||||
|
// arrow keys
|
||||||
|
{0x7B, 0xFF51}, // Left Arrow
|
||||||
|
{0x7C, 0xFF53}, // Right Arrow
|
||||||
|
{0x7E, 0xFF52}, // Up Arrow
|
||||||
|
{0x7D, 0xFF54}, // Down Arrow
|
||||||
|
|
||||||
|
// numpad
|
||||||
|
{0x52, 0x0030}, // Numpad 0
|
||||||
|
{0x53, 0x0031}, // Numpad 1
|
||||||
|
{0x54, 0x0032}, // Numpad 2
|
||||||
|
{0x55, 0x0033}, // Numpad 3
|
||||||
|
{0x56, 0x0034}, // Numpad 4
|
||||||
|
{0x57, 0x0035}, // Numpad 5
|
||||||
|
{0x58, 0x0036}, // Numpad 6
|
||||||
|
{0x59, 0x0037}, // Numpad 7
|
||||||
|
{0x5B, 0x0038}, // Numpad 8
|
||||||
|
{0x5C, 0x0039}, // Numpad 9
|
||||||
|
{0x41, 0x003A}, // Numpad .
|
||||||
|
{0x4B, 0x002F}, // Numpad /
|
||||||
|
{0x43, 0x002A}, // Numpad *
|
||||||
|
{0x4E, 0x002D}, // Numpad -
|
||||||
|
{0x45, 0x002B}, // Numpad +
|
||||||
|
|
||||||
|
// symbol keys
|
||||||
|
{0x29, 0x003B}, // ; (Semicolon)
|
||||||
|
{0x27, 0x0027}, // ' (Quote)
|
||||||
|
{0x32, 0x007E}, // ` (Backtick)
|
||||||
|
{0x2B, 0x002C}, // , (Comma)
|
||||||
|
{0x2F, 0x002E}, // . (Period)
|
||||||
|
{0x2C, 0x002F}, // / (Slash)
|
||||||
|
{0x2A, 0x005C}, // \ (Backslash)
|
||||||
|
{0x21, 0x005B}, // [ (Left Bracket)
|
||||||
|
{0x1E, 0x005D}, // ] (Right Bracket)
|
||||||
|
{0x1B, 0x002D}, // - (Minus)
|
||||||
|
{0x18, 0x003D}, // = (Equals)
|
||||||
|
|
||||||
|
// modifier keys
|
||||||
|
{0x39, 0xFFE5}, // Caps Lock
|
||||||
|
{0x38, 0xFFE1}, // Shift (Left)
|
||||||
|
{0x3C, 0xFFE2}, // Shift (Right)
|
||||||
|
{0x3B, 0xFFE3}, // Control (Left)
|
||||||
|
{0x3E, 0xFFE4}, // Control (Right)
|
||||||
|
{0x3A, 0xFFE9}, // Alt (Left)
|
||||||
|
{0x3D, 0xFFEA}, // Alt (Right)
|
||||||
|
{0x37, 0xFFEB}, // Left Command (Windows key)
|
||||||
|
{0x36, 0xFFEC}, // Right Command
|
||||||
};
|
};
|
||||||
|
|
||||||
// X11 KeySym to macOS CGKeyCode
|
// X11 KeySym to macOS CGKeyCode
|
||||||
|
|||||||
Reference in New Issue
Block a user