From ff4a3fae0c8f0608f92e76a723e449d898c18b8f Mon Sep 17 00:00:00 2001 From: Spacehuhn Date: Tue, 25 Jan 2022 14:50:52 +0100 Subject: [PATCH] Update locales to support accents and other missing keys --- README.md | 6 +- atmega_duck/keyboard.cpp | 55 +++-- atmega_duck/locale_be.h | 336 ++++++++++++++----------- atmega_duck/locale_cz.h | 390 ++++++++++++++++++------------ atmega_duck/locale_de.h | 336 +++++++++++++------------ atmega_duck/locale_dk.h | 351 +++++++++++++++------------ atmega_duck/locale_es.h | 360 +++++++++++++++------------ atmega_duck/locale_fr.h | 335 +++++++++++++------------ atmega_duck/locale_gb.h | 304 ++++++++++++----------- atmega_duck/locale_it.h | 305 ++++++++++++----------- atmega_duck/locale_pt.h | 336 ++++++++++++++----------- atmega_duck/locale_ru.h | 484 ++++++++++++++++--------------------- atmega_duck/locale_si.h | 361 ++++++++++++++------------- atmega_duck/locale_sk.h | 370 ++++++++++++++++------------ atmega_duck/locale_types.h | 6 +- atmega_duck/locale_us.h | 274 +++++++++++---------- atmega_duck/locales.h | 1 + 17 files changed, 2497 insertions(+), 2113 deletions(-) diff --git a/README.md b/README.md index f543cff..e2c1680 100644 --- a/README.md +++ b/README.md @@ -466,8 +466,8 @@ For example: `locale_xx.h` -> `locale_de.h`, `ascii_xx` -> `ascii_de`, `locale_xx` -> `locale_de`, -`extended_ascii_xx` -> `extended_ascii_de`, `utf8_xx` -> `utf8_de`. +`combinations_xx` -> `combinations_de`, 4. Modify the ASCII array. The ASCII array has a fixed size. Each row describes a key. First a modifier key like `KEY_MOD_LSHIFT`, then a character key. @@ -480,11 +480,11 @@ This is because German keyboards use QWERTZ instead of the QWERTY layout and since the letter is uppercase, shift must be pressed as well. Thankfully you don't have to trial and error everything, the Hak5 Community translated a lot of layouts already [here](https://github.com/hak5darren/USB-Rubber-Ducky/tree/master/Encoder/resources). It's just written in a different syntax. For example, `ASCII_20` (20 in hexadecimal) is the 32th character in our ascii array. -5. Modify or create the extended ASCII array. +5. [deprecated] ~~Modify or create the extended ASCII array. The extended ASCII array doesn't have a fixed size and is only as long as you make it. First the character code. For example, [ä](https://theasciicode.com.ar/extended-ascii-code/letter-a-umlaut-diaeresis-a-umlaut-lowercase-ascii-code-132.html) has the index 132, or 84 in hex. It doesn't use a modifier and sits where the apostrophe key is on a US keyboard: -`0x84, KEY_NONE, KEY_APOSTROPHE, // ä`. +`0x84, KEY_NONE, KEY_APOSTROPHE, // ä`.~~ 6. Modify or create the UTF-8 array. The UTF-8 array is variable in length, too. The first 4 bytes are the character code. diff --git a/atmega_duck/keyboard.cpp b/atmega_duck/keyboard.cpp index 4507be0..add9ee8 100644 --- a/atmega_duck/keyboard.cpp +++ b/atmega_duck/keyboard.cpp @@ -112,7 +112,46 @@ namespace keyboard { uint8_t press(const char* strPtr) { // Convert string pointer into a byte pointer uint8_t* b = (uint8_t*)strPtr; - + + // Key combinations (accent keys) + // We have to check them first, because sometimes ASCII keys are in here + for (uint8_t i = 0; icombinations_len; ++i) { + uint8_t res = 0; + + // Read utf8 code and match it with the given data + for (uint8_t j = 0; j<4; ++j) { + uint8_t key_code = pgm_read_byte(locale->combinations + (i * 8) + j); + + if (key_code == 0) { + break; + } + + if (key_code == b[j]) { + ++res; + } else { + res = 0; + break; + } + } + + // If a match was found, read out the data and type it + if (res > 0) { + uint8_t comboModifiers = pgm_read_byte(locale->combinations + (i * 8) + 4); + uint8_t comboKey = pgm_read_byte(locale->combinations + (i * 8) + 5); + + uint8_t modifiers = pgm_read_byte(locale->combinations + (i * 8) + 6); + uint8_t key = pgm_read_byte(locale->combinations + (i * 8) + 7); + + pressKey(comboKey, comboModifiers); + release(); + pressKey(key, modifiers); + release(); + + // Return the number of extra bytes we used from the string pointer + return res-1; + } + } + // ASCII if (b[0] < locale->ascii_len) { uint8_t modifiers = pgm_read_byte(locale->ascii + (b[0] * 2) + 0); @@ -155,20 +194,6 @@ namespace keyboard { } } - // Extended ASCII - for (uint8_t i = 0; iextended_ascii_len; ++i) { - uint8_t key_code = pgm_read_byte(locale->extended_ascii + (i * 3)); - - if (b[0] == key_code) { - uint8_t modifiers = pgm_read_byte(locale->extended_ascii + (i * 3) + 1); - uint8_t key = pgm_read_byte(locale->extended_ascii + (i * 3) + 2); - - pressKey(key, modifiers); - - return 0; - } - } - return 0; } diff --git a/atmega_duck/locale_be.h b/atmega_duck/locale_be.h index 2089372..b6724c5 100644 --- a/atmega_duck/locale_be.h +++ b/atmega_duck/locale_be.h @@ -1,8 +1,6 @@ /* - This software is licensed under the MIT License. See the license file for details. - Source: https://github.com/spacehuhntech/WiFiDuck - - Modified locale for Belgium azerty + This software is licensed under the MIT License. See the license file for details. + Source: https://github.com/spacehuhntech/WiFiDuck */ #pragma once @@ -11,193 +9,255 @@ // Modifier(s), Key const uint8_t ascii_be[] PROGMEM = { - KEY_NONE, KEY_NONE, // NUL - KEY_NONE, KEY_NONE, // SOH - KEY_NONE, KEY_NONE, // STX - KEY_NONE, KEY_NONE, // ETX - KEY_NONE, KEY_NONE, // EOT - KEY_NONE, KEY_NONE, // ENQ - KEY_NONE, KEY_NONE, // ACK - KEY_NONE, KEY_NONE, // BEL + KEY_NONE, KEY_NONE, // NUL + KEY_NONE, KEY_NONE, // SOH + KEY_NONE, KEY_NONE, // STX + KEY_NONE, KEY_NONE, // ETX + KEY_NONE, KEY_NONE, // EOT + KEY_NONE, KEY_NONE, // ENQ + KEY_NONE, KEY_NONE, // ACK + KEY_NONE, KEY_NONE, // BEL // 8, 0x08 - KEY_NONE, KEY_BACKSPACE, // BS Backspace - KEY_NONE, KEY_TAB, // TAB Tab - KEY_NONE, KEY_ENTER, // LF Enter - - KEY_NONE, KEY_NONE, // VT - KEY_NONE, KEY_NONE, // FF - KEY_NONE, KEY_NONE, // CR - KEY_NONE, KEY_NONE, // SO - KEY_NONE, KEY_NONE, // SI - KEY_NONE, KEY_NONE, // DEL - KEY_NONE, KEY_NONE, // DC1 - KEY_NONE, KEY_NONE, // DC2 - KEY_NONE, KEY_NONE, // DC3 - KEY_NONE, KEY_NONE, // DC4 - KEY_NONE, KEY_NONE, // NAK - KEY_NONE, KEY_NONE, // SYN - KEY_NONE, KEY_NONE, // ETB - KEY_NONE, KEY_NONE, // CAN - KEY_NONE, KEY_NONE, // EM - KEY_NONE, KEY_NONE, // SUB - KEY_NONE, KEY_NONE, // ESC - KEY_NONE, KEY_NONE, // FS - KEY_NONE, KEY_NONE, // GS - KEY_NONE, KEY_NONE, // RS - KEY_NONE, KEY_NONE, // US - + KEY_NONE, KEY_BACKSPACE, // BS Backspace + KEY_NONE, KEY_TAB, // TAB Tab + KEY_NONE, KEY_ENTER, // LF Enter + + KEY_NONE, KEY_NONE, // VT + KEY_NONE, KEY_NONE, // FF + KEY_NONE, KEY_NONE, // CR + KEY_NONE, KEY_NONE, // SO + KEY_NONE, KEY_NONE, // SI + KEY_NONE, KEY_NONE, // DEL + KEY_NONE, KEY_NONE, // DC1 + KEY_NONE, KEY_NONE, // DC2 + KEY_NONE, KEY_NONE, // DC3 + KEY_NONE, KEY_NONE, // DC4 + KEY_NONE, KEY_NONE, // NAK + KEY_NONE, KEY_NONE, // SYN + KEY_NONE, KEY_NONE, // ETB + KEY_NONE, KEY_NONE, // CAN + KEY_NONE, KEY_NONE, // EM + KEY_NONE, KEY_NONE, // SUB + KEY_NONE, KEY_NONE, // ESC + KEY_NONE, KEY_NONE, // FS + KEY_NONE, KEY_NONE, // GS + KEY_NONE, KEY_NONE, // RS + KEY_NONE, KEY_NONE, // US + // 32, 0x20 - KEY_NONE, KEY_SPACE, // ' ' - KEY_NONE, KEY_8, // ! - KEY_NONE, KEY_3, // " - KEY_MOD_RALT, KEY_3, // # + KEY_NONE, KEY_SPACE, // ' ' + KEY_NONE, KEY_8, // ! + KEY_NONE, KEY_3, // " + KEY_MOD_RALT, KEY_3, // # // 36, 0x24 - KEY_NONE, KEY_RIGHTBRACE, // $ - KEY_MOD_LSHIFT, KEY_APOSTROPHE, // % - KEY_NONE, KEY_1, // & - KEY_NONE, KEY_4, // ' + KEY_NONE, KEY_RIGHTBRACE, // $ + KEY_MOD_LSHIFT, KEY_APOSTROPHE, // % + KEY_NONE, KEY_1, // & + KEY_NONE, KEY_4, // ' // 40, 0x28 - KEY_NONE, KEY_5, // ( - KEY_NONE, KEY_MINUS, // ) - KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // * - KEY_MOD_LSHIFT, KEY_SLASH, // + + KEY_NONE, KEY_5, // ( + KEY_NONE, KEY_MINUS, // ) + KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // * + KEY_MOD_LSHIFT, KEY_SLASH, // + // 44, 0x2c - KEY_NONE, KEY_M, // , - KEY_NONE, KEY_EQUAL, // - - KEY_MOD_LSHIFT, KEY_COMMA, // . - KEY_MOD_LSHIFT, KEY_DOT, // / + KEY_NONE, KEY_M, // , + KEY_NONE, KEY_EQUAL, // - + KEY_MOD_LSHIFT, KEY_COMMA, // . + KEY_MOD_LSHIFT, KEY_DOT, // / // 48, 0x30 - KEY_MOD_LSHIFT, KEY_0, // 0 - KEY_MOD_LSHIFT, KEY_1, // 1 - KEY_MOD_LSHIFT, KEY_2, // 2 - KEY_MOD_LSHIFT, KEY_3, // 3 + KEY_MOD_LSHIFT, KEY_0, // 0 + KEY_MOD_LSHIFT, KEY_1, // 1 + KEY_MOD_LSHIFT, KEY_2, // 2 + KEY_MOD_LSHIFT, KEY_3, // 3 // 52, 0x34 - KEY_MOD_LSHIFT, KEY_4, // 4 - KEY_MOD_LSHIFT, KEY_5, // 5 - KEY_MOD_LSHIFT, KEY_6, // 6 - KEY_MOD_LSHIFT, KEY_7, // 7 + KEY_MOD_LSHIFT, KEY_4, // 4 + KEY_MOD_LSHIFT, KEY_5, // 5 + KEY_MOD_LSHIFT, KEY_6, // 6 + KEY_MOD_LSHIFT, KEY_7, // 7 // 56, 0x38 - KEY_MOD_LSHIFT, KEY_8, // 8 - KEY_MOD_LSHIFT, KEY_9, // 9 - KEY_NONE, KEY_DOT, // : - KEY_NONE, KEY_COMMA, // ; + KEY_MOD_LSHIFT, KEY_8, // 8 + KEY_MOD_LSHIFT, KEY_9, // 9 + KEY_NONE, KEY_DOT, // : + KEY_NONE, KEY_COMMA, // ; // 60, 0x3c - KEY_NONE, KEY_102ND, // < - KEY_NONE, KEY_SLASH, // = - KEY_MOD_LSHIFT, KEY_102ND, // > - KEY_MOD_LSHIFT, KEY_M, // ? + KEY_NONE, KEY_102ND, // < + KEY_NONE, KEY_SLASH, // = + KEY_MOD_LSHIFT, KEY_102ND, // > + KEY_MOD_LSHIFT, KEY_M, // ? // 64, 0x40 - KEY_MOD_RALT, KEY_2, // @ - KEY_MOD_LSHIFT, KEY_Q, // A - KEY_MOD_LSHIFT, KEY_B, // B - KEY_MOD_LSHIFT, KEY_C, // C + KEY_MOD_RALT, KEY_2, // @ + KEY_MOD_LSHIFT, KEY_Q, // A + KEY_MOD_LSHIFT, KEY_B, // B + KEY_MOD_LSHIFT, KEY_C, // C // 68, 0x44 - KEY_MOD_LSHIFT, KEY_D, // D - KEY_MOD_LSHIFT, KEY_E, // E - KEY_MOD_LSHIFT, KEY_F, // F - KEY_MOD_LSHIFT, KEY_G, // G + KEY_MOD_LSHIFT, KEY_D, // D + KEY_MOD_LSHIFT, KEY_E, // E + KEY_MOD_LSHIFT, KEY_F, // F + KEY_MOD_LSHIFT, KEY_G, // G // 72, 0x48 - KEY_MOD_LSHIFT, KEY_H, // H - KEY_MOD_LSHIFT, KEY_I, // I - KEY_MOD_LSHIFT, KEY_J, // J - KEY_MOD_LSHIFT, KEY_K, // K + KEY_MOD_LSHIFT, KEY_H, // H + KEY_MOD_LSHIFT, KEY_I, // I + KEY_MOD_LSHIFT, KEY_J, // J + KEY_MOD_LSHIFT, KEY_K, // K // 76, 0x4c - KEY_MOD_LSHIFT, KEY_L, // L - KEY_MOD_LSHIFT, KEY_SEMICOLON, // M - KEY_MOD_LSHIFT, KEY_N, // N - KEY_MOD_LSHIFT, KEY_O, // O + KEY_MOD_LSHIFT, KEY_L, // L + KEY_MOD_LSHIFT, KEY_SEMICOLON, // M + KEY_MOD_LSHIFT, KEY_N, // N + KEY_MOD_LSHIFT, KEY_O, // O // 80, 0x50 - KEY_MOD_LSHIFT, KEY_P, // P - KEY_MOD_LSHIFT, KEY_A, // Q - KEY_MOD_LSHIFT, KEY_R, // R - KEY_MOD_LSHIFT, KEY_S, // S + KEY_MOD_LSHIFT, KEY_P, // P + KEY_MOD_LSHIFT, KEY_A, // Q + KEY_MOD_LSHIFT, KEY_R, // R + KEY_MOD_LSHIFT, KEY_S, // S // 84, 0x54 - KEY_MOD_LSHIFT, KEY_T, // T - KEY_MOD_LSHIFT, KEY_U, // U - KEY_MOD_LSHIFT, KEY_V, // V - KEY_MOD_LSHIFT, KEY_Z, // W + KEY_MOD_LSHIFT, KEY_T, // T + KEY_MOD_LSHIFT, KEY_U, // U + KEY_MOD_LSHIFT, KEY_V, // V + KEY_MOD_LSHIFT, KEY_Z, // W // 88, 0x58 - KEY_MOD_LSHIFT, KEY_X, // X - KEY_MOD_LSHIFT, KEY_Y, // Y - KEY_MOD_LSHIFT, KEY_W, // Z - KEY_MOD_RALT, KEY_LEFTBRACE, // [ + KEY_MOD_LSHIFT, KEY_X, // X + KEY_MOD_LSHIFT, KEY_Y, // Y + KEY_MOD_LSHIFT, KEY_W, // Z + KEY_MOD_RALT, KEY_5, // [ // 92, 0x5c - KEY_MOD_RALT, KEY_102ND, // bslash - KEY_MOD_RALT, KEY_RIGHTBRACE, // ] - KEY_MOD_RALT, KEY_6, // ^ - KEY_MOD_LSHIFT, KEY_EQUAL, // _ + KEY_MOD_RALT, KEY_102ND, // bslash + KEY_MOD_RALT, KEY_RIGHTBRACE, // ] + KEY_MOD_RALT, KEY_6, // ^ + KEY_MOD_LSHIFT, KEY_EQUAL, // _ // 96, 0x60 - KEY_MOD_RALT, KEY_BACKSLASH, // ` - KEY_NONE, KEY_Q, // a - KEY_NONE, KEY_B, // b - KEY_NONE, KEY_C, // c + KEY_MOD_RALT, KEY_BACKSLASH, // ` + KEY_NONE, KEY_Q, // a + KEY_NONE, KEY_B, // b + KEY_NONE, KEY_C, // c // 100, 0x64 - KEY_NONE, KEY_D, // d - KEY_NONE, KEY_E, // e - KEY_NONE, KEY_F, // f - KEY_NONE, KEY_G, // g + KEY_NONE, KEY_D, // d + KEY_NONE, KEY_E, // e + KEY_NONE, KEY_F, // f + KEY_NONE, KEY_G, // g // 104, 0x68 - KEY_NONE, KEY_H, // h - KEY_NONE, KEY_I, // i - KEY_NONE, KEY_J, // j - KEY_NONE, KEY_K, // k + KEY_NONE, KEY_H, // h + KEY_NONE, KEY_I, // i + KEY_NONE, KEY_J, // j + KEY_NONE, KEY_K, // k // 108, 0x6c - KEY_NONE, KEY_L, // l - KEY_NONE, KEY_SEMICOLON, // m - KEY_NONE, KEY_N, // n - KEY_NONE, KEY_O, // o + KEY_NONE, KEY_L, // l + KEY_NONE, KEY_SEMICOLON, // m + KEY_NONE, KEY_N, // n + KEY_NONE, KEY_O, // o // 112, 0x70 - KEY_NONE, KEY_P, // p - KEY_NONE, KEY_A, // q - KEY_NONE, KEY_R, // r - KEY_NONE, KEY_S, // s + KEY_NONE, KEY_P, // p + KEY_NONE, KEY_A, // q + KEY_NONE, KEY_R, // r + KEY_NONE, KEY_S, // s // 116, 0x74 - KEY_NONE, KEY_T, // t - KEY_NONE, KEY_U, // u - KEY_NONE, KEY_V, // v - KEY_NONE, KEY_Z, // w + KEY_NONE, KEY_T, // t + KEY_NONE, KEY_U, // u + KEY_NONE, KEY_V, // v + KEY_NONE, KEY_Z, // w // 120, 0x78 - KEY_NONE, KEY_X, // x - KEY_NONE, KEY_Y, // y - KEY_NONE, KEY_W, // z - KEY_MOD_RALT, KEY_9, // { + KEY_NONE, KEY_X, // x + KEY_NONE, KEY_Y, // y + KEY_NONE, KEY_W, // z + KEY_MOD_RALT, KEY_4, // { // 124, 0x7c - KEY_MOD_RALT, KEY_1, // | - KEY_MOD_RALT, KEY_0, // } - KEY_MOD_RALT, KEY_SLASH, // ~ - KEY_NONE, KEY_NONE // DEL + KEY_MOD_RALT, KEY_1, // | + KEY_MOD_RALT, KEY_0, // } + KEY_NONE, KEY_SPACE, // ~ + KEY_NONE, KEY_DELETE // DEL }; -const uint8_t extended_ascii_be[] PROGMEM = {}; +const uint8_t utf8_be[] PROGMEM = { + 0xC2, 0xA3, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, // £ + 0xC2, 0xA7, 0x00, 0x00, KEY_NONE, KEY_6, // § + 0xC2, 0xB0, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_MINUS, // ° + 0xC2, 0xB2, 0x00, 0x00, KEY_NONE, KEY_GRAVE, // ² + 0xC2, 0xB3, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, // ³ + 0xC2, 0xB5, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, // µ + 0xC3, 0xA0, 0x00, 0x00, KEY_NONE, KEY_0, // à + 0xC3, 0xA7, 0x00, 0x00, KEY_NONE, KEY_9, // ç + 0xC3, 0xA8, 0x00, 0x00, KEY_NONE, KEY_7, // è + 0xC3, 0xA9, 0x00, 0x00, KEY_NONE, KEY_2, // é + 0xC3, 0xB9, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, // ù + 0xE2, 0x82, 0xAC, 0x00, KEY_MOD_RALT, KEY_E, // € +}; -const uint8_t utf8_be[] PROGMEM = {}; +const uint8_t combinations_be[] PROGMEM = { + 0x7E, 0x00, 0x00, 0x00, KEY_MOD_RALT, KEY_SLASH, KEY_NONE, KEY_SPACE, // ~ + 0xC2, 0xA8, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_SPACE, // ¨ + 0xC2, 0xB4, 0x00, 0x00, KEY_MOD_RALT, KEY_APOSTROPHE, KEY_NONE, KEY_SPACE, // ´ + 0xC3, 0x80, 0x00, 0x00, KEY_MOD_RALT, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_Q, // À + 0xC3, 0x81, 0x00, 0x00, KEY_MOD_RALT, KEY_APOSTROPHE, KEY_MOD_LSHIFT, KEY_Q, // Á + 0xC3, 0x82, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_Q, //  + 0xC3, 0x83, 0x00, 0x00, KEY_MOD_RALT, KEY_SLASH, KEY_MOD_LSHIFT, KEY_Q, // à + 0xC3, 0x84, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_Q, // Ä + 0xC3, 0x88, 0x00, 0x00, KEY_MOD_RALT, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_E, // È + 0xC3, 0x89, 0x00, 0x00, KEY_MOD_RALT, KEY_APOSTROPHE, KEY_MOD_LSHIFT, KEY_E, // É + 0xC3, 0x8A, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_E, // Ê + 0xC3, 0x8B, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_E, // Ë + 0xC3, 0x8C, 0x00, 0x00, KEY_MOD_RALT, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_I, // Ì + 0xC3, 0x8D, 0x00, 0x00, KEY_MOD_RALT, KEY_APOSTROPHE, KEY_MOD_LSHIFT, KEY_I, // Í + 0xC3, 0x8E, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_I, // Î + 0xC3, 0x8F, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_I, // Ï + 0xC3, 0x91, 0x00, 0x00, KEY_MOD_RALT, KEY_SLASH, KEY_MOD_LSHIFT, KEY_N, // Ñ + 0xC3, 0x92, 0x00, 0x00, KEY_MOD_RALT, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_O, // Ò + 0xC3, 0x93, 0x00, 0x00, KEY_MOD_RALT, KEY_APOSTROPHE, KEY_MOD_LSHIFT, KEY_O, // Ó + 0xC3, 0x94, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_O, // Ô + 0xC3, 0x95, 0x00, 0x00, KEY_MOD_RALT, KEY_SLASH, KEY_MOD_LSHIFT, KEY_O, // Õ + 0xC3, 0x96, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_O, // Ö + 0xC3, 0x99, 0x00, 0x00, KEY_MOD_RALT, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_U, // Ù + 0xC3, 0x9A, 0x00, 0x00, KEY_MOD_RALT, KEY_APOSTROPHE, KEY_MOD_LSHIFT, KEY_U, // Ú + 0xC3, 0x9B, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_U, // Û + 0xC3, 0x9C, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_U, // Ü + 0xC3, 0x9D, 0x00, 0x00, KEY_MOD_RALT, KEY_APOSTROPHE, KEY_MOD_LSHIFT, KEY_Y, // Ý + 0xC3, 0xA1, 0x00, 0x00, KEY_MOD_RALT, KEY_APOSTROPHE, KEY_NONE, KEY_Q, // á + 0xC3, 0xA2, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_NONE, KEY_Q, // â + 0xC3, 0xA3, 0x00, 0x00, KEY_MOD_RALT, KEY_SLASH, KEY_NONE, KEY_Q, // ã + 0xC3, 0xA4, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_Q, // ä + 0xC3, 0xAA, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_NONE, KEY_E, // ê + 0xC3, 0xAB, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_E, // ë + 0xC3, 0xAC, 0x00, 0x00, KEY_MOD_RALT, KEY_BACKSLASH, KEY_NONE, KEY_I, // ì + 0xC3, 0xAD, 0x00, 0x00, KEY_MOD_RALT, KEY_APOSTROPHE, KEY_NONE, KEY_I, // í + 0xC3, 0xAE, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_NONE, KEY_I, // î + 0xC3, 0xAF, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_I, // ï + 0xC3, 0xB1, 0x00, 0x00, KEY_MOD_RALT, KEY_SLASH, KEY_NONE, KEY_N, // ñ + 0xC3, 0xB2, 0x00, 0x00, KEY_MOD_RALT, KEY_BACKSLASH, KEY_NONE, KEY_O, // ò + 0xC3, 0xB3, 0x00, 0x00, KEY_MOD_RALT, KEY_APOSTROPHE, KEY_NONE, KEY_O, // ó + 0xC3, 0xB4, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_NONE, KEY_O, // ô + 0xC3, 0xB5, 0x00, 0x00, KEY_MOD_RALT, KEY_SLASH, KEY_NONE, KEY_O, // õ + 0xC3, 0xB6, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_O, // ö + 0xC3, 0xBA, 0x00, 0x00, KEY_MOD_RALT, KEY_APOSTROPHE, KEY_NONE, KEY_U, // ú + 0xC3, 0xBB, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_NONE, KEY_U, // û + 0xC3, 0xBC, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_U, // ü + 0xC3, 0xBD, 0x00, 0x00, KEY_MOD_RALT, KEY_APOSTROPHE, KEY_NONE, KEY_Y, // ý + 0xC3, 0xBF, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_Y, // ÿ +}; static hid_locale_t locale_be { (uint8_t*)ascii_be, 128, - (uint8_t*)extended_ascii_be, sizeof(extended_ascii_be) / 3, - (uint8_t*)utf8_be, sizeof(utf8_be) / 6 + (uint8_t*)utf8_be, sizeof(utf8_be) / 6, + (uint8_t*)combinations_be, sizeof(combinations_be) / 8, }; \ No newline at end of file diff --git a/atmega_duck/locale_cz.h b/atmega_duck/locale_cz.h index 411f1f0..88c2d9c 100644 --- a/atmega_duck/locale_cz.h +++ b/atmega_duck/locale_cz.h @@ -1,6 +1,6 @@ /* - This software is licensed under the MIT License. See the license file for details. - Source: https://github.com/spacehuhntech/WiFiDuck + This software is licensed under the MIT License. See the license file for details. + Source: https://github.com/spacehuhntech/WiFiDuck */ #pragma once @@ -9,210 +9,294 @@ // Modifier(s), Key const uint8_t ascii_cz[] PROGMEM = { - KEY_NONE, KEY_NONE, // NUL - KEY_NONE, KEY_NONE, // SOH - KEY_NONE, KEY_NONE, // STX - KEY_NONE, KEY_NONE, // ETX - KEY_NONE, KEY_NONE, // EOT - KEY_NONE, KEY_NONE, // ENQ - KEY_NONE, KEY_NONE, // ACK - KEY_NONE, KEY_NONE, // BEL + KEY_NONE, KEY_NONE, // NUL + KEY_NONE, KEY_NONE, // SOH + KEY_NONE, KEY_NONE, // STX + KEY_NONE, KEY_NONE, // ETX + KEY_NONE, KEY_NONE, // EOT + KEY_NONE, KEY_NONE, // ENQ + KEY_NONE, KEY_NONE, // ACK + KEY_NONE, KEY_NONE, // BEL // 8, 0x08 - KEY_NONE, KEY_BACKSPACE, // BS Backspace - KEY_NONE, KEY_TAB, // TAB Tab - KEY_NONE, KEY_ENTER, // LF Enter - - KEY_NONE, KEY_NONE, // VT - KEY_NONE, KEY_NONE, // FF - KEY_NONE, KEY_NONE, // CR - KEY_NONE, KEY_NONE, // SO - KEY_NONE, KEY_NONE, // SI - KEY_NONE, KEY_NONE, // DEL - KEY_NONE, KEY_NONE, // DC1 - KEY_NONE, KEY_NONE, // DC2 - KEY_NONE, KEY_NONE, // DC3 - KEY_NONE, KEY_NONE, // DC4 - KEY_NONE, KEY_NONE, // NAK - KEY_NONE, KEY_NONE, // SYN - KEY_NONE, KEY_NONE, // ETB - KEY_NONE, KEY_NONE, // CAN - KEY_NONE, KEY_NONE, // EM - KEY_NONE, KEY_NONE, // SUB - KEY_NONE, KEY_NONE, // ESC - KEY_NONE, KEY_NONE, // FS - KEY_NONE, KEY_NONE, // GS - KEY_NONE, KEY_NONE, // RS - KEY_NONE, KEY_NONE, // US + KEY_NONE, KEY_BACKSPACE, // BS Backspace + KEY_NONE, KEY_TAB, // TAB Tab + KEY_NONE, KEY_ENTER, // LF Enter + KEY_NONE, KEY_NONE, // VT + KEY_NONE, KEY_NONE, // FF + KEY_NONE, KEY_NONE, // CR + KEY_NONE, KEY_NONE, // SO + KEY_NONE, KEY_NONE, // SI + KEY_NONE, KEY_NONE, // DEL + KEY_NONE, KEY_NONE, // DC1 + KEY_NONE, KEY_NONE, // DC2 + KEY_NONE, KEY_NONE, // DC3 + KEY_NONE, KEY_NONE, // DC4 + KEY_NONE, KEY_NONE, // NAK + KEY_NONE, KEY_NONE, // SYN + KEY_NONE, KEY_NONE, // ETB + KEY_NONE, KEY_NONE, // CAN + KEY_NONE, KEY_NONE, // EM + KEY_NONE, KEY_NONE, // SUB + KEY_NONE, KEY_NONE, // ESC + KEY_NONE, KEY_NONE, // FS + KEY_NONE, KEY_NONE, // GS + KEY_NONE, KEY_NONE, // RS + KEY_NONE, KEY_NONE, // US + // 32, 0x20 - KEY_NONE, KEY_SPACE, // ' ' - KEY_MOD_LSHIFT, KEY_APOSTROPHE, // ! - KEY_MOD_LSHIFT, KEY_SEMICOLON, // " - KEY_MOD_RALT, KEY_X, // # + KEY_NONE, KEY_SPACE, // ' ' + KEY_MOD_LSHIFT, KEY_APOSTROPHE, // ! + KEY_MOD_LSHIFT, KEY_SEMICOLON, // " + KEY_MOD_RALT, KEY_X, // # // 36, 0x24 - KEY_MOD_RALT, KEY_SEMICOLON, // $ - KEY_MOD_LSHIFT, KEY_MINUS, // % - KEY_MOD_RALT, KEY_C, // & - KEY_MOD_LSHIFT, KEY_BACKSLASH, // ' + KEY_MOD_RALT, KEY_SEMICOLON, // $ + KEY_MOD_LSHIFT, KEY_MINUS, // % + KEY_MOD_RALT, KEY_C, // & + KEY_MOD_LSHIFT, KEY_BACKSLASH, // ' // 40, 0x28 - KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // ( - KEY_NONE, KEY_RIGHTBRACE, // ) - KEY_MOD_RALT, KEY_SLASH, // * - KEY_NONE, KEY_1, // + + KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // ( + KEY_NONE, KEY_RIGHTBRACE, // ) + KEY_MOD_RALT, KEY_SLASH, // * + KEY_NONE, KEY_1, // + // 44, 0x2c - KEY_NONE, KEY_COMMA, // , - KEY_NONE, KEY_SLASH, // - - KEY_NONE, KEY_DOT, // . - KEY_MOD_LSHIFT, KEY_LEFTBRACE, // / + KEY_NONE, KEY_COMMA, // , + KEY_NONE, KEY_SLASH, // - + KEY_NONE, KEY_DOT, // . + KEY_MOD_LSHIFT, KEY_LEFTBRACE, // / // 48, 0x30 - KEY_MOD_LSHIFT, KEY_0, // 0 - KEY_MOD_LSHIFT, KEY_1, // 1 - KEY_MOD_LSHIFT, KEY_2, // 2 - KEY_MOD_LSHIFT, KEY_3, // 3 + KEY_MOD_LSHIFT, KEY_0, // 0 + KEY_MOD_LSHIFT, KEY_1, // 1 + KEY_MOD_LSHIFT, KEY_2, // 2 + KEY_MOD_LSHIFT, KEY_3, // 3 // 52, 0x34 - KEY_MOD_LSHIFT, KEY_4, // 4 - KEY_MOD_LSHIFT, KEY_5, // 5 - KEY_MOD_LSHIFT, KEY_6, // 6 - KEY_MOD_LSHIFT, KEY_7, // 7 + KEY_MOD_LSHIFT, KEY_4, // 4 + KEY_MOD_LSHIFT, KEY_5, // 5 + KEY_MOD_LSHIFT, KEY_6, // 6 + KEY_MOD_LSHIFT, KEY_7, // 7 // 56, 0x38 - KEY_MOD_LSHIFT, KEY_8, // 8 - KEY_MOD_LSHIFT, KEY_9, // 9 - KEY_MOD_LSHIFT, KEY_DOT, // : - KEY_NONE, KEY_GRAVE, // ; + KEY_MOD_LSHIFT, KEY_8, // 8 + KEY_MOD_LSHIFT, KEY_9, // 9 + KEY_MOD_LSHIFT, KEY_DOT, // : + KEY_NONE, KEY_GRAVE, // ; // 60, 0x3c - KEY_MOD_RALT, KEY_COMMA, // < - KEY_NONE, KEY_MINUS, // = - KEY_MOD_RALT, KEY_DOT, // > - KEY_MOD_LSHIFT, KEY_COMMA, // ? + KEY_MOD_RALT, KEY_COMMA, // < + KEY_NONE, KEY_MINUS, // = + KEY_MOD_RALT, KEY_DOT, // > + KEY_MOD_LSHIFT, KEY_COMMA, // ? // 64, 0x40 - KEY_MOD_RALT, KEY_V, // @ - KEY_MOD_LSHIFT, KEY_A, // A - KEY_MOD_LSHIFT, KEY_B, // B - KEY_MOD_LSHIFT, KEY_C, // C + KEY_MOD_RALT, KEY_V, // @ + KEY_MOD_LSHIFT, KEY_A, // A + KEY_MOD_LSHIFT, KEY_B, // B + KEY_MOD_LSHIFT, KEY_C, // C // 68, 0x44 - KEY_MOD_LSHIFT, KEY_D, // D - KEY_MOD_LSHIFT, KEY_E, // E - KEY_MOD_LSHIFT, KEY_F, // F - KEY_MOD_LSHIFT, KEY_G, // G + KEY_MOD_LSHIFT, KEY_D, // D + KEY_MOD_LSHIFT, KEY_E, // E + KEY_MOD_LSHIFT, KEY_F, // F + KEY_MOD_LSHIFT, KEY_G, // G // 72, 0x48 - KEY_MOD_LSHIFT, KEY_H, // H - KEY_MOD_LSHIFT, KEY_I, // I - KEY_MOD_LSHIFT, KEY_J, // J - KEY_MOD_LSHIFT, KEY_K, // K + KEY_MOD_LSHIFT, KEY_H, // H + KEY_MOD_LSHIFT, KEY_I, // I + KEY_MOD_LSHIFT, KEY_J, // J + KEY_MOD_LSHIFT, KEY_K, // K // 76, 0x4c - KEY_MOD_LSHIFT, KEY_L, // L - KEY_MOD_LSHIFT, KEY_M, // M - KEY_MOD_LSHIFT, KEY_N, // N - KEY_MOD_LSHIFT, KEY_O, // O + KEY_MOD_LSHIFT, KEY_L, // L + KEY_MOD_LSHIFT, KEY_M, // M + KEY_MOD_LSHIFT, KEY_N, // N + KEY_MOD_LSHIFT, KEY_O, // O // 80, 0x50 - KEY_MOD_LSHIFT, KEY_P, // P - KEY_MOD_LSHIFT, KEY_Q, // Q - KEY_MOD_LSHIFT, KEY_R, // R - KEY_MOD_LSHIFT, KEY_S, // S + KEY_MOD_LSHIFT, KEY_P, // P + KEY_MOD_LSHIFT, KEY_Q, // Q + KEY_MOD_LSHIFT, KEY_R, // R + KEY_MOD_LSHIFT, KEY_S, // S // 84, 0x54 - KEY_MOD_LSHIFT, KEY_T, // T - KEY_MOD_LSHIFT, KEY_U, // U - KEY_MOD_LSHIFT, KEY_V, // V - KEY_MOD_LSHIFT, KEY_W, // W + KEY_MOD_LSHIFT, KEY_T, // T + KEY_MOD_LSHIFT, KEY_U, // U + KEY_MOD_LSHIFT, KEY_V, // V + KEY_MOD_LSHIFT, KEY_W, // W // 88, 0x58 - KEY_MOD_LSHIFT, KEY_X, // X - KEY_MOD_LSHIFT, KEY_Z, // Y - KEY_MOD_LSHIFT, KEY_Y, // Z - KEY_MOD_RALT, KEY_F, // [ + KEY_MOD_LSHIFT, KEY_X, // X + KEY_MOD_LSHIFT, KEY_Z, // Y + KEY_MOD_LSHIFT, KEY_Y, // Z + KEY_MOD_RALT, KEY_F, // [ // 92, 0x5c - KEY_MOD_RALT, KEY_Q, // bslash - KEY_MOD_RALT, KEY_G, // ] - KEY_MOD_RALT, KEY_3, // ^ - KEY_MOD_LSHIFT, KEY_SLASH, // _ + KEY_NONE, KEY_102ND, // bslash + KEY_MOD_RALT, KEY_G, // ] + KEY_MOD_RALT, KEY_3, // ^ + KEY_MOD_LSHIFT, KEY_SLASH, // _ // 96, 0x60 - KEY_MOD_RALT, KEY_7, // ` - KEY_NONE, KEY_A, // a - KEY_NONE, KEY_B, // b - KEY_NONE, KEY_C, // c + KEY_MOD_RALT, KEY_7, // ` + KEY_NONE, KEY_A, // a + KEY_NONE, KEY_B, // b + KEY_NONE, KEY_C, // c // 100, 0x64 - KEY_NONE, KEY_D, // d - KEY_NONE, KEY_E, // e - KEY_NONE, KEY_F, // f - KEY_NONE, KEY_G, // g + KEY_NONE, KEY_D, // d + KEY_NONE, KEY_E, // e + KEY_NONE, KEY_F, // f + KEY_NONE, KEY_G, // g // 104, 0x68 - KEY_NONE, KEY_H, // h - KEY_NONE, KEY_I, // i - KEY_NONE, KEY_J, // j - KEY_NONE, KEY_K, // k + KEY_NONE, KEY_H, // h + KEY_NONE, KEY_I, // i + KEY_NONE, KEY_J, // j + KEY_NONE, KEY_K, // k // 108, 0x6c - KEY_NONE, KEY_L, // l - KEY_NONE, KEY_M, // m - KEY_NONE, KEY_N, // n - KEY_NONE, KEY_O, // o + KEY_NONE, KEY_L, // l + KEY_NONE, KEY_M, // m + KEY_NONE, KEY_N, // n + KEY_NONE, KEY_O, // o // 112, 0x70 - KEY_NONE, KEY_P, // p - KEY_NONE, KEY_Q, // q - KEY_NONE, KEY_R, // r - KEY_NONE, KEY_S, // s + KEY_NONE, KEY_P, // p + KEY_NONE, KEY_Q, // q + KEY_NONE, KEY_R, // r + KEY_NONE, KEY_S, // s // 116, 0x74 - KEY_NONE, KEY_T, // t - KEY_NONE, KEY_U, // u - KEY_NONE, KEY_V, // v - KEY_NONE, KEY_W, // w + KEY_NONE, KEY_T, // t + KEY_NONE, KEY_U, // u + KEY_NONE, KEY_V, // v + KEY_NONE, KEY_W, // w // 120, 0x78 - KEY_NONE, KEY_X, // x - KEY_NONE, KEY_Z, // y - KEY_NONE, KEY_Y, // z - KEY_MOD_RALT, KEY_B, // { + KEY_NONE, KEY_X, // x + KEY_NONE, KEY_Z, // y + KEY_NONE, KEY_Y, // z + KEY_MOD_RALT, KEY_B, // { // 124, 0x7c - KEY_MOD_RALT, KEY_W, // | - KEY_MOD_RALT, KEY_N, // } - KEY_MOD_RALT, KEY_1, // ~ - KEY_NONE, KEY_NONE // DEL + KEY_MOD_LSHIFT, KEY_102ND, // | + KEY_MOD_RALT, KEY_N, // } + KEY_MOD_RALT, KEY_1, // ~ + KEY_NONE, KEY_DELETE // DEL }; const uint8_t utf8_cz[] PROGMEM = { - 0xc2, 0xb4, 0x00, 0x00, KEY_NONE, KEY_EQUAL, // ´ - 0xcb, 0x87, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, // ˇ - 0xcb, 0x9a, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, // ° - 0xc3, 0xa1, 0x00, 0x00, KEY_NONE, KEY_8, // á - 0xc3, 0xa9, 0x00, 0x00, KEY_NONE, KEY_0, // é - 0xc3, 0xad, 0x00, 0x00, KEY_NONE, KEY_9, // í - 0xc3, 0xb3, 0x00, 0x00, KEY_NONE, KEY_O, // ó press "´" before - 0xc3, 0xba, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, // ú - 0xc3, 0xbd, 0x00, 0x00, KEY_NONE, KEY_7, // ý - 0xc4, 0x8d, 0x00, 0x00, KEY_NONE, KEY_4, // č - 0xc4, 0x8f, 0x00, 0x00, KEY_NONE, KEY_D, // ď press "ˇ" before - 0xc4, 0x9b, 0x00, 0x00, KEY_NONE, KEY_2, // ě - 0xc5, 0x88, 0x00, 0x00, KEY_NONE, KEY_N, // ň press "ˇ" before - 0xc5, 0x99, 0x00, 0x00, KEY_NONE, KEY_5, // ř - 0xc5, 0xa1, 0x00, 0x00, KEY_NONE, KEY_3, // š - 0xc5, 0xa5, 0x00, 0x00, KEY_NONE, KEY_T, // ť press "ˇ" before - 0xc5, 0xaf, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON, // ů - 0xc5, 0xbe, 0x00, 0x00, KEY_NONE, KEY_6 // ž + 0xC2, 0xA4, 0x00, 0x00, KEY_MOD_RALT, KEY_BACKSLASH, // ¤ + 0xC2, 0xA7, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, // § + 0xC2, 0xA8, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, // ¨ + 0xC2, 0xB0, 0x00, 0x00, KEY_MOD_RALT, KEY_5, // ° + 0xC2, 0xB4, 0x00, 0x00, KEY_MOD_RALT, KEY_9, // ´ + 0xC2, 0xB8, 0x00, 0x00, KEY_MOD_RALT, KEY_EQUAL, // ¸ + 0xC3, 0x97, 0x00, 0x00, KEY_MOD_RALT, KEY_RIGHTBRACE, // × + 0xC3, 0x9F, 0x00, 0x00, KEY_MOD_RALT, KEY_APOSTROPHE, // ß + 0xC3, 0xA1, 0x00, 0x00, KEY_NONE, KEY_8, // á + 0xC3, 0xA9, 0x00, 0x00, KEY_NONE, KEY_0, // é + 0xC3, 0xAD, 0x00, 0x00, KEY_NONE, KEY_9, // í + 0xC3, 0xB7, 0x00, 0x00, KEY_MOD_RALT, KEY_LEFTBRACE, // ÷ + 0xC3, 0xBA, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, // ú + 0xC3, 0xBD, 0x00, 0x00, KEY_NONE, KEY_7, // ý + 0xC4, 0x8D, 0x00, 0x00, KEY_NONE, KEY_4, // č + 0xC4, 0x90, 0x00, 0x00, KEY_MOD_RALT, KEY_D, // Đ + 0xC4, 0x91, 0x00, 0x00, KEY_MOD_RALT, KEY_S, // đ + 0xC4, 0x9B, 0x00, 0x00, KEY_NONE, KEY_2, // ě + 0xC5, 0x81, 0x00, 0x00, KEY_MOD_RALT, KEY_L, // Ł + 0xC5, 0x82, 0x00, 0x00, KEY_MOD_RALT, KEY_K, // ł + 0xC5, 0x99, 0x00, 0x00, KEY_NONE, KEY_5, // ř + 0xC5, 0xA1, 0x00, 0x00, KEY_NONE, KEY_3, // š + 0xC5, 0xAF, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON, // ů + 0xC5, 0xBE, 0x00, 0x00, KEY_NONE, KEY_6, // ž + 0xE2, 0x82, 0xAC, 0x00, KEY_MOD_RALT, KEY_E, // € }; -static hid_locale_t locale_cz{ - (uint8_t *)ascii_cz, 128, - NULL, 0, - (uint8_t *)utf8_cz, sizeof(utf8_cz) / 6 +const uint8_t combinations_cz[] PROGMEM = { + 0xC2, 0xB7, 0x00, 0x00, KEY_MOD_RALT, KEY_8, KEY_NONE, KEY_SPACE, // · + 0xC3, 0x81, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_A, // Á + 0xC3, 0x84, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_A, // Ä + 0xC3, 0x85, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_A, // Å + 0xC3, 0x89, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_E, // É + 0xC3, 0x8B, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_E, // Ë + 0xC3, 0x8D, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_I, // Í + 0xC3, 0x8F, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_I, // Ï + 0xC3, 0x93, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_O, // Ó + 0xC3, 0x96, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_O, // Ö + 0xC3, 0x9A, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_U, // Ú + 0xC3, 0x9C, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_U, // Ü + 0xC3, 0x9D, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_Z, // Ý + 0xC3, 0xA4, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, KEY_NONE, KEY_A, // ä + 0xC3, 0xA5, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_NONE, KEY_A, // å + 0xC3, 0xAB, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, KEY_NONE, KEY_E, // ë + 0xC3, 0xAF, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, KEY_NONE, KEY_I, // ï + 0xC3, 0xB3, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_O, // ó + 0xC3, 0xB6, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, KEY_NONE, KEY_O, // ö + 0xC3, 0xBC, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, KEY_NONE, KEY_U, // ü + 0xC3, 0xBF, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, KEY_NONE, KEY_Z, // ÿ + 0xC4, 0x82, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_MOD_LSHIFT, KEY_A, // Ă + 0xC4, 0x83, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_NONE, KEY_A, // ă + 0xC4, 0x84, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_MOD_LSHIFT, KEY_A, // Ą + 0xC4, 0x85, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_NONE, KEY_A, // ą + 0xC4, 0x86, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_C, // Ć + 0xC4, 0x87, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_C, // ć + 0xC4, 0x8C, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_C, // Č + 0xC4, 0x8E, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_D, // Ď + 0xC4, 0x8F, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_D, // ď + 0xC4, 0x96, 0x00, 0x00, KEY_MOD_RALT, KEY_8, KEY_MOD_LSHIFT, KEY_E, // Ė + 0xC4, 0x97, 0x00, 0x00, KEY_MOD_RALT, KEY_8, KEY_NONE, KEY_E, // ė + 0xC4, 0x98, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_MOD_LSHIFT, KEY_E, // Ę + 0xC4, 0x99, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_NONE, KEY_E, // ę + 0xC4, 0x9A, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_E, // Ě + 0xC4, 0x9E, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_MOD_LSHIFT, KEY_G, // Ğ + 0xC4, 0x9F, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_NONE, KEY_G, // ğ + 0xC4, 0xAE, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_MOD_LSHIFT, KEY_I, // Į + 0xC4, 0xAF, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_NONE, KEY_I, // į + 0xC4, 0xB0, 0x00, 0x00, KEY_MOD_RALT, KEY_8, KEY_MOD_LSHIFT, KEY_I, // İ + 0xC4, 0xB1, 0x00, 0x00, KEY_MOD_RALT, KEY_8, KEY_NONE, KEY_I, // ı + 0xC4, 0xB9, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_L, // Ĺ + 0xC4, 0xBA, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_L, // ĺ + 0xC4, 0xBD, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_L, // Ľ + 0xC4, 0xBE, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_L, // ľ + 0xC5, 0x83, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_N, // Ń + 0xC5, 0x84, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_N, // ń + 0xC5, 0x87, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_N, // Ň + 0xC5, 0x88, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_N, // ň + 0xC5, 0x90, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_MOD_LSHIFT, KEY_O, // Ő + 0xC5, 0x91, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_NONE, KEY_O, // ő + 0xC5, 0x94, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_R, // Ŕ + 0xC5, 0x95, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_R, // ŕ + 0xC5, 0x98, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_R, // Ř + 0xC5, 0x9A, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_S, // Ś + 0xC5, 0x9B, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_S, // ś + 0xC5, 0xA0, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_S, // Š + 0xC5, 0xA4, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_T, // Ť + 0xC5, 0xA5, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_T, // ť + 0xC5, 0xAE, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_U, // Ů + 0xC5, 0xB0, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_MOD_LSHIFT, KEY_U, // Ű + 0xC5, 0xB1, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_NONE, KEY_U, // ű + 0xC5, 0xB2, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_MOD_LSHIFT, KEY_U, // Ų + 0xC5, 0xB3, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_NONE, KEY_U, // ų + 0xC5, 0xB8, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_Z, // Ÿ + 0xC5, 0xB9, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_Y, // Ź + 0xC5, 0xBA, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_Y, // ź + 0xC5, 0xBB, 0x00, 0x00, KEY_MOD_RALT, KEY_8, KEY_MOD_LSHIFT, KEY_Y, // Ż + 0xC5, 0xBC, 0x00, 0x00, KEY_MOD_RALT, KEY_8, KEY_NONE, KEY_Y, // ż + 0xC5, 0xBD, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_Y, // Ž + 0xCB, 0x87, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_SPACE, // ˇ + 0xCB, 0x98, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_NONE, KEY_SPACE, // ˘ + 0xCB, 0x9B, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_NONE, KEY_SPACE, // ˛ + 0xCB, 0x9D, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_NONE, KEY_SPACE, // ˝ }; + +static hid_locale_t locale_cz { + (uint8_t*)ascii_cz, 128, + (uint8_t*)utf8_cz, sizeof(utf8_cz) / 6, + (uint8_t*)combinations_cz, sizeof(combinations_cz) / 8, +}; \ No newline at end of file diff --git a/atmega_duck/locale_de.h b/atmega_duck/locale_de.h index db4b69c..f6ecad4 100644 --- a/atmega_duck/locale_de.h +++ b/atmega_duck/locale_de.h @@ -1,6 +1,6 @@ /* - This software is licensed under the MIT License. See the license file for details. - Source: https://github.com/spacehuhntech/WiFiDuck + This software is licensed under the MIT License. See the license file for details. + Source: https://github.com/spacehuhntech/WiFiDuck */ #pragma once @@ -9,216 +9,236 @@ // Modifier(s), Key const uint8_t ascii_de[] PROGMEM = { - KEY_NONE, KEY_NONE, // NUL - KEY_NONE, KEY_NONE, // SOH - KEY_NONE, KEY_NONE, // STX - KEY_NONE, KEY_NONE, // ETX - KEY_NONE, KEY_NONE, // EOT - KEY_NONE, KEY_NONE, // ENQ - KEY_NONE, KEY_NONE, // ACK - KEY_NONE, KEY_NONE, // BEL + KEY_NONE, KEY_NONE, // NUL + KEY_NONE, KEY_NONE, // SOH + KEY_NONE, KEY_NONE, // STX + KEY_NONE, KEY_NONE, // ETX + KEY_NONE, KEY_NONE, // EOT + KEY_NONE, KEY_NONE, // ENQ + KEY_NONE, KEY_NONE, // ACK + KEY_NONE, KEY_NONE, // BEL // 8, 0x08 - KEY_NONE, KEY_BACKSPACE, // BS Backspace - KEY_NONE, KEY_TAB, // TAB Tab - KEY_NONE, KEY_ENTER, // LF Enter - - KEY_NONE, KEY_NONE, // VT - KEY_NONE, KEY_NONE, // FF - KEY_NONE, KEY_NONE, // CR - KEY_NONE, KEY_NONE, // SO - KEY_NONE, KEY_NONE, // SI - KEY_NONE, KEY_NONE, // DEL - KEY_NONE, KEY_NONE, // DC1 - KEY_NONE, KEY_NONE, // DC2 - KEY_NONE, KEY_NONE, // DC3 - KEY_NONE, KEY_NONE, // DC4 - KEY_NONE, KEY_NONE, // NAK - KEY_NONE, KEY_NONE, // SYN - KEY_NONE, KEY_NONE, // ETB - KEY_NONE, KEY_NONE, // CAN - KEY_NONE, KEY_NONE, // EM - KEY_NONE, KEY_NONE, // SUB - KEY_NONE, KEY_NONE, // ESC - KEY_NONE, KEY_NONE, // FS - KEY_NONE, KEY_NONE, // GS - KEY_NONE, KEY_NONE, // RS - KEY_NONE, KEY_NONE, // US - + KEY_NONE, KEY_BACKSPACE, // BS Backspace + KEY_NONE, KEY_TAB, // TAB Tab + KEY_NONE, KEY_ENTER, // LF Enter + + KEY_NONE, KEY_NONE, // VT + KEY_NONE, KEY_NONE, // FF + KEY_NONE, KEY_NONE, // CR + KEY_NONE, KEY_NONE, // SO + KEY_NONE, KEY_NONE, // SI + KEY_NONE, KEY_NONE, // DEL + KEY_NONE, KEY_NONE, // DC1 + KEY_NONE, KEY_NONE, // DC2 + KEY_NONE, KEY_NONE, // DC3 + KEY_NONE, KEY_NONE, // DC4 + KEY_NONE, KEY_NONE, // NAK + KEY_NONE, KEY_NONE, // SYN + KEY_NONE, KEY_NONE, // ETB + KEY_NONE, KEY_NONE, // CAN + KEY_NONE, KEY_NONE, // EM + KEY_NONE, KEY_NONE, // SUB + KEY_NONE, KEY_NONE, // ESC + KEY_NONE, KEY_NONE, // FS + KEY_NONE, KEY_NONE, // GS + KEY_NONE, KEY_NONE, // RS + KEY_NONE, KEY_NONE, // US + // 32, 0x20 - KEY_NONE, KEY_SPACE, // ' ' - KEY_MOD_LSHIFT, KEY_1, // ! - KEY_MOD_LSHIFT, KEY_2, // " - KEY_NONE, KEY_BACKSLASH, // # + KEY_NONE, KEY_SPACE, // ' ' + KEY_MOD_LSHIFT, KEY_1, // ! + KEY_MOD_LSHIFT, KEY_2, // " + KEY_NONE, KEY_BACKSLASH, // # // 36, 0x24 - KEY_MOD_LSHIFT, KEY_4, // $ - KEY_MOD_LSHIFT, KEY_5, // % - KEY_MOD_LSHIFT, KEY_6, // & - KEY_MOD_LSHIFT, KEY_BACKSLASH, // ' + KEY_MOD_LSHIFT, KEY_4, // $ + KEY_MOD_LSHIFT, KEY_5, // % + KEY_MOD_LSHIFT, KEY_6, // & + KEY_MOD_LSHIFT, KEY_BACKSLASH, // ' // 40, 0x28 - KEY_MOD_LSHIFT, KEY_8, // ( - KEY_MOD_LSHIFT, KEY_9, // ) - KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // * - KEY_NONE, KEY_RIGHTBRACE, // + + KEY_MOD_LSHIFT, KEY_8, // ( + KEY_MOD_LSHIFT, KEY_9, // ) + KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // * + KEY_NONE, KEY_RIGHTBRACE, // + // 44, 0x2c - KEY_NONE, KEY_COMMA, // , - KEY_NONE, KEY_SLASH, // - - KEY_NONE, KEY_DOT, // . - KEY_MOD_LSHIFT, KEY_7, // / + KEY_NONE, KEY_COMMA, // , + KEY_NONE, KEY_SLASH, // - + KEY_NONE, KEY_DOT, // . + KEY_MOD_LSHIFT, KEY_7, // / // 48, 0x30 - KEY_NONE, KEY_0, // 0 - KEY_NONE, KEY_1, // 1 - KEY_NONE, KEY_2, // 2 - KEY_NONE, KEY_3, // 3 + KEY_NONE, KEY_0, // 0 + KEY_NONE, KEY_1, // 1 + KEY_NONE, KEY_2, // 2 + KEY_NONE, KEY_3, // 3 // 52, 0x34 - KEY_NONE, KEY_4, // 4 - KEY_NONE, KEY_5, // 5 - KEY_NONE, KEY_6, // 6 - KEY_NONE, KEY_7, // 7 + KEY_NONE, KEY_4, // 4 + KEY_NONE, KEY_5, // 5 + KEY_NONE, KEY_6, // 6 + KEY_NONE, KEY_7, // 7 // 56, 0x38 - KEY_NONE, KEY_8, // 8 - KEY_NONE, KEY_9, // 9 - KEY_MOD_LSHIFT, KEY_DOT, // : - KEY_MOD_LSHIFT, KEY_COMMA, // ; + KEY_NONE, KEY_8, // 8 + KEY_NONE, KEY_9, // 9 + KEY_MOD_LSHIFT, KEY_DOT, // : + KEY_MOD_LSHIFT, KEY_COMMA, // ; // 60, 0x3c - KEY_NONE, KEY_102ND, // < - KEY_MOD_LSHIFT, KEY_0, // = - KEY_MOD_LSHIFT, KEY_102ND, // > - KEY_MOD_LSHIFT, KEY_MINUS, // ? + KEY_NONE, KEY_102ND, // < + KEY_MOD_LSHIFT, KEY_0, // = + KEY_MOD_LSHIFT, KEY_102ND, // > + KEY_MOD_LSHIFT, KEY_MINUS, // ? // 64, 0x40 - KEY_MOD_RALT, KEY_Q, // @ - KEY_MOD_LSHIFT, KEY_A, // A - KEY_MOD_LSHIFT, KEY_B, // B - KEY_MOD_LSHIFT, KEY_C, // C + KEY_MOD_RALT, KEY_Q, // @ + KEY_MOD_LSHIFT, KEY_A, // A + KEY_MOD_LSHIFT, KEY_B, // B + KEY_MOD_LSHIFT, KEY_C, // C // 68, 0x44 - KEY_MOD_LSHIFT, KEY_D, // D - KEY_MOD_LSHIFT, KEY_E, // E - KEY_MOD_LSHIFT, KEY_F, // F - KEY_MOD_LSHIFT, KEY_G, // G + KEY_MOD_LSHIFT, KEY_D, // D + KEY_MOD_LSHIFT, KEY_E, // E + KEY_MOD_LSHIFT, KEY_F, // F + KEY_MOD_LSHIFT, KEY_G, // G // 72, 0x48 - KEY_MOD_LSHIFT, KEY_H, // H - KEY_MOD_LSHIFT, KEY_I, // I - KEY_MOD_LSHIFT, KEY_J, // J - KEY_MOD_LSHIFT, KEY_K, // K + KEY_MOD_LSHIFT, KEY_H, // H + KEY_MOD_LSHIFT, KEY_I, // I + KEY_MOD_LSHIFT, KEY_J, // J + KEY_MOD_LSHIFT, KEY_K, // K // 76, 0x4c - KEY_MOD_LSHIFT, KEY_L, // L - KEY_MOD_LSHIFT, KEY_M, // M - KEY_MOD_LSHIFT, KEY_N, // N - KEY_MOD_LSHIFT, KEY_O, // O + KEY_MOD_LSHIFT, KEY_L, // L + KEY_MOD_LSHIFT, KEY_M, // M + KEY_MOD_LSHIFT, KEY_N, // N + KEY_MOD_LSHIFT, KEY_O, // O // 80, 0x50 - KEY_MOD_LSHIFT, KEY_P, // P - KEY_MOD_LSHIFT, KEY_Q, // Q - KEY_MOD_LSHIFT, KEY_R, // R - KEY_MOD_LSHIFT, KEY_S, // S + KEY_MOD_LSHIFT, KEY_P, // P + KEY_MOD_LSHIFT, KEY_Q, // Q + KEY_MOD_LSHIFT, KEY_R, // R + KEY_MOD_LSHIFT, KEY_S, // S // 84, 0x54 - KEY_MOD_LSHIFT, KEY_T, // T - KEY_MOD_LSHIFT, KEY_U, // U - KEY_MOD_LSHIFT, KEY_V, // V - KEY_MOD_LSHIFT, KEY_W, // W + KEY_MOD_LSHIFT, KEY_T, // T + KEY_MOD_LSHIFT, KEY_U, // U + KEY_MOD_LSHIFT, KEY_V, // V + KEY_MOD_LSHIFT, KEY_W, // W // 88, 0x58 - KEY_MOD_LSHIFT, KEY_X, // X - KEY_MOD_LSHIFT, KEY_Z, // Y - KEY_MOD_LSHIFT, KEY_Y, // Z - KEY_MOD_RALT, KEY_8, // [ + KEY_MOD_LSHIFT, KEY_X, // X + KEY_MOD_LSHIFT, KEY_Z, // Y + KEY_MOD_LSHIFT, KEY_Y, // Z + KEY_MOD_RALT, KEY_8, // [ // 92, 0x5c - KEY_MOD_RALT, KEY_MINUS, // bslash - KEY_MOD_RALT, KEY_9, // ] - KEY_NONE, KEY_GRAVE, // ^ - KEY_MOD_LSHIFT, KEY_SLASH, // _ + KEY_MOD_RALT, KEY_MINUS, // bslash + KEY_MOD_RALT, KEY_9, // ] + KEY_NONE, KEY_SPACE, // ^ + KEY_MOD_LSHIFT, KEY_SLASH, // _ // 96, 0x60 - KEY_MOD_LSHIFT, KEY_EQUAL, // ` - KEY_NONE, KEY_A, // a - KEY_NONE, KEY_B, // b - KEY_NONE, KEY_C, // c + KEY_NONE, KEY_SPACE, // ` + KEY_NONE, KEY_A, // a + KEY_NONE, KEY_B, // b + KEY_NONE, KEY_C, // c // 100, 0x64 - KEY_NONE, KEY_D, // d - KEY_NONE, KEY_E, // e - KEY_NONE, KEY_F, // f - KEY_NONE, KEY_G, // g + KEY_NONE, KEY_D, // d + KEY_NONE, KEY_E, // e + KEY_NONE, KEY_F, // f + KEY_NONE, KEY_G, // g // 104, 0x68 - KEY_NONE, KEY_H, // h - KEY_NONE, KEY_I, // i - KEY_NONE, KEY_J, // j - KEY_NONE, KEY_K, // k + KEY_NONE, KEY_H, // h + KEY_NONE, KEY_I, // i + KEY_NONE, KEY_J, // j + KEY_NONE, KEY_K, // k // 108, 0x6c - KEY_NONE, KEY_L, // l - KEY_NONE, KEY_M, // m - KEY_NONE, KEY_N, // n - KEY_NONE, KEY_O, // o + KEY_NONE, KEY_L, // l + KEY_NONE, KEY_M, // m + KEY_NONE, KEY_N, // n + KEY_NONE, KEY_O, // o // 112, 0x70 - KEY_NONE, KEY_P, // p - KEY_NONE, KEY_Q, // q - KEY_NONE, KEY_R, // r - KEY_NONE, KEY_S, // s + KEY_NONE, KEY_P, // p + KEY_NONE, KEY_Q, // q + KEY_NONE, KEY_R, // r + KEY_NONE, KEY_S, // s // 116, 0x74 - KEY_NONE, KEY_T, // t - KEY_NONE, KEY_U, // u - KEY_NONE, KEY_V, // v - KEY_NONE, KEY_W, // w + KEY_NONE, KEY_T, // t + KEY_NONE, KEY_U, // u + KEY_NONE, KEY_V, // v + KEY_NONE, KEY_W, // w // 120, 0x78 - KEY_NONE, KEY_X, // x - KEY_NONE, KEY_Z, // y - KEY_NONE, KEY_Y, // z - KEY_MOD_RALT, KEY_7, // { + KEY_NONE, KEY_X, // x + KEY_NONE, KEY_Z, // y + KEY_NONE, KEY_Y, // z + KEY_MOD_RALT, KEY_7, // { // 124, 0x7c - KEY_MOD_RALT, KEY_102ND, // | - KEY_MOD_RALT, KEY_0, // } - KEY_MOD_RALT, KEY_RIGHTBRACE, // ~ - KEY_NONE, KEY_BACKSPACE, // DEL + KEY_MOD_RALT, KEY_102ND, // | + KEY_MOD_RALT, KEY_0, // } + KEY_MOD_RALT, KEY_RIGHTBRACE, // ~ + KEY_NONE, KEY_DELETE // DEL }; -const uint8_t extended_ascii_de[] PROGMEM = { - 0x84, KEY_NONE, KEY_APOSTROPHE, // ä - 0x94, KEY_NONE, KEY_SEMICOLON, // ö - 0x81, KEY_NONE, KEY_LEFTBRACE, // ü - 0x8e, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // Ä - 0x99, KEY_MOD_LSHIFT, KEY_SEMICOLON, // Ö - 0x9A, KEY_MOD_LSHIFT, KEY_LEFTBRACE, // Ü - 0xE1, KEY_NONE, KEY_MINUS, // ß - 0xF8, KEY_MOD_LSHIFT, KEY_GRAVE, // ° - 0xFD, KEY_MOD_RALT, KEY_2 // ² +const uint8_t utf8_de[] PROGMEM = { + 0xC2, 0xA7, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_3, // § + 0xC2, 0xB0, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, // ° + 0xC2, 0xB2, 0x00, 0x00, KEY_MOD_RALT, KEY_2, // ² + 0xC2, 0xB3, 0x00, 0x00, KEY_MOD_RALT, KEY_3, // ³ + 0xC3, 0x84, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // Ä + 0xC3, 0x96, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_SEMICOLON, // Ö + 0xC3, 0x9C, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, // Ü + 0xC3, 0x9F, 0x00, 0x00, KEY_NONE, KEY_MINUS, // ß + 0xC3, 0xA4, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, // ä + 0xC3, 0xB6, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON, // ö + 0xC3, 0xBC, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, // ü + 0xE2, 0x82, 0xAC, 0x00, KEY_MOD_RALT, KEY_E, // € }; -const uint8_t utf8_de[] PROGMEM = { - 0xc3, 0xa4, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, // ä - 0xc3, 0xb6, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON, // ö - 0xc3, 0xbc, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, // ü - 0xc3, 0x84, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // Ä - 0xc3, 0x96, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_SEMICOLON, // Ö - 0xc3, 0x9c, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, // Ü - 0xc3, 0x9f, 0x00, 0x00, KEY_NONE, KEY_MINUS, // ß - 0xc2, 0xa7, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_3, // § - 0xc2, 0xb0, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, // ° - 0xe2, 0x82, 0xac, 0x00, KEY_MOD_RALT, KEY_E, // € - 0xc2, 0xb2, 0x00, 0x00, KEY_MOD_RALT, KEY_2, // ² - 0xc2, 0xb3, 0x00, 0x00, KEY_MOD_RALT, KEY_3 // ³ +const uint8_t combinations_de[] PROGMEM = { + 0x5E, 0x00, 0x00, 0x00, KEY_NONE, KEY_GRAVE, KEY_NONE, KEY_SPACE, // ^ + 0x60, 0x00, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_SPACE, // ` + 0xC2, 0xB4, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_SPACE, // ´ + 0xC3, 0x88, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_E, // È + 0xC3, 0x89, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_E, // É + 0xC3, 0x8A, 0x00, 0x00, KEY_NONE, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_E, // Ê + 0xC3, 0x8C, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_I, // Ì + 0xC3, 0x8D, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_I, // Í + 0xC3, 0x8E, 0x00, 0x00, KEY_NONE, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_I, // Î + 0xC3, 0x92, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_O, // Ò + 0xC3, 0x93, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_O, // Ó + 0xC3, 0x94, 0x00, 0x00, KEY_NONE, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_O, // Ô + 0xC3, 0x99, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_U, // Ù + 0xC3, 0x9A, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_U, // Ú + 0xC3, 0x9B, 0x00, 0x00, KEY_NONE, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_U, // Û + 0xC3, 0x9D, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_Z, // Ý + 0xC3, 0xA8, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_E, // è + 0xC3, 0xA9, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_E, // é + 0xC3, 0xAA, 0x00, 0x00, KEY_NONE, KEY_GRAVE, KEY_NONE, KEY_E, // ê + 0xC3, 0xAC, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_I, // ì + 0xC3, 0xAD, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_I, // í + 0xC3, 0xAE, 0x00, 0x00, KEY_NONE, KEY_GRAVE, KEY_NONE, KEY_I, // î + 0xC3, 0xB2, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_O, // ò + 0xC3, 0xB3, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_O, // ó + 0xC3, 0xB4, 0x00, 0x00, KEY_NONE, KEY_GRAVE, KEY_NONE, KEY_O, // ô + 0xC3, 0xB9, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_U, // ù + 0xC3, 0xBA, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_U, // ú + 0xC3, 0xBB, 0x00, 0x00, KEY_NONE, KEY_GRAVE, KEY_NONE, KEY_U, // û + 0xC3, 0xBD, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_Z, // ý }; static hid_locale_t locale_de { - (uint8_t*)ascii_de, sizeof(ascii_de) / 2, - (uint8_t*)extended_ascii_de, sizeof(extended_ascii_de) / 3, - (uint8_t*)utf8_de, sizeof(utf8_de) / 6 + (uint8_t*)ascii_de, 128, + (uint8_t*)utf8_de, sizeof(utf8_de) / 6, + (uint8_t*)combinations_de, sizeof(combinations_de) / 8, }; \ No newline at end of file diff --git a/atmega_duck/locale_dk.h b/atmega_duck/locale_dk.h index 8c08151..ee61e06 100644 --- a/atmega_duck/locale_dk.h +++ b/atmega_duck/locale_dk.h @@ -1,7 +1,6 @@ /* - Copyright (c) 2019 Stefan Kremser - This software is licensed under the MIT License. See the license file for details. - Source: github.com/spacehuhn/WiFiDuck + This software is licensed under the MIT License. See the license file for details. + Source: https://github.com/spacehuhntech/WiFiDuck */ #pragma once @@ -10,211 +9,253 @@ // Modifier(s), Key const uint8_t ascii_dk[] PROGMEM = { - KEY_NONE, KEY_NONE, // NUL - KEY_NONE, KEY_NONE, // SOH - KEY_NONE, KEY_NONE, // STX - KEY_NONE, KEY_NONE, // ETX - KEY_NONE, KEY_NONE, // EOT - KEY_NONE, KEY_NONE, // ENQ - KEY_NONE, KEY_NONE, // ACK - KEY_NONE, KEY_NONE, // BEL + KEY_NONE, KEY_NONE, // NUL + KEY_NONE, KEY_NONE, // SOH + KEY_NONE, KEY_NONE, // STX + KEY_NONE, KEY_NONE, // ETX + KEY_NONE, KEY_NONE, // EOT + KEY_NONE, KEY_NONE, // ENQ + KEY_NONE, KEY_NONE, // ACK + KEY_NONE, KEY_NONE, // BEL // 8, 0x08 - KEY_NONE, KEY_BACKSPACE, // BS Backspace - KEY_NONE, KEY_TAB, // TAB Tab - KEY_NONE, KEY_ENTER, // LF Enter - - KEY_NONE, KEY_NONE, // VT - KEY_NONE, KEY_NONE, // FF - KEY_NONE, KEY_NONE, // CR - KEY_NONE, KEY_NONE, // SO - KEY_NONE, KEY_NONE, // SI - KEY_NONE, KEY_NONE, // DEL - KEY_NONE, KEY_NONE, // DC1 - KEY_NONE, KEY_NONE, // DC2 - KEY_NONE, KEY_NONE, // DC3 - KEY_NONE, KEY_NONE, // DC4 - KEY_NONE, KEY_NONE, // NAK - KEY_NONE, KEY_NONE, // SYN - KEY_NONE, KEY_NONE, // ETB - KEY_NONE, KEY_NONE, // CAN - KEY_NONE, KEY_NONE, // EM - KEY_NONE, KEY_NONE, // SUB - KEY_NONE, KEY_NONE, // ESC - KEY_NONE, KEY_NONE, // FS - KEY_NONE, KEY_NONE, // GS - KEY_NONE, KEY_NONE, // RS - KEY_NONE, KEY_NONE, // US + KEY_NONE, KEY_BACKSPACE, // BS Backspace + KEY_NONE, KEY_TAB, // TAB Tab + KEY_NONE, KEY_ENTER, // LF Enter + KEY_NONE, KEY_NONE, // VT + KEY_NONE, KEY_NONE, // FF + KEY_NONE, KEY_NONE, // CR + KEY_NONE, KEY_NONE, // SO + KEY_NONE, KEY_NONE, // SI + KEY_NONE, KEY_NONE, // DEL + KEY_NONE, KEY_NONE, // DC1 + KEY_NONE, KEY_NONE, // DC2 + KEY_NONE, KEY_NONE, // DC3 + KEY_NONE, KEY_NONE, // DC4 + KEY_NONE, KEY_NONE, // NAK + KEY_NONE, KEY_NONE, // SYN + KEY_NONE, KEY_NONE, // ETB + KEY_NONE, KEY_NONE, // CAN + KEY_NONE, KEY_NONE, // EM + KEY_NONE, KEY_NONE, // SUB + KEY_NONE, KEY_NONE, // ESC + KEY_NONE, KEY_NONE, // FS + KEY_NONE, KEY_NONE, // GS + KEY_NONE, KEY_NONE, // RS + KEY_NONE, KEY_NONE, // US + // 32, 0x20 - KEY_NONE, KEY_SPACE, // ' ' - KEY_MOD_LSHIFT, KEY_1, // ! - KEY_MOD_LSHIFT, KEY_2, // " - KEY_MOD_LSHIFT, KEY_3, // # + KEY_NONE, KEY_SPACE, // ' ' + KEY_MOD_LSHIFT, KEY_1, // ! + KEY_MOD_LSHIFT, KEY_2, // " + KEY_MOD_LSHIFT, KEY_3, // # // 36, 0x24 - KEY_MOD_RALT, KEY_4, // $ - KEY_MOD_LSHIFT, KEY_5, // % - KEY_MOD_LSHIFT, KEY_6, // & - KEY_NONE, KEY_BACKSLASH, // ' + KEY_MOD_RALT, KEY_4, // $ + KEY_MOD_LSHIFT, KEY_5, // % + KEY_MOD_LSHIFT, KEY_6, // & + KEY_NONE, KEY_BACKSLASH, // ' // 40, 0x28 - KEY_MOD_LSHIFT, KEY_8, // ( - KEY_MOD_LSHIFT, KEY_9, // ) - KEY_MOD_LSHIFT, KEY_BACKSLASH, // * - KEY_NONE, KEY_MINUS, // + + KEY_MOD_LSHIFT, KEY_8, // ( + KEY_MOD_LSHIFT, KEY_9, // ) + KEY_MOD_LSHIFT, KEY_BACKSLASH, // * + KEY_NONE, KEY_MINUS, // + // 44, 0x2c - KEY_NONE, KEY_COMMA, // , - KEY_NONE, KEY_SLASH, // - - KEY_NONE, KEY_DOT, // . - KEY_MOD_LSHIFT, KEY_7, // / + KEY_NONE, KEY_COMMA, // , + KEY_NONE, KEY_SLASH, // - + KEY_NONE, KEY_DOT, // . + KEY_MOD_LSHIFT, KEY_7, // / // 48, 0x30 - KEY_NONE, KEY_0, // 0 - KEY_NONE, KEY_1, // 1 - KEY_NONE, KEY_2, // 2 - KEY_NONE, KEY_3, // 3 + KEY_NONE, KEY_0, // 0 + KEY_NONE, KEY_1, // 1 + KEY_NONE, KEY_2, // 2 + KEY_NONE, KEY_3, // 3 // 52, 0x34 - KEY_NONE, KEY_4, // 4 - KEY_NONE, KEY_5, // 5 - KEY_NONE, KEY_6, // 6 - KEY_NONE, KEY_7, // 7 + KEY_NONE, KEY_4, // 4 + KEY_NONE, KEY_5, // 5 + KEY_NONE, KEY_6, // 6 + KEY_NONE, KEY_7, // 7 // 56, 0x38 - KEY_NONE, KEY_8, // 8 - KEY_NONE, KEY_9, // 9 - KEY_MOD_LSHIFT, KEY_DOT, // : - KEY_MOD_LSHIFT, KEY_COMMA, // ; + KEY_NONE, KEY_8, // 8 + KEY_NONE, KEY_9, // 9 + KEY_MOD_LSHIFT, KEY_DOT, // : + KEY_MOD_LSHIFT, KEY_COMMA, // ; // 60, 0x3c - KEY_NONE, KEY_102ND, // < - KEY_MOD_LSHIFT, KEY_0, // = - KEY_MOD_LSHIFT, KEY_102ND, // > - KEY_MOD_LSHIFT, KEY_MINUS, // ? + KEY_NONE, KEY_102ND, // < + KEY_MOD_LSHIFT, KEY_0, // = + KEY_MOD_LSHIFT, KEY_102ND, // > + KEY_MOD_LSHIFT, KEY_MINUS, // ? // 64, 0x40 - KEY_MOD_RALT, KEY_2, // @ - KEY_MOD_LSHIFT, KEY_A, // A - KEY_MOD_LSHIFT, KEY_B, // B - KEY_MOD_LSHIFT, KEY_C, // C + KEY_MOD_RALT, KEY_2, // @ + KEY_MOD_LSHIFT, KEY_A, // A + KEY_MOD_LSHIFT, KEY_B, // B + KEY_MOD_LSHIFT, KEY_C, // C // 68, 0x44 - KEY_MOD_LSHIFT, KEY_D, // D - KEY_MOD_LSHIFT, KEY_E, // E - KEY_MOD_LSHIFT, KEY_F, // F - KEY_MOD_LSHIFT, KEY_G, // G + KEY_MOD_LSHIFT, KEY_D, // D + KEY_MOD_LSHIFT, KEY_E, // E + KEY_MOD_LSHIFT, KEY_F, // F + KEY_MOD_LSHIFT, KEY_G, // G // 72, 0x48 - KEY_MOD_LSHIFT, KEY_H, // H - KEY_MOD_LSHIFT, KEY_I, // I - KEY_MOD_LSHIFT, KEY_J, // J - KEY_MOD_LSHIFT, KEY_K, // K + KEY_MOD_LSHIFT, KEY_H, // H + KEY_MOD_LSHIFT, KEY_I, // I + KEY_MOD_LSHIFT, KEY_J, // J + KEY_MOD_LSHIFT, KEY_K, // K // 76, 0x4c - KEY_MOD_LSHIFT, KEY_L, // L - KEY_MOD_LSHIFT, KEY_M, // M - KEY_MOD_LSHIFT, KEY_N, // N - KEY_MOD_LSHIFT, KEY_O, // O + KEY_MOD_LSHIFT, KEY_L, // L + KEY_MOD_LSHIFT, KEY_M, // M + KEY_MOD_LSHIFT, KEY_N, // N + KEY_MOD_LSHIFT, KEY_O, // O // 80, 0x50 - KEY_MOD_LSHIFT, KEY_P, // P - KEY_MOD_LSHIFT, KEY_Q, // Q - KEY_MOD_LSHIFT, KEY_R, // R - KEY_MOD_LSHIFT, KEY_S, // S + KEY_MOD_LSHIFT, KEY_P, // P + KEY_MOD_LSHIFT, KEY_Q, // Q + KEY_MOD_LSHIFT, KEY_R, // R + KEY_MOD_LSHIFT, KEY_S, // S // 84, 0x54 - KEY_MOD_LSHIFT, KEY_T, // T - KEY_MOD_LSHIFT, KEY_U, // U - KEY_MOD_LSHIFT, KEY_V, // V - KEY_MOD_LSHIFT, KEY_W, // W + KEY_MOD_LSHIFT, KEY_T, // T + KEY_MOD_LSHIFT, KEY_U, // U + KEY_MOD_LSHIFT, KEY_V, // V + KEY_MOD_LSHIFT, KEY_W, // W // 88, 0x58 - KEY_MOD_LSHIFT, KEY_X, // X - KEY_MOD_LSHIFT, KEY_Y, // Y - KEY_MOD_LSHIFT, KEY_Z, // Z - KEY_MOD_RALT, KEY_8, // [ - + KEY_MOD_LSHIFT, KEY_X, // X + KEY_MOD_LSHIFT, KEY_Y, // Y + KEY_MOD_LSHIFT, KEY_Z, // Z + KEY_MOD_RALT, KEY_8, // [ + // 92, 0x5c - KEY_MOD_RALT, KEY_102ND, // bslash - KEY_MOD_RALT, KEY_9, // ] - KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // ^ - KEY_MOD_LSHIFT, KEY_SLASH, // _ + KEY_MOD_RALT, KEY_102ND, // bslash + KEY_MOD_RALT, KEY_9, // ] + KEY_NONE, KEY_SPACE, // ^ + KEY_MOD_LSHIFT, KEY_SLASH, // _ // 96, 0x60 - KEY_MOD_LSHIFT, KEY_EQUAL, // ` - KEY_NONE, KEY_A, // a - KEY_NONE, KEY_B, // b - KEY_NONE, KEY_C, // c + KEY_NONE, KEY_SPACE, // ` + KEY_NONE, KEY_A, // a + KEY_NONE, KEY_B, // b + KEY_NONE, KEY_C, // c // 100, 0x64 - KEY_NONE, KEY_D, // d - KEY_NONE, KEY_E, // e - KEY_NONE, KEY_F, // f - KEY_NONE, KEY_G, // g + KEY_NONE, KEY_D, // d + KEY_NONE, KEY_E, // e + KEY_NONE, KEY_F, // f + KEY_NONE, KEY_G, // g // 104, 0x68 - KEY_NONE, KEY_H, // h - KEY_NONE, KEY_I, // i - KEY_NONE, KEY_J, // j - KEY_NONE, KEY_K, // k + KEY_NONE, KEY_H, // h + KEY_NONE, KEY_I, // i + KEY_NONE, KEY_J, // j + KEY_NONE, KEY_K, // k // 108, 0x6c - KEY_NONE, KEY_L, // l - KEY_NONE, KEY_M, // m - KEY_NONE, KEY_N, // n - KEY_NONE, KEY_O, // o + KEY_NONE, KEY_L, // l + KEY_NONE, KEY_M, // m + KEY_NONE, KEY_N, // n + KEY_NONE, KEY_O, // o // 112, 0x70 - KEY_NONE, KEY_P, // p - KEY_NONE, KEY_Q, // q - KEY_NONE, KEY_R, // r - KEY_NONE, KEY_S, // s + KEY_NONE, KEY_P, // p + KEY_NONE, KEY_Q, // q + KEY_NONE, KEY_R, // r + KEY_NONE, KEY_S, // s // 116, 0x74 - KEY_NONE, KEY_T, // t - KEY_NONE, KEY_U, // u - KEY_NONE, KEY_V, // v - KEY_NONE, KEY_W, // w + KEY_NONE, KEY_T, // t + KEY_NONE, KEY_U, // u + KEY_NONE, KEY_V, // v + KEY_NONE, KEY_W, // w // 120, 0x78 - KEY_NONE, KEY_X, // x - KEY_NONE, KEY_Y, // y - KEY_NONE, KEY_Z, // z - KEY_MOD_RALT, KEY_7, // { + KEY_NONE, KEY_X, // x + KEY_NONE, KEY_Y, // y + KEY_NONE, KEY_Z, // z + KEY_MOD_RALT, KEY_7, // { // 124, 0x7c - KEY_MOD_RALT, KEY_EQUAL, // | - KEY_MOD_RALT, KEY_0, // } - KEY_MOD_RALT, KEY_RIGHTBRACE, // ~ - KEY_NONE, KEY_BACKSPACE, // DEL + KEY_MOD_RALT, KEY_EQUAL, // | + KEY_MOD_RALT, KEY_0, // } + KEY_NONE, KEY_NONE, // ~ + KEY_NONE, KEY_DELETE // DEL }; -const uint8_t extended_ascii_dk[] PROGMEM = { - 0xA3, KEY_MOD_RALT, KEY_3, // £ - 0xA4, KEY_MOD_LSHIFT, KEY_4, // ¤ - 0xA7, KEY_MOD_LSHIFT, KEY_GRAVE, // § - 0x85, KEY_MOD_LSHIFT, KEY_LEFTBRACE, // Å - 0x86, KEY_MOD_LSHIFT, KEY_SEMICOLON, // Æ - 0x98, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // Ø - 0xA5, KEY_NONE, KEY_LEFTBRACE, // å - 0xA6, KEY_NONE, KEY_SEMICOLON, // æ - 0xB8, KEY_NONE, KEY_APOSTROPHE // ø +const uint8_t utf8_dk[] PROGMEM = { + 0xC2, 0xA3, 0x00, 0x00, KEY_MOD_RALT, KEY_3, // £ + 0xC2, 0xA4, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_4, // ¤ + 0xC2, 0xA7, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, // § + 0xC2, 0xBD, 0x00, 0x00, KEY_NONE, KEY_GRAVE, // ½ + 0xC3, 0x85, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, // Å + 0xC3, 0x86, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_SEMICOLON, // Æ + 0xC3, 0x98, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // Ø + 0xC3, 0xA5, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, // å + 0xC3, 0xA6, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON, // æ + 0xC3, 0xB8, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, // ø + 0xE2, 0x82, 0xAC, 0x00, KEY_MOD_RALT, KEY_5, // € }; -const uint8_t utf8_dk[] PROGMEM = { - 0xc3, 0xa7, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // § - 0xc3, 0x85, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, // Å - 0xc3, 0x86, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_SEMICOLON, // Æ - 0xc3, 0x98, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // Ø - 0xc3, 0xa5, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, // å - 0xc3, 0xa6, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON, // æ - 0xc3, 0xb8, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE // ø +const uint8_t combinations_dk[] PROGMEM = { + 0x5E, 0x00, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_NONE, KEY_SPACE, // ^ + 0x60, 0x00, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_SPACE, // ` + 0xC2, 0xA8, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_NONE, KEY_SPACE, // ¨ + 0xC2, 0xB4, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_SPACE, // ´ + 0xC3, 0x80, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_A, // À + 0xC3, 0x81, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_A, // Á + 0xC3, 0x82, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_A, //  + 0xC3, 0x84, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_A, // Ä + 0xC3, 0x88, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_E, // È + 0xC3, 0x89, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_E, // É + 0xC3, 0x8A, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_E, // Ê + 0xC3, 0x8B, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_E, // Ë + 0xC3, 0x8C, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_I, // Ì + 0xC3, 0x8D, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_I, // Í + 0xC3, 0x8E, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_I, // Î + 0xC3, 0x8F, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_I, // Ï + 0xC3, 0x92, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_O, // Ò + 0xC3, 0x93, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_O, // Ó + 0xC3, 0x94, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_O, // Ô + 0xC3, 0x96, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_O, // Ö + 0xC3, 0x99, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_U, // Ù + 0xC3, 0x9A, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_U, // Ú + 0xC3, 0x9B, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_U, // Û + 0xC3, 0x9C, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_U, // Ü + 0xC3, 0x9D, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_Y, // Ý + 0xC3, 0xA0, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_A, // à + 0xC3, 0xA1, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_A, // á + 0xC3, 0xA2, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_NONE, KEY_A, // â + 0xC3, 0xA4, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_NONE, KEY_A, // ä + 0xC3, 0xA8, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_E, // è + 0xC3, 0xA9, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_E, // é + 0xC3, 0xAA, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_NONE, KEY_E, // ê + 0xC3, 0xAB, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_NONE, KEY_E, // ë + 0xC3, 0xAC, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_I, // ì + 0xC3, 0xAD, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_I, // í + 0xC3, 0xAE, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_NONE, KEY_I, // î + 0xC3, 0xAF, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_NONE, KEY_I, // ï + 0xC3, 0xB2, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_O, // ò + 0xC3, 0xB3, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_O, // ó + 0xC3, 0xB4, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_NONE, KEY_O, // ô + 0xC3, 0xB6, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_NONE, KEY_O, // ö + 0xC3, 0xB9, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_U, // ù + 0xC3, 0xBA, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_U, // ú + 0xC3, 0xBB, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_NONE, KEY_U, // û + 0xC3, 0xBC, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_NONE, KEY_U, // ü + 0xC3, 0xBD, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_Y, // ý + 0xC3, 0xBF, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_NONE, KEY_Y, // ÿ }; static hid_locale_t locale_dk { - (uint8_t*)ascii_dk, sizeof(ascii_dk) / 2, - (uint8_t*)extended_ascii_dk, sizeof(extended_ascii_dk) / 3, - (uint8_t*)utf8_dk, sizeof(utf8_dk) / 6 -}; + (uint8_t*)ascii_dk, 128, + (uint8_t*)utf8_dk, sizeof(utf8_dk) / 6, + (uint8_t*)combinations_dk, sizeof(combinations_dk) / 8, +}; \ No newline at end of file diff --git a/atmega_duck/locale_es.h b/atmega_duck/locale_es.h index fb2354d..cb4b43d 100644 --- a/atmega_duck/locale_es.h +++ b/atmega_duck/locale_es.h @@ -1,6 +1,6 @@ /* - This software is licensed under the MIT License. See the license file for details. - Source: https://github.com/spacehuhntech/WiFiDuck + This software is licensed under the MIT License. See the license file for details. + Source: https://github.com/spacehuhntech/WiFiDuck */ #pragma once @@ -9,218 +9,258 @@ // Modifier(s), Key const uint8_t ascii_es[] PROGMEM = { - KEY_NONE, KEY_NONE, // NUL - KEY_NONE, KEY_NONE, // SOH - KEY_NONE, KEY_NONE, // STX - KEY_NONE, KEY_NONE, // ETX - KEY_NONE, KEY_NONE, // EOT - KEY_NONE, KEY_NONE, // ENQ - KEY_NONE, KEY_NONE, // ACK - KEY_NONE, KEY_NONE, // BEL + KEY_NONE, KEY_NONE, // NUL + KEY_NONE, KEY_NONE, // SOH + KEY_NONE, KEY_NONE, // STX + KEY_NONE, KEY_NONE, // ETX + KEY_NONE, KEY_NONE, // EOT + KEY_NONE, KEY_NONE, // ENQ + KEY_NONE, KEY_NONE, // ACK + KEY_NONE, KEY_NONE, // BEL // 8, 0x08 - KEY_NONE, KEY_BACKSPACE, // BS Backspace - KEY_NONE, KEY_TAB, // TAB Tab - KEY_NONE, KEY_ENTER, // LF Enter - - KEY_NONE, KEY_NONE, // VT - KEY_NONE, KEY_NONE, // FF - KEY_NONE, KEY_NONE, // CR - KEY_NONE, KEY_NONE, // SO - KEY_NONE, KEY_NONE, // SI - KEY_NONE, KEY_NONE, // DEL - KEY_NONE, KEY_NONE, // DC1 - KEY_NONE, KEY_NONE, // DC2 - KEY_NONE, KEY_NONE, // DC3 - KEY_NONE, KEY_NONE, // DC4 - KEY_NONE, KEY_NONE, // NAK - KEY_NONE, KEY_NONE, // SYN - KEY_NONE, KEY_NONE, // ETB - KEY_NONE, KEY_NONE, // CAN - KEY_NONE, KEY_NONE, // EM - KEY_NONE, KEY_NONE, // SUB - KEY_NONE, KEY_NONE, // ESC - KEY_NONE, KEY_NONE, // FS - KEY_NONE, KEY_NONE, // GS - KEY_NONE, KEY_NONE, // RS - KEY_NONE, KEY_NONE, // US - + KEY_NONE, KEY_BACKSPACE, // BS Backspace + KEY_NONE, KEY_TAB, // TAB Tab + KEY_NONE, KEY_ENTER, // LF Enter + + KEY_NONE, KEY_NONE, // VT + KEY_NONE, KEY_NONE, // FF + KEY_NONE, KEY_NONE, // CR + KEY_NONE, KEY_NONE, // SO + KEY_NONE, KEY_NONE, // SI + KEY_NONE, KEY_NONE, // DEL + KEY_NONE, KEY_NONE, // DC1 + KEY_NONE, KEY_NONE, // DC2 + KEY_NONE, KEY_NONE, // DC3 + KEY_NONE, KEY_NONE, // DC4 + KEY_NONE, KEY_NONE, // NAK + KEY_NONE, KEY_NONE, // SYN + KEY_NONE, KEY_NONE, // ETB + KEY_NONE, KEY_NONE, // CAN + KEY_NONE, KEY_NONE, // EM + KEY_NONE, KEY_NONE, // SUB + KEY_NONE, KEY_NONE, // ESC + KEY_NONE, KEY_NONE, // FS + KEY_NONE, KEY_NONE, // GS + KEY_NONE, KEY_NONE, // RS + KEY_NONE, KEY_NONE, // US + // 32, 0x20 - KEY_NONE, KEY_SPACE, // ' ' - KEY_MOD_LSHIFT, KEY_1, // ! - KEY_MOD_LSHIFT, KEY_2, // " - KEY_MOD_RALT, KEY_3, // # + KEY_NONE, KEY_SPACE, // ' ' + KEY_MOD_LSHIFT, KEY_1, // ! + KEY_MOD_LSHIFT, KEY_2, // " + KEY_MOD_RALT, KEY_3, // # // 36, 0x24 - KEY_MOD_LSHIFT, KEY_4, // $ - KEY_MOD_LSHIFT, KEY_5, // % - KEY_MOD_LSHIFT, KEY_6, // & - KEY_NONE, KEY_MINUS, // ' + KEY_MOD_LSHIFT, KEY_4, // $ + KEY_MOD_LSHIFT, KEY_5, // % + KEY_MOD_LSHIFT, KEY_6, // & + KEY_NONE, KEY_MINUS, // ' // 40, 0x28 - KEY_MOD_LSHIFT, KEY_8, // ( - KEY_MOD_LSHIFT, KEY_9, // ) - KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // * - KEY_NONE, KEY_RIGHTBRACE, // + + KEY_MOD_LSHIFT, KEY_8, // ( + KEY_MOD_LSHIFT, KEY_9, // ) + KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // * + KEY_NONE, KEY_RIGHTBRACE, // + // 44, 0x2c - KEY_NONE, KEY_COMMA, // , - KEY_NONE, KEY_SLASH, // - - KEY_NONE, KEY_DOT, // . - KEY_MOD_LSHIFT, KEY_7, // / + KEY_NONE, KEY_COMMA, // , + KEY_NONE, KEY_SLASH, // - + KEY_NONE, KEY_DOT, // . + KEY_MOD_LSHIFT, KEY_7, // / // 48, 0x30 - KEY_NONE, KEY_0, // 0 - KEY_NONE, KEY_1, // 1 - KEY_NONE, KEY_2, // 2 - KEY_NONE, KEY_3, // 3 + KEY_NONE, KEY_0, // 0 + KEY_NONE, KEY_1, // 1 + KEY_NONE, KEY_2, // 2 + KEY_NONE, KEY_3, // 3 // 52, 0x34 - KEY_NONE, KEY_4, // 4 - KEY_NONE, KEY_5, // 5 - KEY_NONE, KEY_6, // 6 - KEY_NONE, KEY_7, // 7 + KEY_NONE, KEY_4, // 4 + KEY_NONE, KEY_5, // 5 + KEY_NONE, KEY_6, // 6 + KEY_NONE, KEY_7, // 7 // 56, 0x38 - KEY_NONE, KEY_8, // 8 - KEY_NONE, KEY_9, // 9 - KEY_MOD_LSHIFT, KEY_DOT, // : - KEY_MOD_LSHIFT, KEY_COMMA, // ; + KEY_NONE, KEY_8, // 8 + KEY_NONE, KEY_9, // 9 + KEY_MOD_LSHIFT, KEY_DOT, // : + KEY_MOD_LSHIFT, KEY_COMMA, // ; // 60, 0x3c - KEY_NONE, KEY_102ND, // < - KEY_MOD_LSHIFT, KEY_0, // = - KEY_MOD_LSHIFT, KEY_102ND, // > - KEY_MOD_LSHIFT, KEY_MINUS, // ? + KEY_NONE, KEY_102ND, // < + KEY_MOD_LSHIFT, KEY_0, // = + KEY_MOD_LSHIFT, KEY_102ND, // > + KEY_MOD_LSHIFT, KEY_MINUS, // ? // 64, 0x40 - KEY_MOD_RALT, KEY_2, // @ - KEY_MOD_LSHIFT, KEY_A, // A - KEY_MOD_LSHIFT, KEY_B, // B - KEY_MOD_LSHIFT, KEY_C, // C + KEY_MOD_RALT, KEY_2, // @ + KEY_MOD_LSHIFT, KEY_A, // A + KEY_MOD_LSHIFT, KEY_B, // B + KEY_MOD_LSHIFT, KEY_C, // C // 68, 0x44 - KEY_MOD_LSHIFT, KEY_D, // D - KEY_MOD_LSHIFT, KEY_E, // E - KEY_MOD_LSHIFT, KEY_F, // F - KEY_MOD_LSHIFT, KEY_G, // G + KEY_MOD_LSHIFT, KEY_D, // D + KEY_MOD_LSHIFT, KEY_E, // E + KEY_MOD_LSHIFT, KEY_F, // F + KEY_MOD_LSHIFT, KEY_G, // G // 72, 0x48 - KEY_MOD_LSHIFT, KEY_H, // H - KEY_MOD_LSHIFT, KEY_I, // I - KEY_MOD_LSHIFT, KEY_J, // J - KEY_MOD_LSHIFT, KEY_K, // K + KEY_MOD_LSHIFT, KEY_H, // H + KEY_MOD_LSHIFT, KEY_I, // I + KEY_MOD_LSHIFT, KEY_J, // J + KEY_MOD_LSHIFT, KEY_K, // K // 76, 0x4c - KEY_MOD_LSHIFT, KEY_L, // L - KEY_MOD_LSHIFT, KEY_M, // M - KEY_MOD_LSHIFT, KEY_N, // N - KEY_MOD_LSHIFT, KEY_O, // O + KEY_MOD_LSHIFT, KEY_L, // L + KEY_MOD_LSHIFT, KEY_M, // M + KEY_MOD_LSHIFT, KEY_N, // N + KEY_MOD_LSHIFT, KEY_O, // O // 80, 0x50 - KEY_MOD_LSHIFT, KEY_P, // P - KEY_MOD_LSHIFT, KEY_Q, // Q - KEY_MOD_LSHIFT, KEY_R, // R - KEY_MOD_LSHIFT, KEY_S, // S + KEY_MOD_LSHIFT, KEY_P, // P + KEY_MOD_LSHIFT, KEY_Q, // Q + KEY_MOD_LSHIFT, KEY_R, // R + KEY_MOD_LSHIFT, KEY_S, // S // 84, 0x54 - KEY_MOD_LSHIFT, KEY_T, // T - KEY_MOD_LSHIFT, KEY_U, // U - KEY_MOD_LSHIFT, KEY_V, // V - KEY_MOD_LSHIFT, KEY_W, // W + KEY_MOD_LSHIFT, KEY_T, // T + KEY_MOD_LSHIFT, KEY_U, // U + KEY_MOD_LSHIFT, KEY_V, // V + KEY_MOD_LSHIFT, KEY_W, // W // 88, 0x58 - KEY_MOD_LSHIFT, KEY_X, // X - KEY_MOD_LSHIFT, KEY_Y, // Y - KEY_MOD_LSHIFT, KEY_Z, // Z - KEY_MOD_RALT, KEY_LEFTBRACE, // [ + KEY_MOD_LSHIFT, KEY_X, // X + KEY_MOD_LSHIFT, KEY_Y, // Y + KEY_MOD_LSHIFT, KEY_Z, // Z + KEY_MOD_RALT, KEY_LEFTBRACE, // [ // 92, 0x5c - KEY_MOD_RALT, KEY_GRAVE, // bslash - KEY_MOD_RALT, KEY_RIGHTBRACE, // ] - KEY_MOD_LSHIFT, KEY_LEFTBRACE, // ^ - KEY_MOD_LSHIFT, KEY_SLASH, // _ + KEY_MOD_RALT, KEY_GRAVE, // bslash + KEY_MOD_RALT, KEY_RIGHTBRACE, // ] + KEY_NONE, KEY_SPACE, // ^ + KEY_MOD_LSHIFT, KEY_SLASH, // _ // 96, 0x60 - KEY_NONE, KEY_LEFTBRACE, // ` - KEY_NONE, KEY_A, // a - KEY_NONE, KEY_B, // b - KEY_NONE, KEY_C, // c + KEY_NONE, KEY_SPACE, // ` + KEY_NONE, KEY_A, // a + KEY_NONE, KEY_B, // b + KEY_NONE, KEY_C, // c // 100, 0x64 - KEY_NONE, KEY_D, // d - KEY_NONE, KEY_E, // e - KEY_NONE, KEY_F, // f - KEY_NONE, KEY_G, // g + KEY_NONE, KEY_D, // d + KEY_NONE, KEY_E, // e + KEY_NONE, KEY_F, // f + KEY_NONE, KEY_G, // g // 104, 0x68 - KEY_NONE, KEY_H, // h - KEY_NONE, KEY_I, // i - KEY_NONE, KEY_J, // j - KEY_NONE, KEY_K, // k + KEY_NONE, KEY_H, // h + KEY_NONE, KEY_I, // i + KEY_NONE, KEY_J, // j + KEY_NONE, KEY_K, // k // 108, 0x6c - KEY_NONE, KEY_L, // l - KEY_NONE, KEY_M, // m - KEY_NONE, KEY_N, // n - KEY_NONE, KEY_O, // o + KEY_NONE, KEY_L, // l + KEY_NONE, KEY_M, // m + KEY_NONE, KEY_N, // n + KEY_NONE, KEY_O, // o // 112, 0x70 - KEY_NONE, KEY_P, // p - KEY_NONE, KEY_Q, // q - KEY_NONE, KEY_R, // r - KEY_NONE, KEY_S, // s + KEY_NONE, KEY_P, // p + KEY_NONE, KEY_Q, // q + KEY_NONE, KEY_R, // r + KEY_NONE, KEY_S, // s // 116, 0x74 - KEY_NONE, KEY_T, // t - KEY_NONE, KEY_U, // u - KEY_NONE, KEY_V, // v - KEY_NONE, KEY_W, // w + KEY_NONE, KEY_T, // t + KEY_NONE, KEY_U, // u + KEY_NONE, KEY_V, // v + KEY_NONE, KEY_W, // w // 120, 0x78 - KEY_NONE, KEY_X, // x - KEY_NONE, KEY_Y, // y - KEY_NONE, KEY_Z, // z - KEY_MOD_RALT, KEY_APOSTROPHE, // { + KEY_NONE, KEY_X, // x + KEY_NONE, KEY_Y, // y + KEY_NONE, KEY_Z, // z + KEY_MOD_RALT, KEY_APOSTROPHE, // { // 124, 0x7c - KEY_MOD_RALT, KEY_1, // | - KEY_MOD_RALT, KEY_BACKSLASH, // } - KEY_MOD_RALT, KEY_4, // ~ - KEY_NONE, KEY_NONE // DEL + KEY_MOD_RALT, KEY_1, // | + KEY_MOD_RALT, KEY_BACKSLASH, // } + KEY_NONE, KEY_SPACE, // ~ + KEY_NONE, KEY_DELETE // DEL }; -const uint8_t extended_ascii_es[] PROGMEM = { - 0xa4, KEY_NONE, KEY_SEMICOLON, // ñ - 0xa5, KEY_MOD_LSHIFT, KEY_SEMICOLON, // Ñ - 0xad, KEY_NONE, KEY_EQUAL, // ¡ - 0xa8, KEY_MOD_LSHIFT, KEY_EQUAL, // ¿ - 0x87, KEY_NONE, KEY_BACKSLASH, // ç - 0x80, KEY_MOD_LSHIFT, KEY_BACKSLASH, // Ç - 0xa7, KEY_NONE, KEY_GRAVE, // º - 0xa6, KEY_MOD_LSHIFT, KEY_GRAVE, // ª - 0xfa, KEY_MOD_LSHIFT, KEY_3, // · - 0xf9, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // ¨ - 0xef, KEY_NONE, KEY_APOSTROPHE // ´ +const uint8_t utf8_es[] PROGMEM = { + 0xC2, 0xA1, 0x00, 0x00, KEY_NONE, KEY_EQUAL, // ¡ + 0xC2, 0xAA, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, // ª + 0xC2, 0xAC, 0x00, 0x00, KEY_MOD_RALT, KEY_6, // ¬ + 0xC2, 0xB7, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_3, // · + 0xC2, 0xBA, 0x00, 0x00, KEY_NONE, KEY_GRAVE, // º + 0xC2, 0xBF, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, // ¿ + 0xC3, 0x87, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, // Ç + 0xC3, 0x91, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_SEMICOLON, // Ñ + 0xC3, 0xA7, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, // ç + 0xC3, 0xB1, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON, // ñ + 0xE2, 0x82, 0xAC, 0x00, KEY_MOD_RALT, KEY_5, // € }; -const uint8_t utf8_es[] PROGMEM = { - 0xc3, 0xb1, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON, // ñ - 0xc3, 0x91, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_SEMICOLON, // Ñ - 0xc2, 0xa1, 0x00, 0x00, KEY_NONE, KEY_EQUAL, // ¡ - 0xc2, 0xbf, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, // ¿ - 0xc3, 0xa7, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, // ç - 0xc3, 0x87, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, // Ç - 0xc2, 0xba, 0x00, 0x00, KEY_NONE, KEY_GRAVE, // º - 0xc2, 0xaa, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, // ª - 0xe2, 0x82, 0xac, 0x00, KEY_MOD_RALT, KEY_E, // € - 0xc2, 0xb7, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_3, // · - 0xc2, 0xa8, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // ¨ - 0xc2, 0xb4, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE // ´ +const uint8_t combinations_es[] PROGMEM = { + 0x5E, 0x00, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_SPACE, // ^ + 0x60, 0x00, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_NONE, KEY_SPACE, // ` + 0x7E, 0x00, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_NONE, KEY_SPACE, // ~ + 0xC2, 0xA8, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, KEY_NONE, KEY_SPACE, // ¨ + 0xC2, 0xB4, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, KEY_NONE, KEY_SPACE, // ´ + 0xC3, 0x80, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_A, // À + 0xC3, 0x81, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, KEY_MOD_LSHIFT, KEY_A, // Á + 0xC3, 0x82, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_A, //  + 0xC3, 0x83, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_MOD_LSHIFT, KEY_A, // à + 0xC3, 0x84, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, KEY_MOD_LSHIFT, KEY_A, // Ä + 0xC3, 0x88, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_E, // È + 0xC3, 0x89, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, KEY_MOD_LSHIFT, KEY_E, // É + 0xC3, 0x8A, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_E, // Ê + 0xC3, 0x8B, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, KEY_MOD_LSHIFT, KEY_E, // Ë + 0xC3, 0x8C, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_I, // Ì + 0xC3, 0x8D, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, KEY_MOD_LSHIFT, KEY_I, // Í + 0xC3, 0x8E, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_I, // Î + 0xC3, 0x8F, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, KEY_MOD_LSHIFT, KEY_I, // Ï + 0xC3, 0x92, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_O, // Ò + 0xC3, 0x93, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, KEY_MOD_LSHIFT, KEY_O, // Ó + 0xC3, 0x94, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_O, // Ô + 0xC3, 0x95, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_MOD_LSHIFT, KEY_O, // Õ + 0xC3, 0x96, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, KEY_MOD_LSHIFT, KEY_O, // Ö + 0xC3, 0x99, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_U, // Ù + 0xC3, 0x9A, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, KEY_MOD_LSHIFT, KEY_U, // Ú + 0xC3, 0x9B, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_U, // Û + 0xC3, 0x9C, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, KEY_MOD_LSHIFT, KEY_U, // Ü + 0xC3, 0x9D, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, KEY_MOD_LSHIFT, KEY_Y, // Ý + 0xC3, 0xA0, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_NONE, KEY_A, // à + 0xC3, 0xA1, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, KEY_NONE, KEY_A, // á + 0xC3, 0xA2, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_A, // â + 0xC3, 0xA3, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_NONE, KEY_A, // ã + 0xC3, 0xA4, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, KEY_NONE, KEY_A, // ä + 0xC3, 0xA8, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_NONE, KEY_E, // è + 0xC3, 0xA9, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, KEY_NONE, KEY_E, // é + 0xC3, 0xAA, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_E, // ê + 0xC3, 0xAB, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, KEY_NONE, KEY_E, // ë + 0xC3, 0xAC, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_NONE, KEY_I, // ì + 0xC3, 0xAD, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, KEY_NONE, KEY_I, // í + 0xC3, 0xAE, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_I, // î + 0xC3, 0xAF, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, KEY_NONE, KEY_I, // ï + 0xC3, 0xB2, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_NONE, KEY_O, // ò + 0xC3, 0xB3, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, KEY_NONE, KEY_O, // ó + 0xC3, 0xB4, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_O, // ô + 0xC3, 0xB5, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_NONE, KEY_O, // õ + 0xC3, 0xB6, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, KEY_NONE, KEY_O, // ö + 0xC3, 0xB9, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_NONE, KEY_U, // ù + 0xC3, 0xBA, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, KEY_NONE, KEY_U, // ú + 0xC3, 0xBB, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_U, // û + 0xC3, 0xBC, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, KEY_NONE, KEY_U, // ü + 0xC3, 0xBD, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, KEY_NONE, KEY_Y, // ý + 0xC3, 0xBF, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, KEY_NONE, KEY_Y, // ÿ }; static hid_locale_t locale_es { (uint8_t*)ascii_es, 128, - (uint8_t*)extended_ascii_es, sizeof(extended_ascii_es) / 3, - (uint8_t*)utf8_es, sizeof(utf8_es) / 6 -}; + (uint8_t*)utf8_es, sizeof(utf8_es) / 6, + (uint8_t*)combinations_es, sizeof(combinations_es) / 8, +}; \ No newline at end of file diff --git a/atmega_duck/locale_fr.h b/atmega_duck/locale_fr.h index 372f84e..4c70bde 100644 --- a/atmega_duck/locale_fr.h +++ b/atmega_duck/locale_fr.h @@ -1,9 +1,6 @@ /* - This software is licensed under the MIT License. See the license file for details. - Source: https://github.com/spacehuhntech/WiFiDuck - - Modified locale for french azety (WIP) - TODO Need to add : ÉÈÀ°ç£¤µù§¨öôûüîïâäòàìùÖÔÛÜÎÏÂÄÒÀÌÙ€ + This software is licensed under the MIT License. See the license file for details. + Source: https://github.com/spacehuhntech/WiFiDuck */ #pragma once @@ -12,207 +9,243 @@ // Modifier(s), Key const uint8_t ascii_fr[] PROGMEM = { - KEY_NONE, KEY_NONE, // NUL - KEY_NONE, KEY_NONE, // SOH - KEY_NONE, KEY_NONE, // STX - KEY_NONE, KEY_NONE, // ETX - KEY_NONE, KEY_NONE, // EOT - KEY_NONE, KEY_NONE, // ENQ - KEY_NONE, KEY_NONE, // ACK - KEY_NONE, KEY_NONE, // BEL + KEY_NONE, KEY_NONE, // NUL + KEY_NONE, KEY_NONE, // SOH + KEY_NONE, KEY_NONE, // STX + KEY_NONE, KEY_NONE, // ETX + KEY_NONE, KEY_NONE, // EOT + KEY_NONE, KEY_NONE, // ENQ + KEY_NONE, KEY_NONE, // ACK + KEY_NONE, KEY_NONE, // BEL // 8, 0x08 - KEY_NONE, KEY_BACKSPACE, // BS Backspace - KEY_NONE, KEY_TAB, // TAB Tab - KEY_NONE, KEY_ENTER, // LF Enter - - KEY_NONE, KEY_NONE, // VT - KEY_NONE, KEY_NONE, // FF - KEY_NONE, KEY_NONE, // CR - KEY_NONE, KEY_NONE, // SO - KEY_NONE, KEY_NONE, // SI - KEY_NONE, KEY_NONE, // DEL - KEY_NONE, KEY_NONE, // DC1 - KEY_NONE, KEY_NONE, // DC2 - KEY_NONE, KEY_NONE, // DC3 - KEY_NONE, KEY_NONE, // DC4 - KEY_NONE, KEY_NONE, // NAK - KEY_NONE, KEY_NONE, // SYN - KEY_NONE, KEY_NONE, // ETB - KEY_NONE, KEY_NONE, // CAN - KEY_NONE, KEY_NONE, // EM - KEY_NONE, KEY_NONE, // SUB - KEY_NONE, KEY_NONE, // ESC - KEY_NONE, KEY_NONE, // FS - KEY_NONE, KEY_NONE, // GS - KEY_NONE, KEY_NONE, // RS - KEY_NONE, KEY_NONE, // US - + KEY_NONE, KEY_BACKSPACE, // BS Backspace + KEY_NONE, KEY_TAB, // TAB Tab + KEY_NONE, KEY_ENTER, // LF Enter + + KEY_NONE, KEY_NONE, // VT + KEY_NONE, KEY_NONE, // FF + KEY_NONE, KEY_NONE, // CR + KEY_NONE, KEY_NONE, // SO + KEY_NONE, KEY_NONE, // SI + KEY_NONE, KEY_NONE, // DEL + KEY_NONE, KEY_NONE, // DC1 + KEY_NONE, KEY_NONE, // DC2 + KEY_NONE, KEY_NONE, // DC3 + KEY_NONE, KEY_NONE, // DC4 + KEY_NONE, KEY_NONE, // NAK + KEY_NONE, KEY_NONE, // SYN + KEY_NONE, KEY_NONE, // ETB + KEY_NONE, KEY_NONE, // CAN + KEY_NONE, KEY_NONE, // EM + KEY_NONE, KEY_NONE, // SUB + KEY_NONE, KEY_NONE, // ESC + KEY_NONE, KEY_NONE, // FS + KEY_NONE, KEY_NONE, // GS + KEY_NONE, KEY_NONE, // RS + KEY_NONE, KEY_NONE, // US + // 32, 0x20 - KEY_NONE, KEY_SPACE, // ' ' - KEY_NONE, KEY_SLASH, // ! - KEY_NONE, KEY_3, // " - KEY_MOD_RALT, KEY_3, // # + KEY_NONE, KEY_SPACE, // ' ' + KEY_NONE, KEY_SLASH, // ! + KEY_NONE, KEY_3, // " + KEY_MOD_RALT, KEY_3, // # // 36, 0x24 - KEY_NONE, KEY_RIGHTBRACE, // $ - KEY_MOD_LSHIFT, KEY_APOSTROPHE, // % - KEY_NONE, KEY_1, // & - KEY_NONE, KEY_4, // ' + KEY_NONE, KEY_RIGHTBRACE, // $ + KEY_MOD_LSHIFT, KEY_APOSTROPHE, // % + KEY_NONE, KEY_1, // & + KEY_NONE, KEY_4, // ' // 40, 0x28 - KEY_NONE, KEY_5, // ( - KEY_NONE, KEY_MINUS, // ) - KEY_NONE, KEY_BACKSLASH, // * - KEY_MOD_LSHIFT, KEY_EQUAL, // + + KEY_NONE, KEY_5, // ( + KEY_NONE, KEY_MINUS, // ) + KEY_NONE, KEY_BACKSLASH, // * + KEY_MOD_LSHIFT, KEY_EQUAL, // + // 44, 0x2c - KEY_NONE, KEY_M, // , - KEY_NONE, KEY_6, // - - KEY_MOD_LSHIFT, KEY_COMMA, // . - KEY_MOD_LSHIFT, KEY_DOT, // / + KEY_NONE, KEY_M, // , + KEY_NONE, KEY_6, // - + KEY_MOD_LSHIFT, KEY_COMMA, // . + KEY_MOD_LSHIFT, KEY_DOT, // / // 48, 0x30 - KEY_MOD_LSHIFT, KEY_0, // 0 - KEY_MOD_LSHIFT, KEY_1, // 1 - KEY_MOD_LSHIFT, KEY_2, // 2 - KEY_MOD_LSHIFT, KEY_3, // 3 + KEY_MOD_LSHIFT, KEY_0, // 0 + KEY_MOD_LSHIFT, KEY_1, // 1 + KEY_MOD_LSHIFT, KEY_2, // 2 + KEY_MOD_LSHIFT, KEY_3, // 3 // 52, 0x34 - KEY_MOD_LSHIFT, KEY_4, // 4 - KEY_MOD_LSHIFT, KEY_5, // 5 - KEY_MOD_LSHIFT, KEY_6, // 6 - KEY_MOD_LSHIFT, KEY_7, // 7 + KEY_MOD_LSHIFT, KEY_4, // 4 + KEY_MOD_LSHIFT, KEY_5, // 5 + KEY_MOD_LSHIFT, KEY_6, // 6 + KEY_MOD_LSHIFT, KEY_7, // 7 // 56, 0x38 - KEY_MOD_LSHIFT, KEY_8, // 8 - KEY_MOD_LSHIFT, KEY_9, // 9 - KEY_NONE, KEY_DOT, // : - KEY_NONE, KEY_COMMA, // ; + KEY_MOD_LSHIFT, KEY_8, // 8 + KEY_MOD_LSHIFT, KEY_9, // 9 + KEY_NONE, KEY_DOT, // : + KEY_NONE, KEY_COMMA, // ; // 60, 0x3c - KEY_NONE, KEY_102ND, // < - KEY_NONE, KEY_EQUAL, // = - KEY_MOD_LSHIFT, KEY_102ND, // > - KEY_MOD_LSHIFT, KEY_M, // ? + KEY_NONE, KEY_102ND, // < + KEY_NONE, KEY_EQUAL, // = + KEY_MOD_LSHIFT, KEY_102ND, // > + KEY_MOD_LSHIFT, KEY_M, // ? // 64, 0x40 - KEY_MOD_RALT, KEY_0, // @ - KEY_MOD_LSHIFT, KEY_Q, // A - KEY_MOD_LSHIFT, KEY_B, // B - KEY_MOD_LSHIFT, KEY_C, // C + KEY_MOD_RALT, KEY_0, // @ + KEY_MOD_LSHIFT, KEY_Q, // A + KEY_MOD_LSHIFT, KEY_B, // B + KEY_MOD_LSHIFT, KEY_C, // C // 68, 0x44 - KEY_MOD_LSHIFT, KEY_D, // D - KEY_MOD_LSHIFT, KEY_E, // E - KEY_MOD_LSHIFT, KEY_F, // F - KEY_MOD_LSHIFT, KEY_G, // G + KEY_MOD_LSHIFT, KEY_D, // D + KEY_MOD_LSHIFT, KEY_E, // E + KEY_MOD_LSHIFT, KEY_F, // F + KEY_MOD_LSHIFT, KEY_G, // G // 72, 0x48 - KEY_MOD_LSHIFT, KEY_H, // H - KEY_MOD_LSHIFT, KEY_I, // I - KEY_MOD_LSHIFT, KEY_J, // J - KEY_MOD_LSHIFT, KEY_K, // K + KEY_MOD_LSHIFT, KEY_H, // H + KEY_MOD_LSHIFT, KEY_I, // I + KEY_MOD_LSHIFT, KEY_J, // J + KEY_MOD_LSHIFT, KEY_K, // K // 76, 0x4c - KEY_MOD_LSHIFT, KEY_L, // L - KEY_MOD_LSHIFT, KEY_SEMICOLON, // M - KEY_MOD_LSHIFT, KEY_N, // N - KEY_MOD_LSHIFT, KEY_O, // O + KEY_MOD_LSHIFT, KEY_L, // L + KEY_MOD_LSHIFT, KEY_SEMICOLON, // M + KEY_MOD_LSHIFT, KEY_N, // N + KEY_MOD_LSHIFT, KEY_O, // O // 80, 0x50 - KEY_MOD_LSHIFT, KEY_P, // P - KEY_MOD_LSHIFT, KEY_A, // Q - KEY_MOD_LSHIFT, KEY_R, // R - KEY_MOD_LSHIFT, KEY_S, // S + KEY_MOD_LSHIFT, KEY_P, // P + KEY_MOD_LSHIFT, KEY_A, // Q + KEY_MOD_LSHIFT, KEY_R, // R + KEY_MOD_LSHIFT, KEY_S, // S // 84, 0x54 - KEY_MOD_LSHIFT, KEY_T, // T - KEY_MOD_LSHIFT, KEY_U, // U - KEY_MOD_LSHIFT, KEY_V, // V - KEY_MOD_LSHIFT, KEY_Z, // W + KEY_MOD_LSHIFT, KEY_T, // T + KEY_MOD_LSHIFT, KEY_U, // U + KEY_MOD_LSHIFT, KEY_V, // V + KEY_MOD_LSHIFT, KEY_Z, // W // 88, 0x58 - KEY_MOD_LSHIFT, KEY_X, // X - KEY_MOD_LSHIFT, KEY_Y, // Y - KEY_MOD_LSHIFT, KEY_W, // Z - KEY_MOD_RALT, KEY_5, // [ + KEY_MOD_LSHIFT, KEY_X, // X + KEY_MOD_LSHIFT, KEY_Y, // Y + KEY_MOD_LSHIFT, KEY_W, // Z + KEY_MOD_RALT, KEY_5, // [ // 92, 0x5c - KEY_MOD_RALT, KEY_8, // bslash - KEY_MOD_RALT, KEY_MINUS, // ] - KEY_MOD_RALT, KEY_9, // ^ - KEY_NONE, KEY_8, // _ + KEY_MOD_RALT, KEY_8, // bslash + KEY_MOD_RALT, KEY_MINUS, // ] + KEY_MOD_RALT, KEY_9, // ^ + KEY_NONE, KEY_8, // _ // 96, 0x60 - KEY_MOD_RALT, KEY_7, // ` - KEY_NONE, KEY_Q, // a - KEY_NONE, KEY_B, // b - KEY_NONE, KEY_C, // c + KEY_NONE, KEY_SPACE, // ` + KEY_NONE, KEY_Q, // a + KEY_NONE, KEY_B, // b + KEY_NONE, KEY_C, // c // 100, 0x64 - KEY_NONE, KEY_D, // d - KEY_NONE, KEY_E, // e - KEY_NONE, KEY_F, // f - KEY_NONE, KEY_G, // g + KEY_NONE, KEY_D, // d + KEY_NONE, KEY_E, // e + KEY_NONE, KEY_F, // f + KEY_NONE, KEY_G, // g // 104, 0x68 - KEY_NONE, KEY_H, // h - KEY_NONE, KEY_I, // i - KEY_NONE, KEY_J, // j - KEY_NONE, KEY_K, // k + KEY_NONE, KEY_H, // h + KEY_NONE, KEY_I, // i + KEY_NONE, KEY_J, // j + KEY_NONE, KEY_K, // k // 108, 0x6c - KEY_NONE, KEY_L, // l - KEY_NONE, KEY_SEMICOLON, // m - KEY_NONE, KEY_N, // n - KEY_NONE, KEY_O, // o + KEY_NONE, KEY_L, // l + KEY_NONE, KEY_SEMICOLON, // m + KEY_NONE, KEY_N, // n + KEY_NONE, KEY_O, // o // 112, 0x70 - KEY_NONE, KEY_P, // p - KEY_NONE, KEY_A, // q - KEY_NONE, KEY_R, // r - KEY_NONE, KEY_S, // s + KEY_NONE, KEY_P, // p + KEY_NONE, KEY_A, // q + KEY_NONE, KEY_R, // r + KEY_NONE, KEY_S, // s // 116, 0x74 - KEY_NONE, KEY_T, // t - KEY_NONE, KEY_U, // u - KEY_NONE, KEY_V, // v - KEY_NONE, KEY_Z, // w + KEY_NONE, KEY_T, // t + KEY_NONE, KEY_U, // u + KEY_NONE, KEY_V, // v + KEY_NONE, KEY_Z, // w // 120, 0x78 - KEY_NONE, KEY_X, // x - KEY_NONE, KEY_Y, // y - KEY_NONE, KEY_W, // z - KEY_MOD_RALT, KEY_4, // { + KEY_NONE, KEY_X, // x + KEY_NONE, KEY_Y, // y + KEY_NONE, KEY_W, // z + KEY_MOD_RALT, KEY_4, // { // 124, 0x7c - KEY_MOD_RALT, KEY_6, // | - KEY_MOD_RALT, KEY_EQUAL, // } - KEY_MOD_RALT, KEY_2, // ~ - KEY_NONE, KEY_NONE // DEL + KEY_MOD_RALT, KEY_6, // | + KEY_MOD_RALT, KEY_EQUAL, // } + KEY_NONE, KEY_SPACE, // ~ + KEY_NONE, KEY_DELETE // DEL }; -const uint8_t extended_ascii_fr[] PROGMEM = { - 0xE8, KEY_NONE, KEY_7, // è - 0xE9, KEY_NONE, KEY_2, // é - 0xE0, KEY_NONE, KEY_0, // à - 0xF9, KEY_NONE, KEY_APOSTROPHE, // ù - 0xB5, KEY_MOD_LSHIFT, KEY_BACKSLASH, // µ - 0xE7, KEY_NONE, KEY_9 // ç +const uint8_t utf8_fr[] PROGMEM = { + 0xC2, 0xA3, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // £ + 0xC2, 0xA4, 0x00, 0x00, KEY_MOD_RALT, KEY_RIGHTBRACE, // ¤ + 0xC2, 0xA7, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_SLASH, // § + 0xC2, 0xB0, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_MINUS, // ° + 0xC2, 0xB2, 0x00, 0x00, KEY_NONE, KEY_GRAVE, // ² + 0xC2, 0xB5, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, // µ + 0xC3, 0xA0, 0x00, 0x00, KEY_NONE, KEY_0, // à + 0xC3, 0xA7, 0x00, 0x00, KEY_NONE, KEY_9, // ç + 0xC3, 0xA8, 0x00, 0x00, KEY_NONE, KEY_7, // è + 0xC3, 0xA9, 0x00, 0x00, KEY_NONE, KEY_2, // é + 0xC3, 0xB9, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, // ù + 0xE2, 0x82, 0xAC, 0x00, KEY_MOD_RALT, KEY_E, // € }; -const uint8_t utf8_fr[] PROGMEM = { - 0xc3, 0xa8, 0x00, 0x00, KEY_NONE, KEY_7, // è - 0xc3, 0xa9, 0x00, 0x00, KEY_NONE, KEY_2, // é - 0xc3, 0xa0, 0x00, 0x00, KEY_NONE, KEY_0, // à - 0xc3, 0xb9, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, // ù - 0xc2, 0xb5, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, // µ - 0xc3, 0xa7, 0x00, 0x00, KEY_NONE, KEY_9 // ç +const uint8_t combinations_fr[] PROGMEM = { + 0x60, 0x00, 0x00, 0x00, KEY_MOD_RALT, KEY_7, KEY_NONE, KEY_SPACE, // ` + 0x7E, 0x00, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_NONE, KEY_SPACE, // ~ + 0xC2, 0xA8, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_SPACE, // ¨ + 0xC3, 0x80, 0x00, 0x00, KEY_MOD_RALT, KEY_7, KEY_MOD_LSHIFT, KEY_Q, // À + 0xC3, 0x82, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_Q, //  + 0xC3, 0x83, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_MOD_LSHIFT, KEY_Q, // à + 0xC3, 0x84, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_Q, // Ä + 0xC3, 0x88, 0x00, 0x00, KEY_MOD_RALT, KEY_7, KEY_MOD_LSHIFT, KEY_E, // È + 0xC3, 0x8A, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_E, // Ê + 0xC3, 0x8B, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_E, // Ë + 0xC3, 0x8C, 0x00, 0x00, KEY_MOD_RALT, KEY_7, KEY_MOD_LSHIFT, KEY_I, // Ì + 0xC3, 0x8E, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_I, // Î + 0xC3, 0x8F, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_I, // Ï + 0xC3, 0x91, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_MOD_LSHIFT, KEY_N, // Ñ + 0xC3, 0x92, 0x00, 0x00, KEY_MOD_RALT, KEY_7, KEY_MOD_LSHIFT, KEY_O, // Ò + 0xC3, 0x94, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_O, // Ô + 0xC3, 0x95, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_MOD_LSHIFT, KEY_O, // Õ + 0xC3, 0x96, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_O, // Ö + 0xC3, 0x99, 0x00, 0x00, KEY_MOD_RALT, KEY_7, KEY_MOD_LSHIFT, KEY_U, // Ù + 0xC3, 0x9B, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_U, // Û + 0xC3, 0x9C, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_U, // Ü + 0xC3, 0xA2, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_NONE, KEY_Q, // â + 0xC3, 0xA3, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_NONE, KEY_Q, // ã + 0xC3, 0xA4, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_Q, // ä + 0xC3, 0xAA, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_NONE, KEY_E, // ê + 0xC3, 0xAB, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_E, // ë + 0xC3, 0xAC, 0x00, 0x00, KEY_MOD_RALT, KEY_7, KEY_NONE, KEY_I, // ì + 0xC3, 0xAE, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_NONE, KEY_I, // î + 0xC3, 0xAF, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_I, // ï + 0xC3, 0xB1, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_NONE, KEY_N, // ñ + 0xC3, 0xB2, 0x00, 0x00, KEY_MOD_RALT, KEY_7, KEY_NONE, KEY_O, // ò + 0xC3, 0xB4, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_NONE, KEY_O, // ô + 0xC3, 0xB5, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_NONE, KEY_O, // õ + 0xC3, 0xB6, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_O, // ö + 0xC3, 0xBB, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, KEY_NONE, KEY_U, // û + 0xC3, 0xBC, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, KEY_NONE, KEY_U, // ü }; static hid_locale_t locale_fr { (uint8_t*)ascii_fr, 128, - (uint8_t*)extended_ascii_fr, sizeof(extended_ascii_fr) / 3, - (uint8_t*)utf8_fr, sizeof(utf8_fr) / 6 + (uint8_t*)utf8_fr, sizeof(utf8_fr) / 6, + (uint8_t*)combinations_fr, sizeof(combinations_fr) / 8, }; \ No newline at end of file diff --git a/atmega_duck/locale_gb.h b/atmega_duck/locale_gb.h index 80e2b84..33068b0 100644 --- a/atmega_duck/locale_gb.h +++ b/atmega_duck/locale_gb.h @@ -1,6 +1,6 @@ /* - This software is licensed under the MIT License. See the license file for details. - Source: https://github.com/spacehuhntech/WiFiDuck + This software is licensed under the MIT License. See the license file for details. + Source: https://github.com/spacehuhntech/WiFiDuck */ #pragma once @@ -9,215 +9,209 @@ // Modifier(s), Key const uint8_t ascii_gb[] PROGMEM = { - KEY_NONE, KEY_NONE, // NUL - KEY_NONE, KEY_NONE, // SOH - KEY_NONE, KEY_NONE, // STX - KEY_NONE, KEY_NONE, // ETX - KEY_NONE, KEY_NONE, // EOT - KEY_NONE, KEY_NONE, // ENQ - KEY_NONE, KEY_NONE, // ACK - KEY_NONE, KEY_NONE, // BEL + KEY_NONE, KEY_NONE, // NUL + KEY_NONE, KEY_NONE, // SOH + KEY_NONE, KEY_NONE, // STX + KEY_NONE, KEY_NONE, // ETX + KEY_NONE, KEY_NONE, // EOT + KEY_NONE, KEY_NONE, // ENQ + KEY_NONE, KEY_NONE, // ACK + KEY_NONE, KEY_NONE, // BEL // 8, 0x08 - KEY_NONE, KEY_BACKSPACE, // BS Backspace - KEY_NONE, KEY_TAB, // TAB Tab - KEY_NONE, KEY_ENTER, // LF Enter - - KEY_NONE, KEY_NONE, // VT - KEY_NONE, KEY_NONE, // FF - KEY_NONE, KEY_NONE, // CR - KEY_NONE, KEY_NONE, // SO - KEY_NONE, KEY_NONE, // SI - KEY_NONE, KEY_NONE, // DEL - KEY_NONE, KEY_NONE, // DC1 - KEY_NONE, KEY_NONE, // DC2 - KEY_NONE, KEY_NONE, // DC3 - KEY_NONE, KEY_NONE, // DC4 - KEY_NONE, KEY_NONE, // NAK - KEY_NONE, KEY_NONE, // SYN - KEY_NONE, KEY_NONE, // ETB - KEY_NONE, KEY_NONE, // CAN - KEY_NONE, KEY_NONE, // EM - KEY_NONE, KEY_NONE, // SUB - KEY_NONE, KEY_NONE, // ESC - KEY_NONE, KEY_NONE, // FS - KEY_NONE, KEY_NONE, // GS - KEY_NONE, KEY_NONE, // RS - KEY_NONE, KEY_NONE, // US - + KEY_NONE, KEY_BACKSPACE, // BS Backspace + KEY_NONE, KEY_TAB, // TAB Tab + KEY_NONE, KEY_ENTER, // LF Enter + + KEY_NONE, KEY_NONE, // VT + KEY_NONE, KEY_NONE, // FF + KEY_NONE, KEY_NONE, // CR + KEY_NONE, KEY_NONE, // SO + KEY_NONE, KEY_NONE, // SI + KEY_NONE, KEY_NONE, // DEL + KEY_NONE, KEY_NONE, // DC1 + KEY_NONE, KEY_NONE, // DC2 + KEY_NONE, KEY_NONE, // DC3 + KEY_NONE, KEY_NONE, // DC4 + KEY_NONE, KEY_NONE, // NAK + KEY_NONE, KEY_NONE, // SYN + KEY_NONE, KEY_NONE, // ETB + KEY_NONE, KEY_NONE, // CAN + KEY_NONE, KEY_NONE, // EM + KEY_NONE, KEY_NONE, // SUB + KEY_NONE, KEY_NONE, // ESC + KEY_NONE, KEY_NONE, // FS + KEY_NONE, KEY_NONE, // GS + KEY_NONE, KEY_NONE, // RS + KEY_NONE, KEY_NONE, // US + // 32, 0x20 - KEY_NONE, KEY_SPACE, // ' ' - KEY_MOD_LSHIFT, KEY_1, // ! - KEY_MOD_LSHIFT, KEY_2, // " - KEY_NONE, KEY_BACKSLASH, // # + KEY_NONE, KEY_SPACE, // ' ' + KEY_MOD_LSHIFT, KEY_1, // ! + KEY_MOD_LSHIFT, KEY_2, // " + KEY_NONE, KEY_BACKSLASH, // # // 36, 0x24 - KEY_MOD_LSHIFT, KEY_4, // $ - KEY_MOD_LSHIFT, KEY_5, // % - KEY_MOD_LSHIFT, KEY_7, // & - KEY_NONE, KEY_APOSTROPHE, // ' + KEY_MOD_LSHIFT, KEY_4, // $ + KEY_MOD_LSHIFT, KEY_5, // % + KEY_MOD_LSHIFT, KEY_7, // & + KEY_NONE, KEY_APOSTROPHE, // ' // 40, 0x28 - KEY_MOD_LSHIFT, KEY_9, // ( - KEY_MOD_LSHIFT, KEY_0, // ) - KEY_MOD_LSHIFT, KEY_8, // * - KEY_MOD_LSHIFT, KEY_EQUAL, // + + KEY_MOD_LSHIFT, KEY_9, // ( + KEY_MOD_LSHIFT, KEY_0, // ) + KEY_MOD_LSHIFT, KEY_8, // * + KEY_MOD_LSHIFT, KEY_EQUAL, // + // 44, 0x2c - KEY_NONE, KEY_COMMA, // , - KEY_NONE, KEY_MINUS, // - - KEY_NONE, KEY_DOT, // . - KEY_NONE, KEY_SLASH, // / + KEY_NONE, KEY_COMMA, // , + KEY_NONE, KEY_MINUS, // - + KEY_NONE, KEY_DOT, // . + KEY_NONE, KEY_SLASH, // / // 48, 0x30 - KEY_NONE, KEY_0, // 0 - KEY_NONE, KEY_1, // 1 - KEY_NONE, KEY_2, // 2 - KEY_NONE, KEY_3, // 3 + KEY_NONE, KEY_0, // 0 + KEY_NONE, KEY_1, // 1 + KEY_NONE, KEY_2, // 2 + KEY_NONE, KEY_3, // 3 // 52, 0x34 - KEY_NONE, KEY_4, // 4 - KEY_NONE, KEY_5, // 5 - KEY_NONE, KEY_6, // 6 - KEY_NONE, KEY_7, // 7 + KEY_NONE, KEY_4, // 4 + KEY_NONE, KEY_5, // 5 + KEY_NONE, KEY_6, // 6 + KEY_NONE, KEY_7, // 7 // 56, 0x38 - KEY_NONE, KEY_8, // 8 - KEY_NONE, KEY_9, // 9 - KEY_MOD_LSHIFT, KEY_SEMICOLON, // : - KEY_NONE, KEY_SEMICOLON, // ; + KEY_NONE, KEY_8, // 8 + KEY_NONE, KEY_9, // 9 + KEY_MOD_LSHIFT, KEY_SEMICOLON, // : + KEY_NONE, KEY_SEMICOLON, // ; // 60, 0x3c - KEY_MOD_LSHIFT, KEY_COMMA, // < - KEY_NONE, KEY_EQUAL, // = - KEY_MOD_LSHIFT, KEY_DOT, // > - KEY_MOD_LSHIFT, KEY_SLASH, // ? + KEY_MOD_LSHIFT, KEY_COMMA, // < + KEY_NONE, KEY_EQUAL, // = + KEY_MOD_LSHIFT, KEY_DOT, // > + KEY_MOD_LSHIFT, KEY_SLASH, // ? // 64, 0x40 - KEY_MOD_LSHIFT, KEY_APOSTROPHE, // @ - KEY_MOD_LSHIFT, KEY_A, // A - KEY_MOD_LSHIFT, KEY_B, // B - KEY_MOD_LSHIFT, KEY_C, // C + KEY_MOD_LSHIFT, KEY_APOSTROPHE, // @ + KEY_MOD_LSHIFT, KEY_A, // A + KEY_MOD_LSHIFT, KEY_B, // B + KEY_MOD_LSHIFT, KEY_C, // C // 68, 0x44 - KEY_MOD_LSHIFT, KEY_D, // D - KEY_MOD_LSHIFT, KEY_E, // E - KEY_MOD_LSHIFT, KEY_F, // F - KEY_MOD_LSHIFT, KEY_G, // G + KEY_MOD_LSHIFT, KEY_D, // D + KEY_MOD_LSHIFT, KEY_E, // E + KEY_MOD_LSHIFT, KEY_F, // F + KEY_MOD_LSHIFT, KEY_G, // G // 72, 0x48 - KEY_MOD_LSHIFT, KEY_H, // H - KEY_MOD_LSHIFT, KEY_I, // I - KEY_MOD_LSHIFT, KEY_J, // J - KEY_MOD_LSHIFT, KEY_K, // K + KEY_MOD_LSHIFT, KEY_H, // H + KEY_MOD_LSHIFT, KEY_I, // I + KEY_MOD_LSHIFT, KEY_J, // J + KEY_MOD_LSHIFT, KEY_K, // K // 76, 0x4c - KEY_MOD_LSHIFT, KEY_L, // L - KEY_MOD_LSHIFT, KEY_M, // M - KEY_MOD_LSHIFT, KEY_N, // N - KEY_MOD_LSHIFT, KEY_O, // O + KEY_MOD_LSHIFT, KEY_L, // L + KEY_MOD_LSHIFT, KEY_M, // M + KEY_MOD_LSHIFT, KEY_N, // N + KEY_MOD_LSHIFT, KEY_O, // O // 80, 0x50 - KEY_MOD_LSHIFT, KEY_P, // P - KEY_MOD_LSHIFT, KEY_Q, // Q - KEY_MOD_LSHIFT, KEY_R, // R - KEY_MOD_LSHIFT, KEY_S, // S + KEY_MOD_LSHIFT, KEY_P, // P + KEY_MOD_LSHIFT, KEY_Q, // Q + KEY_MOD_LSHIFT, KEY_R, // R + KEY_MOD_LSHIFT, KEY_S, // S // 84, 0x54 - KEY_MOD_LSHIFT, KEY_T, // T - KEY_MOD_LSHIFT, KEY_U, // U - KEY_MOD_LSHIFT, KEY_V, // V - KEY_MOD_LSHIFT, KEY_W, // W + KEY_MOD_LSHIFT, KEY_T, // T + KEY_MOD_LSHIFT, KEY_U, // U + KEY_MOD_LSHIFT, KEY_V, // V + KEY_MOD_LSHIFT, KEY_W, // W // 88, 0x58 - KEY_MOD_LSHIFT, KEY_X, // X - KEY_MOD_LSHIFT, KEY_Y, // Y - KEY_MOD_LSHIFT, KEY_Z, // Z - KEY_NONE, KEY_LEFTBRACE, // [ + KEY_MOD_LSHIFT, KEY_X, // X + KEY_MOD_LSHIFT, KEY_Y, // Y + KEY_MOD_LSHIFT, KEY_Z, // Z + KEY_NONE, KEY_LEFTBRACE, // [ // 92, 0x5c - KEY_NONE, KEY_102ND, // bslash - KEY_NONE, KEY_RIGHTBRACE, // ] - KEY_MOD_LSHIFT, KEY_6, // ^ - KEY_MOD_LSHIFT, KEY_MINUS, // _ + KEY_NONE, KEY_102ND, // bslash + KEY_NONE, KEY_RIGHTBRACE, // ] + KEY_MOD_LSHIFT, KEY_6, // ^ + KEY_MOD_LSHIFT, KEY_MINUS, // _ // 96, 0x60 - KEY_NONE, KEY_GRAVE, // ` - KEY_NONE, KEY_A, // a - KEY_NONE, KEY_B, // b - KEY_NONE, KEY_C, // c + KEY_NONE, KEY_GRAVE, // ` + KEY_NONE, KEY_A, // a + KEY_NONE, KEY_B, // b + KEY_NONE, KEY_C, // c // 100, 0x64 - KEY_NONE, KEY_D, // d - KEY_NONE, KEY_E, // e - KEY_NONE, KEY_F, // f - KEY_NONE, KEY_G, // g + KEY_NONE, KEY_D, // d + KEY_NONE, KEY_E, // e + KEY_NONE, KEY_F, // f + KEY_NONE, KEY_G, // g // 104, 0x68 - KEY_NONE, KEY_H, // h - KEY_NONE, KEY_I, // i - KEY_NONE, KEY_J, // j - KEY_NONE, KEY_K, // k + KEY_NONE, KEY_H, // h + KEY_NONE, KEY_I, // i + KEY_NONE, KEY_J, // j + KEY_NONE, KEY_K, // k // 108, 0x6c - KEY_NONE, KEY_L, // l - KEY_NONE, KEY_M, // m - KEY_NONE, KEY_N, // n - KEY_NONE, KEY_O, // o + KEY_NONE, KEY_L, // l + KEY_NONE, KEY_M, // m + KEY_NONE, KEY_N, // n + KEY_NONE, KEY_O, // o // 112, 0x70 - KEY_NONE, KEY_P, // p - KEY_NONE, KEY_Q, // q - KEY_NONE, KEY_R, // r - KEY_NONE, KEY_S, // s + KEY_NONE, KEY_P, // p + KEY_NONE, KEY_Q, // q + KEY_NONE, KEY_R, // r + KEY_NONE, KEY_S, // s // 116, 0x74 - KEY_NONE, KEY_T, // t - KEY_NONE, KEY_U, // u - KEY_NONE, KEY_V, // v - KEY_NONE, KEY_W, // w + KEY_NONE, KEY_T, // t + KEY_NONE, KEY_U, // u + KEY_NONE, KEY_V, // v + KEY_NONE, KEY_W, // w // 120, 0x78 - KEY_NONE, KEY_X, // x - KEY_NONE, KEY_Y, // y - KEY_NONE, KEY_Z, // z - KEY_MOD_LSHIFT, KEY_LEFTBRACE, // { + KEY_NONE, KEY_X, // x + KEY_NONE, KEY_Y, // y + KEY_NONE, KEY_Z, // z + KEY_MOD_LSHIFT, KEY_LEFTBRACE, // { // 124, 0x7c - KEY_MOD_LSHIFT, KEY_102ND, // | - KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // } - KEY_MOD_LSHIFT, KEY_HASHTILDE, // ~ - KEY_NONE, KEY_NONE // DEL + KEY_MOD_LSHIFT, KEY_102ND, // | + KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // } + KEY_MOD_LSHIFT, KEY_BACKSLASH, // ~ + KEY_NONE, KEY_DELETE // DEL }; -const uint8_t extended_ascii_gb[] PROGMEM = { - 0x9c, KEY_MOD_LSHIFT, KEY_3, // £ - 0xa6, KEY_MOD_RALT, KEY_GRAVE, // ¦ - 0xaa, KEY_MOD_LSHIFT, KEY_GRAVE, // ¬ - 0x82, KEY_MOD_RALT, KEY_E, // é - 0xa1, KEY_MOD_RALT, KEY_I, // í - 0xa3, KEY_MOD_RALT, KEY_U, // ú - 0xa2, KEY_MOD_RALT, KEY_O, // ó - 0x90, KEY_MOD_RALT | KEY_MOD_LSHIFT, KEY_E // É +const uint8_t utf8_gb[] PROGMEM = { + 0xC2, 0xA3, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_3, // £ + 0xC2, 0xA6, 0x00, 0x00, KEY_MOD_RALT, KEY_GRAVE, // ¦ + 0xC2, 0xAC, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, // ¬ + 0xC3, 0x81, 0x00, 0x00, (KEY_MOD_RALT|KEY_MOD_LSHIFT), KEY_A, // Á + 0xC3, 0x89, 0x00, 0x00, (KEY_MOD_RALT|KEY_MOD_LSHIFT), KEY_E, // É + 0xC3, 0x8D, 0x00, 0x00, (KEY_MOD_RALT|KEY_MOD_LSHIFT), KEY_I, // Í + 0xC3, 0x93, 0x00, 0x00, (KEY_MOD_RALT|KEY_MOD_LSHIFT), KEY_O, // Ó + 0xC3, 0x9A, 0x00, 0x00, (KEY_MOD_RALT|KEY_MOD_LSHIFT), KEY_U, // Ú + 0xC3, 0xA1, 0x00, 0x00, KEY_MOD_RALT, KEY_A, // á + 0xC3, 0xA9, 0x00, 0x00, KEY_MOD_RALT, KEY_E, // é + 0xC3, 0xAD, 0x00, 0x00, KEY_MOD_RALT, KEY_I, // í + 0xC3, 0xB3, 0x00, 0x00, KEY_MOD_RALT, KEY_O, // ó + 0xC3, 0xBA, 0x00, 0x00, KEY_MOD_RALT, KEY_U, // ú + 0xE2, 0x82, 0xAC, 0x00, KEY_MOD_RALT, KEY_4, // € }; -const uint8_t utf8_gb[] PROGMEM = { - 0xc2, 0xa3, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_3, // £ - 0xc2, 0xa6, 0x00, 0x00, KEY_MOD_RALT, KEY_GRAVE, // ¦ - 0xc2, 0xac, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, // ¬ - 0xc3, 0xa9, 0x00, 0x00, KEY_MOD_RALT, KEY_E, // é - 0xc3, 0xad, 0x00, 0x00, KEY_MOD_RALT, KEY_I, // í - 0xc3, 0xba, 0x00, 0x00, KEY_MOD_RALT, KEY_U, // ú - 0xc3, 0xb3, 0x00, 0x00, KEY_MOD_RALT, KEY_O, // ó - 0xc3, 0x89, 0x00, 0x00, KEY_MOD_RALT | KEY_MOD_LSHIFT, KEY_E, // É - 0xc3, 0x8d, 0x00, 0x00, KEY_MOD_RALT | KEY_MOD_LSHIFT, KEY_I, // Í - 0xc3, 0x9a, 0x00, 0x00, KEY_MOD_RALT | KEY_MOD_LSHIFT, KEY_U, // Ú - 0xc3, 0x93, 0x00, 0x00, KEY_MOD_RALT | KEY_MOD_LSHIFT, KEY_O, // Ó - 0xe2, 0x82, 0xac, 0x00, KEY_MOD_RALT, KEY_4 // € +const uint8_t combinations_gb[] PROGMEM = { }; static hid_locale_t locale_gb { (uint8_t*)ascii_gb, 128, - (uint8_t*)extended_ascii_gb, sizeof(extended_ascii_gb) / 3, (uint8_t*)utf8_gb, sizeof(utf8_gb) / 6, + (uint8_t*)combinations_gb, sizeof(combinations_gb) / 8, }; \ No newline at end of file diff --git a/atmega_duck/locale_it.h b/atmega_duck/locale_it.h index c361fd4..1b38d3d 100644 --- a/atmega_duck/locale_it.h +++ b/atmega_duck/locale_it.h @@ -1,6 +1,6 @@ /* - This software is licensed under the MIT License. See the license file for details. - Source: https://github.com/spacehuhntech/WiFiDuck + This software is licensed under the MIT License. See the license file for details. + Source: https://github.com/spacehuhntech/WiFiDuck */ #pragma once @@ -9,215 +9,206 @@ // Modifier(s), Key const uint8_t ascii_it[] PROGMEM = { - KEY_NONE, KEY_NONE, // NUL - KEY_NONE, KEY_NONE, // SOH - KEY_NONE, KEY_NONE, // STX - KEY_NONE, KEY_NONE, // ETX - KEY_NONE, KEY_NONE, // EOT - KEY_NONE, KEY_NONE, // ENQ - KEY_NONE, KEY_NONE, // ACK - KEY_NONE, KEY_NONE, // BEL + KEY_NONE, KEY_NONE, // NUL + KEY_NONE, KEY_NONE, // SOH + KEY_NONE, KEY_NONE, // STX + KEY_NONE, KEY_NONE, // ETX + KEY_NONE, KEY_NONE, // EOT + KEY_NONE, KEY_NONE, // ENQ + KEY_NONE, KEY_NONE, // ACK + KEY_NONE, KEY_NONE, // BEL // 8, 0x08 - KEY_NONE, KEY_BACKSPACE, // BS Backspace - KEY_NONE, KEY_TAB, // TAB Tab - KEY_NONE, KEY_ENTER, // LF Enter - - KEY_NONE, KEY_NONE, // VT - KEY_NONE, KEY_NONE, // FF - KEY_NONE, KEY_NONE, // CR - KEY_NONE, KEY_NONE, // SO - KEY_NONE, KEY_NONE, // SI - KEY_NONE, KEY_NONE, // DEL - KEY_NONE, KEY_NONE, // DC1 - KEY_NONE, KEY_NONE, // DC2 - KEY_NONE, KEY_NONE, // DC3 - KEY_NONE, KEY_NONE, // DC4 - KEY_NONE, KEY_NONE, // NAK - KEY_NONE, KEY_NONE, // SYN - KEY_NONE, KEY_NONE, // ETB - KEY_NONE, KEY_NONE, // CAN - KEY_NONE, KEY_NONE, // EM - KEY_NONE, KEY_NONE, // SUB - KEY_NONE, KEY_NONE, // ESC - KEY_NONE, KEY_NONE, // FS - KEY_NONE, KEY_NONE, // GS - KEY_NONE, KEY_NONE, // RS - KEY_NONE, KEY_NONE, // US - + KEY_NONE, KEY_BACKSPACE, // BS Backspace + KEY_NONE, KEY_TAB, // TAB Tab + KEY_NONE, KEY_ENTER, // LF Enter + + KEY_NONE, KEY_NONE, // VT + KEY_NONE, KEY_NONE, // FF + KEY_NONE, KEY_NONE, // CR + KEY_NONE, KEY_NONE, // SO + KEY_NONE, KEY_NONE, // SI + KEY_NONE, KEY_NONE, // DEL + KEY_NONE, KEY_NONE, // DC1 + KEY_NONE, KEY_NONE, // DC2 + KEY_NONE, KEY_NONE, // DC3 + KEY_NONE, KEY_NONE, // DC4 + KEY_NONE, KEY_NONE, // NAK + KEY_NONE, KEY_NONE, // SYN + KEY_NONE, KEY_NONE, // ETB + KEY_NONE, KEY_NONE, // CAN + KEY_NONE, KEY_NONE, // EM + KEY_NONE, KEY_NONE, // SUB + KEY_NONE, KEY_NONE, // ESC + KEY_NONE, KEY_NONE, // FS + KEY_NONE, KEY_NONE, // GS + KEY_NONE, KEY_NONE, // RS + KEY_NONE, KEY_NONE, // US + // 32, 0x20 - KEY_NONE, KEY_SPACE, // ' ' - KEY_MOD_LSHIFT, KEY_1, // ! - KEY_MOD_LSHIFT, KEY_2, // " - KEY_MOD_RALT, KEY_APOSTROPHE, // # + KEY_NONE, KEY_SPACE, // ' ' + KEY_MOD_LSHIFT, KEY_1, // ! + KEY_MOD_LSHIFT, KEY_2, // " + KEY_MOD_RALT, KEY_APOSTROPHE, // # // 36, 0x24 - KEY_MOD_LSHIFT, KEY_4, // $ - KEY_MOD_LSHIFT, KEY_5, // % - KEY_MOD_LSHIFT, KEY_6, // & - KEY_NONE, KEY_MINUS, // ' + KEY_MOD_LSHIFT, KEY_4, // $ + KEY_MOD_LSHIFT, KEY_5, // % + KEY_MOD_LSHIFT, KEY_6, // & + KEY_NONE, KEY_MINUS, // ' // 40, 0x28 - KEY_MOD_LSHIFT, KEY_8, // ( - KEY_MOD_LSHIFT, KEY_9, // ) - KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // * - KEY_NONE, KEY_RIGHTBRACE, // + + KEY_MOD_LSHIFT, KEY_8, // ( + KEY_MOD_LSHIFT, KEY_9, // ) + KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // * + KEY_NONE, KEY_RIGHTBRACE, // + // 44, 0x2c - KEY_NONE, KEY_COMMA, // , - KEY_NONE, KEY_SLASH, // - - KEY_NONE, KEY_DOT, // . - KEY_MOD_LSHIFT, KEY_7, // / + KEY_NONE, KEY_COMMA, // , + KEY_NONE, KEY_SLASH, // - + KEY_NONE, KEY_DOT, // . + KEY_MOD_LSHIFT, KEY_7, // / // 48, 0x30 - KEY_NONE, KEY_0, // 0 - KEY_NONE, KEY_1, // 1 - KEY_NONE, KEY_2, // 2 - KEY_NONE, KEY_3, // 3 + KEY_NONE, KEY_0, // 0 + KEY_NONE, KEY_1, // 1 + KEY_NONE, KEY_2, // 2 + KEY_NONE, KEY_3, // 3 // 52, 0x34 - KEY_NONE, KEY_4, // 4 - KEY_NONE, KEY_5, // 5 - KEY_NONE, KEY_6, // 6 - KEY_NONE, KEY_7, // 7 + KEY_NONE, KEY_4, // 4 + KEY_NONE, KEY_5, // 5 + KEY_NONE, KEY_6, // 6 + KEY_NONE, KEY_7, // 7 // 56, 0x38 - KEY_NONE, KEY_8, // 8 - KEY_NONE, KEY_9, // 9 - KEY_MOD_LSHIFT, KEY_DOT, // : - KEY_MOD_LSHIFT, KEY_COMMA, // ; + KEY_NONE, KEY_8, // 8 + KEY_NONE, KEY_9, // 9 + KEY_MOD_LSHIFT, KEY_DOT, // : + KEY_MOD_LSHIFT, KEY_COMMA, // ; // 60, 0x3c - KEY_NONE, KEY_102ND, // < - KEY_MOD_LSHIFT, KEY_0, // = - KEY_MOD_LSHIFT, KEY_102ND, // > - KEY_MOD_LSHIFT, KEY_MINUS, // ? + KEY_NONE, KEY_102ND, // < + KEY_MOD_LSHIFT, KEY_0, // = + KEY_MOD_LSHIFT, KEY_102ND, // > + KEY_MOD_LSHIFT, KEY_MINUS, // ? // 64, 0x40 - KEY_MOD_RALT, KEY_SEMICOLON, // @ - KEY_MOD_LSHIFT, KEY_A, // A - KEY_MOD_LSHIFT, KEY_B, // B - KEY_MOD_LSHIFT, KEY_C, // C + KEY_MOD_RALT, KEY_SEMICOLON, // @ + KEY_MOD_LSHIFT, KEY_A, // A + KEY_MOD_LSHIFT, KEY_B, // B + KEY_MOD_LSHIFT, KEY_C, // C // 68, 0x44 - KEY_MOD_LSHIFT, KEY_D, // D - KEY_MOD_LSHIFT, KEY_E, // E - KEY_MOD_LSHIFT, KEY_F, // F - KEY_MOD_LSHIFT, KEY_G, // G + KEY_MOD_LSHIFT, KEY_D, // D + KEY_MOD_LSHIFT, KEY_E, // E + KEY_MOD_LSHIFT, KEY_F, // F + KEY_MOD_LSHIFT, KEY_G, // G // 72, 0x48 - KEY_MOD_LSHIFT, KEY_H, // H - KEY_MOD_LSHIFT, KEY_I, // I - KEY_MOD_LSHIFT, KEY_J, // J - KEY_MOD_LSHIFT, KEY_K, // K + KEY_MOD_LSHIFT, KEY_H, // H + KEY_MOD_LSHIFT, KEY_I, // I + KEY_MOD_LSHIFT, KEY_J, // J + KEY_MOD_LSHIFT, KEY_K, // K // 76, 0x4c - KEY_MOD_LSHIFT, KEY_L, // L - KEY_MOD_LSHIFT, KEY_M, // M - KEY_MOD_LSHIFT, KEY_N, // N - KEY_MOD_LSHIFT, KEY_O, // O + KEY_MOD_LSHIFT, KEY_L, // L + KEY_MOD_LSHIFT, KEY_M, // M + KEY_MOD_LSHIFT, KEY_N, // N + KEY_MOD_LSHIFT, KEY_O, // O // 80, 0x50 - KEY_MOD_LSHIFT, KEY_P, // P - KEY_MOD_LSHIFT, KEY_Q, // Q - KEY_MOD_LSHIFT, KEY_R, // R - KEY_MOD_LSHIFT, KEY_S, // S + KEY_MOD_LSHIFT, KEY_P, // P + KEY_MOD_LSHIFT, KEY_Q, // Q + KEY_MOD_LSHIFT, KEY_R, // R + KEY_MOD_LSHIFT, KEY_S, // S // 84, 0x54 - KEY_MOD_LSHIFT, KEY_T, // T - KEY_MOD_LSHIFT, KEY_U, // U - KEY_MOD_LSHIFT, KEY_V, // V - KEY_MOD_LSHIFT, KEY_W, // W + KEY_MOD_LSHIFT, KEY_T, // T + KEY_MOD_LSHIFT, KEY_U, // U + KEY_MOD_LSHIFT, KEY_V, // V + KEY_MOD_LSHIFT, KEY_W, // W // 88, 0x58 - KEY_MOD_LSHIFT, KEY_X, // X - KEY_MOD_LSHIFT, KEY_Z, // Y - KEY_MOD_LSHIFT, KEY_Y, // Z - KEY_MOD_RALT, KEY_LEFTBRACE, // [ + KEY_MOD_LSHIFT, KEY_X, // X + KEY_MOD_LSHIFT, KEY_Y, // Y + KEY_MOD_LSHIFT, KEY_Z, // Z + KEY_MOD_RALT, KEY_LEFTBRACE, // [ // 92, 0x5c - KEY_NONE, KEY_GRAVE, // bslash - KEY_MOD_RALT, KEY_RIGHTBRACE, // ] - KEY_MOD_LSHIFT, KEY_EQUAL, // ^ - KEY_MOD_LSHIFT, KEY_SLASH, // _ + KEY_NONE, KEY_GRAVE, // bslash + KEY_MOD_RALT, KEY_RIGHTBRACE, // ] + KEY_MOD_LSHIFT, KEY_EQUAL, // ^ + KEY_MOD_LSHIFT, KEY_SLASH, // _ // 96, 0x60 - KEY_NONE, KEY_NONE, // ` - KEY_NONE, KEY_A, // a - KEY_NONE, KEY_B, // b - KEY_NONE, KEY_C, // c + KEY_NONE, KEY_NONE, // ` + KEY_NONE, KEY_A, // a + KEY_NONE, KEY_B, // b + KEY_NONE, KEY_C, // c // 100, 0x64 - KEY_NONE, KEY_D, // d - KEY_NONE, KEY_E, // e - KEY_NONE, KEY_F, // f - KEY_NONE, KEY_G, // g + KEY_NONE, KEY_D, // d + KEY_NONE, KEY_E, // e + KEY_NONE, KEY_F, // f + KEY_NONE, KEY_G, // g // 104, 0x68 - KEY_NONE, KEY_H, // h - KEY_NONE, KEY_I, // i - KEY_NONE, KEY_J, // j - KEY_NONE, KEY_K, // k + KEY_NONE, KEY_H, // h + KEY_NONE, KEY_I, // i + KEY_NONE, KEY_J, // j + KEY_NONE, KEY_K, // k // 108, 0x6c - KEY_NONE, KEY_L, // l - KEY_NONE, KEY_M, // m - KEY_NONE, KEY_N, // n - KEY_NONE, KEY_O, // o + KEY_NONE, KEY_L, // l + KEY_NONE, KEY_M, // m + KEY_NONE, KEY_N, // n + KEY_NONE, KEY_O, // o // 112, 0x70 - KEY_NONE, KEY_P, // p - KEY_NONE, KEY_Q, // q - KEY_NONE, KEY_R, // r - KEY_NONE, KEY_S, // s + KEY_NONE, KEY_P, // p + KEY_NONE, KEY_Q, // q + KEY_NONE, KEY_R, // r + KEY_NONE, KEY_S, // s // 116, 0x74 - KEY_NONE, KEY_T, // t - KEY_NONE, KEY_U, // u - KEY_NONE, KEY_V, // v - KEY_NONE, KEY_W, // w + KEY_NONE, KEY_T, // t + KEY_NONE, KEY_U, // u + KEY_NONE, KEY_V, // v + KEY_NONE, KEY_W, // w // 120, 0x78 - KEY_NONE, KEY_X, // x - KEY_NONE, KEY_Y, // y - KEY_NONE, KEY_Z, // z - (KEY_MOD_LSHIFT | KEY_MOD_RALT), KEY_LEFTBRACE, // { + KEY_NONE, KEY_X, // x + KEY_NONE, KEY_Y, // y + KEY_NONE, KEY_Z, // z + (KEY_MOD_RALT|KEY_MOD_LSHIFT),KEY_LEFTBRACE,// { // 124, 0x7c - KEY_MOD_LSHIFT, KEY_GRAVE, // | - (KEY_MOD_LSHIFT | KEY_MOD_RALT), KEY_RIGHTBRACE, // } - KEY_NONE, KEY_NONE, // ~ - KEY_NONE, KEY_BACKSPACE, // DEL + KEY_MOD_LSHIFT, KEY_GRAVE, // | + (KEY_MOD_RALT|KEY_MOD_LSHIFT),KEY_RIGHTBRACE,// } + KEY_NONE, KEY_NONE, // ~ + KEY_NONE, KEY_DELETE // DEL }; -const uint8_t extended_ascii_it[] PROGMEM = { - 0xE0, KEY_NONE, KEY_APOSTROPHE, // à - 0xE0, KEY_NONE, KEY_BACKSLASH, // ù - 0xF2, KEY_NONE, KEY_SEMICOLON, // ò - 0xE7, KEY_MOD_LSHIFT, KEY_SEMICOLON, // ç - 0xE8, KEY_NONE, KEY_LEFTBRACE, // è - 0xE9, KEY_MOD_LSHIFT, KEY_LEFTBRACE, // é - 0xEC, KEY_NONE, KEY_EQUAL, // ì - 0x9c, KEY_MOD_LSHIFT, KEY_3, // £ - 0xF8, KEY_MOD_LSHIFT, KEY_APOSTROPHE // ° +const uint8_t utf8_it[] PROGMEM = { + 0xC2, 0xA3, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_3, // £ + 0xC2, 0xA7, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, // § + 0xC2, 0xB0, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // ° + 0xC3, 0xA0, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, // à + 0xC3, 0xA7, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_SEMICOLON, // ç + 0xC3, 0xA8, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, // è + 0xC3, 0xA9, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, // é + 0xC3, 0xAC, 0x00, 0x00, KEY_NONE, KEY_EQUAL, // ì + 0xC3, 0xB2, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON, // ò + 0xC3, 0xB9, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, // ù + 0xE2, 0x82, 0xAC, 0x00, KEY_MOD_RALT, KEY_5, // € }; -const uint8_t utf8_it[] PROGMEM = { - 0xC3, 0xA0, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, // à - 0xc3, 0xb9, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, // ù - 0xC3, 0xB2, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON, // ò - 0xc3, 0xa7, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_SEMICOLON, // ç - 0xc3, 0xa8, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, // è - 0xc3, 0xa9, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, // é - 0xC3, 0xAC, 0x00, 0x00, KEY_NONE, KEY_EQUAL, // ì - 0xc2, 0xa3, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_3, // £ - 0xc2, 0xa7, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, // § - 0xc2, 0xb0, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // ° - 0xe2, 0x82, 0xac, 0x00, KEY_MOD_RALT, KEY_E // € +const uint8_t combinations_it[] PROGMEM = { }; static hid_locale_t locale_it { - (uint8_t*)ascii_it, sizeof(ascii_it) / 2, - (uint8_t*)extended_ascii_it, sizeof(extended_ascii_it) / 3, - (uint8_t*)utf8_it, sizeof(utf8_it) / 6 + (uint8_t*)ascii_it, 128, + (uint8_t*)utf8_it, sizeof(utf8_it) / 6, + (uint8_t*)combinations_it, sizeof(combinations_it) / 8, }; \ No newline at end of file diff --git a/atmega_duck/locale_pt.h b/atmega_duck/locale_pt.h index ae1a826..eee3522 100644 --- a/atmega_duck/locale_pt.h +++ b/atmega_duck/locale_pt.h @@ -1,6 +1,6 @@ /* - This software is licensed under the MIT License. See the license file for details. - Source: https://github.com/spacehuhntech/WiFiDuck + This software is licensed under the MIT License. See the license file for details. + Source: https://github.com/spacehuhntech/WiFiDuck */ #pragma once @@ -9,192 +9,256 @@ // Modifier(s), Key const uint8_t ascii_pt[] PROGMEM = { - KEY_NONE, KEY_NONE, // NUL - KEY_NONE, KEY_NONE, // SOH - KEY_NONE, KEY_NONE, // STX - KEY_NONE, KEY_NONE, // ETX - KEY_NONE, KEY_NONE, // EOT - KEY_NONE, KEY_NONE, // ENQ - KEY_NONE, KEY_NONE, // ACK - KEY_NONE, KEY_NONE, // BEL + KEY_NONE, KEY_NONE, // NUL + KEY_NONE, KEY_NONE, // SOH + KEY_NONE, KEY_NONE, // STX + KEY_NONE, KEY_NONE, // ETX + KEY_NONE, KEY_NONE, // EOT + KEY_NONE, KEY_NONE, // ENQ + KEY_NONE, KEY_NONE, // ACK + KEY_NONE, KEY_NONE, // BEL // 8, 0x08 - KEY_NONE, KEY_BACKSPACE, // BS Backspace - KEY_NONE, KEY_TAB, // TAB Tab - KEY_NONE, KEY_ENTER, // LF Enter - - KEY_NONE, KEY_NONE, // VT - KEY_NONE, KEY_NONE, // FF - KEY_NONE, KEY_NONE, // CR - KEY_NONE, KEY_NONE, // SO - KEY_NONE, KEY_NONE, // SI - KEY_NONE, KEY_NONE, // DEL - KEY_NONE, KEY_NONE, // DC1 - KEY_NONE, KEY_NONE, // DC2 - KEY_NONE, KEY_NONE, // DC3 - KEY_NONE, KEY_NONE, // DC4 - KEY_NONE, KEY_NONE, // NAK - KEY_NONE, KEY_NONE, // SYN - KEY_NONE, KEY_NONE, // ETB - KEY_NONE, KEY_NONE, // CAN - KEY_NONE, KEY_NONE, // EM - KEY_NONE, KEY_NONE, // SUB - KEY_NONE, KEY_NONE, // ESC - KEY_NONE, KEY_NONE, // FS - KEY_NONE, KEY_NONE, // GS - KEY_NONE, KEY_NONE, // RS - KEY_NONE, KEY_NONE, // US + KEY_NONE, KEY_BACKSPACE, // BS Backspace + KEY_NONE, KEY_TAB, // TAB Tab + KEY_NONE, KEY_ENTER, // LF Enter + KEY_NONE, KEY_NONE, // VT + KEY_NONE, KEY_NONE, // FF + KEY_NONE, KEY_NONE, // CR + KEY_NONE, KEY_NONE, // SO + KEY_NONE, KEY_NONE, // SI + KEY_NONE, KEY_NONE, // DEL + KEY_NONE, KEY_NONE, // DC1 + KEY_NONE, KEY_NONE, // DC2 + KEY_NONE, KEY_NONE, // DC3 + KEY_NONE, KEY_NONE, // DC4 + KEY_NONE, KEY_NONE, // NAK + KEY_NONE, KEY_NONE, // SYN + KEY_NONE, KEY_NONE, // ETB + KEY_NONE, KEY_NONE, // CAN + KEY_NONE, KEY_NONE, // EM + KEY_NONE, KEY_NONE, // SUB + KEY_NONE, KEY_NONE, // ESC + KEY_NONE, KEY_NONE, // FS + KEY_NONE, KEY_NONE, // GS + KEY_NONE, KEY_NONE, // RS + KEY_NONE, KEY_NONE, // US + // 32, 0x20 - KEY_NONE, KEY_SPACE, // ' ' - KEY_MOD_LSHIFT, KEY_1, // ! - KEY_MOD_LSHIFT, KEY_2, // " - KEY_MOD_LSHIFT, KEY_3, // # + KEY_NONE, KEY_SPACE, // ' ' + KEY_MOD_LSHIFT, KEY_1, // ! + KEY_MOD_LSHIFT, KEY_2, // " + KEY_MOD_LSHIFT, KEY_3, // # // 36, 0x24 - KEY_MOD_LSHIFT, KEY_4, // $ - KEY_MOD_LSHIFT, KEY_5, // % - KEY_MOD_LSHIFT, KEY_6, // & - KEY_NONE, KEY_MINUS, // ' + KEY_MOD_LSHIFT, KEY_4, // $ + KEY_MOD_LSHIFT, KEY_5, // % + KEY_MOD_LSHIFT, KEY_6, // & + KEY_NONE, KEY_MINUS, // ' + // 40, 0x28 - KEY_MOD_LSHIFT, KEY_8, // ( - KEY_MOD_LSHIFT, KEY_9, // ) - KEY_MOD_LSHIFT, KEY_LEFTBRACE, // * - KEY_NONE, KEY_LEFTBRACE, // + + KEY_MOD_LSHIFT, KEY_8, // ( + KEY_MOD_LSHIFT, KEY_9, // ) + KEY_MOD_LSHIFT, KEY_LEFTBRACE, // * + KEY_NONE, KEY_LEFTBRACE, // + // 44, 0x2c - KEY_NONE, KEY_COMMA, // , - KEY_NONE, KEY_SLASH, // - - KEY_NONE, KEY_DOT, // . - KEY_MOD_LSHIFT, KEY_7, // / + KEY_NONE, KEY_COMMA, // , + KEY_NONE, KEY_SLASH, // - + KEY_NONE, KEY_DOT, // . + KEY_MOD_LSHIFT, KEY_7, // / // 48, 0x30 - KEY_NONE, KEY_0, // 0 - KEY_NONE, KEY_1, // 1 - KEY_NONE, KEY_2, // 2 - KEY_NONE, KEY_3, // 3 + KEY_NONE, KEY_0, // 0 + KEY_NONE, KEY_1, // 1 + KEY_NONE, KEY_2, // 2 + KEY_NONE, KEY_3, // 3 // 52, 0x34 - KEY_NONE, KEY_4, // 4 - KEY_NONE, KEY_5, // 5 - KEY_NONE, KEY_6, // 6 - KEY_NONE, KEY_7, // 7 + KEY_NONE, KEY_4, // 4 + KEY_NONE, KEY_5, // 5 + KEY_NONE, KEY_6, // 6 + KEY_NONE, KEY_7, // 7 // 56, 0x38 - KEY_NONE, KEY_8, // 8 - KEY_NONE, KEY_9, // 9 - KEY_MOD_LSHIFT, KEY_DOT, // : - KEY_MOD_LSHIFT, KEY_COMMA, // ; + KEY_NONE, KEY_8, // 8 + KEY_NONE, KEY_9, // 9 + KEY_MOD_LSHIFT, KEY_DOT, // : + KEY_MOD_LSHIFT, KEY_COMMA, // ; // 60, 0x3c - KEY_NONE, KEY_102ND, // < - KEY_MOD_LSHIFT, KEY_0, // = - KEY_MOD_LSHIFT, KEY_102ND, // > - KEY_MOD_LSHIFT, KEY_MINUS, // ? + KEY_NONE, KEY_102ND, // < + KEY_MOD_LSHIFT, KEY_0, // = + KEY_MOD_LSHIFT, KEY_102ND, // > + KEY_MOD_LSHIFT, KEY_MINUS, // ? // 64, 0x40 - KEY_MOD_RALT, KEY_2, // @ - KEY_MOD_LSHIFT, KEY_A, // A - KEY_MOD_LSHIFT, KEY_B, // B - KEY_MOD_LSHIFT, KEY_C, // C + KEY_MOD_RALT, KEY_2, // @ + KEY_MOD_LSHIFT, KEY_A, // A + KEY_MOD_LSHIFT, KEY_B, // B + KEY_MOD_LSHIFT, KEY_C, // C // 68, 0x44 - KEY_MOD_LSHIFT, KEY_D, // D - KEY_MOD_LSHIFT, KEY_E, // E - KEY_MOD_LSHIFT, KEY_F, // F - KEY_MOD_LSHIFT, KEY_G, // G + KEY_MOD_LSHIFT, KEY_D, // D + KEY_MOD_LSHIFT, KEY_E, // E + KEY_MOD_LSHIFT, KEY_F, // F + KEY_MOD_LSHIFT, KEY_G, // G // 72, 0x48 - KEY_MOD_LSHIFT, KEY_H, // H - KEY_MOD_LSHIFT, KEY_I, // I - KEY_MOD_LSHIFT, KEY_J, // J - KEY_MOD_LSHIFT, KEY_K, // K + KEY_MOD_LSHIFT, KEY_H, // H + KEY_MOD_LSHIFT, KEY_I, // I + KEY_MOD_LSHIFT, KEY_J, // J + KEY_MOD_LSHIFT, KEY_K, // K // 76, 0x4c - KEY_MOD_LSHIFT, KEY_L, // L - KEY_MOD_LSHIFT, KEY_M, // M - KEY_MOD_LSHIFT, KEY_N, // N - KEY_MOD_LSHIFT, KEY_O, // O + KEY_MOD_LSHIFT, KEY_L, // L + KEY_MOD_LSHIFT, KEY_M, // M + KEY_MOD_LSHIFT, KEY_N, // N + KEY_MOD_LSHIFT, KEY_O, // O // 80, 0x50 - KEY_MOD_LSHIFT, KEY_P, // P - KEY_MOD_LSHIFT, KEY_Q, // Q - KEY_MOD_LSHIFT, KEY_R, // R - KEY_MOD_LSHIFT, KEY_S, // S + KEY_MOD_LSHIFT, KEY_P, // P + KEY_MOD_LSHIFT, KEY_Q, // Q + KEY_MOD_LSHIFT, KEY_R, // R + KEY_MOD_LSHIFT, KEY_S, // S // 84, 0x54 - KEY_MOD_LSHIFT, KEY_T, // T - KEY_MOD_LSHIFT, KEY_U, // U - KEY_MOD_LSHIFT, KEY_V, // V - KEY_MOD_LSHIFT, KEY_W, // W + KEY_MOD_LSHIFT, KEY_T, // T + KEY_MOD_LSHIFT, KEY_U, // U + KEY_MOD_LSHIFT, KEY_V, // V + KEY_MOD_LSHIFT, KEY_W, // W // 88, 0x58 - KEY_MOD_LSHIFT, KEY_X, // X - KEY_MOD_LSHIFT, KEY_Y, // Y - KEY_MOD_LSHIFT, KEY_Z, // Z - KEY_MOD_RALT, KEY_8, // [ + KEY_MOD_LSHIFT, KEY_X, // X + KEY_MOD_LSHIFT, KEY_Y, // Y + KEY_MOD_LSHIFT, KEY_Z, // Z + KEY_MOD_RALT, KEY_8, // [ // 92, 0x5c - KEY_NONE, KEY_GRAVE, // bslash - KEY_MOD_RALT, KEY_9, // ] - KEY_MOD_LSHIFT, KEY_BACKSLASH, // ^ - KEY_MOD_LSHIFT, KEY_SLASH, // _ + KEY_NONE, KEY_GRAVE, // bslash + KEY_MOD_RALT, KEY_9, // ] + KEY_MOD_LSHIFT, KEY_BACKSLASH, // ^ + KEY_MOD_LSHIFT, KEY_SLASH, // _ // 96, 0x60 - KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // ` - KEY_NONE, KEY_A, // a - KEY_NONE, KEY_B, // b - KEY_NONE, KEY_C, // c + KEY_NONE, KEY_SPACE, // ` + KEY_NONE, KEY_A, // a + KEY_NONE, KEY_B, // b + KEY_NONE, KEY_C, // c // 100, 0x64 - KEY_NONE, KEY_D, // d - KEY_NONE, KEY_E, // e - KEY_NONE, KEY_F, // f - KEY_NONE, KEY_G, // g + KEY_NONE, KEY_D, // d + KEY_NONE, KEY_E, // e + KEY_NONE, KEY_F, // f + KEY_NONE, KEY_G, // g // 104, 0x68 - KEY_NONE, KEY_H, // h - KEY_NONE, KEY_I, // i - KEY_NONE, KEY_J, // j - KEY_NONE, KEY_K, // k + KEY_NONE, KEY_H, // h + KEY_NONE, KEY_I, // i + KEY_NONE, KEY_J, // j + KEY_NONE, KEY_K, // k // 108, 0x6c - KEY_NONE, KEY_L, // l - KEY_NONE, KEY_M, // m - KEY_NONE, KEY_N, // n - KEY_NONE, KEY_O, // o + KEY_NONE, KEY_L, // l + KEY_NONE, KEY_M, // m + KEY_NONE, KEY_N, // n + KEY_NONE, KEY_O, // o // 112, 0x70 - KEY_NONE, KEY_P, // p - KEY_NONE, KEY_Q, // q - KEY_NONE, KEY_R, // r - KEY_NONE, KEY_S, // s + KEY_NONE, KEY_P, // p + KEY_NONE, KEY_Q, // q + KEY_NONE, KEY_R, // r + KEY_NONE, KEY_S, // s // 116, 0x74 - KEY_NONE, KEY_T, // t - KEY_NONE, KEY_U, // u - KEY_NONE, KEY_V, // v - KEY_NONE, KEY_W, // w + KEY_NONE, KEY_T, // t + KEY_NONE, KEY_U, // u + KEY_NONE, KEY_V, // v + KEY_NONE, KEY_W, // w // 120, 0x78 - KEY_NONE, KEY_X, // x - KEY_NONE, KEY_Y, // y - KEY_NONE, KEY_Z, // z - KEY_MOD_RALT, KEY_7, // { + KEY_NONE, KEY_X, // x + KEY_NONE, KEY_Y, // y + KEY_NONE, KEY_Z, // z + KEY_MOD_RALT, KEY_7, // { // 124, 0x7c - KEY_MOD_LSHIFT, KEY_GRAVE, // | - KEY_MOD_RALT, KEY_0, // } - KEY_NONE, KEY_BACKSLASH, // ~ - KEY_NONE, KEY_NONE // DEL + KEY_MOD_LSHIFT, KEY_GRAVE, // | + KEY_MOD_RALT, KEY_0, // } + KEY_NONE, KEY_BACKSLASH, // ~ + KEY_NONE, KEY_DELETE // DEL }; -const uint8_t extended_ascii_pt[] PROGMEM = {}; +const uint8_t utf8_pt[] PROGMEM = { + 0xC2, 0xA3, 0x00, 0x00, KEY_MOD_RALT, KEY_3, // £ + 0xC2, 0xA7, 0x00, 0x00, KEY_MOD_RALT, KEY_4, // § + 0xC2, 0xAA, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // ª + 0xC2, 0xAB, 0x00, 0x00, KEY_NONE, KEY_EQUAL, // « + 0xC2, 0xBA, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, // º + 0xC2, 0xBB, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, // » + 0xC3, 0x87, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_SEMICOLON, // Ç + 0xC3, 0xA7, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON, // ç + 0xE2, 0x82, 0xAC, 0x00, KEY_MOD_RALT, KEY_5, // € +}; -const uint8_t utf8_pt[] PROGMEM = {}; +const uint8_t combinations_pt[] PROGMEM = { + 0x60, 0x00, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_NONE, KEY_SPACE, // ` + 0xC2, 0xA8, 0x00, 0x00, KEY_MOD_RALT, KEY_LEFTBRACE, KEY_NONE, KEY_SPACE, // ¨ + 0xC2, 0xB4, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_NONE, KEY_SPACE, // ´ + 0xC3, 0x80, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_A, // À + 0xC3, 0x81, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_A, // Á + 0xC3, 0x82, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_A, //  + 0xC3, 0x83, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_A, // à + 0xC3, 0x84, 0x00, 0x00, KEY_MOD_RALT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_A, // Ä + 0xC3, 0x88, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_E, // È + 0xC3, 0x89, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_E, // É + 0xC3, 0x8A, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_E, // Ê + 0xC3, 0x8B, 0x00, 0x00, KEY_MOD_RALT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_E, // Ë + 0xC3, 0x8C, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_I, // Ì + 0xC3, 0x8D, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_I, // Í + 0xC3, 0x8E, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_I, // Î + 0xC3, 0x8F, 0x00, 0x00, KEY_MOD_RALT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_I, // Ï + 0xC3, 0x91, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_N, // Ñ + 0xC3, 0x92, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_O, // Ò + 0xC3, 0x93, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_O, // Ó + 0xC3, 0x94, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_O, // Ô + 0xC3, 0x95, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_O, // Õ + 0xC3, 0x96, 0x00, 0x00, KEY_MOD_RALT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_O, // Ö + 0xC3, 0x99, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_U, // Ù + 0xC3, 0x9A, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_U, // Ú + 0xC3, 0x9B, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, KEY_MOD_LSHIFT, KEY_U, // Û + 0xC3, 0x9C, 0x00, 0x00, KEY_MOD_RALT, KEY_LEFTBRACE, KEY_MOD_LSHIFT, KEY_U, // Ü + 0xC3, 0x9D, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_MOD_LSHIFT, KEY_Y, // Ý + 0xC3, 0xA0, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_NONE, KEY_A, // à + 0xC3, 0xA1, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_NONE, KEY_A, // á + 0xC3, 0xA2, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, KEY_NONE, KEY_A, // â + 0xC3, 0xA3, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, KEY_NONE, KEY_A, // ã + 0xC3, 0xA4, 0x00, 0x00, KEY_MOD_RALT, KEY_LEFTBRACE, KEY_NONE, KEY_A, // ä + 0xC3, 0xA8, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_NONE, KEY_E, // è + 0xC3, 0xA9, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_NONE, KEY_E, // é + 0xC3, 0xAA, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, KEY_NONE, KEY_E, // ê + 0xC3, 0xAB, 0x00, 0x00, KEY_MOD_RALT, KEY_LEFTBRACE, KEY_NONE, KEY_E, // ë + 0xC3, 0xAC, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_NONE, KEY_I, // ì + 0xC3, 0xAD, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_NONE, KEY_I, // í + 0xC3, 0xAE, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, KEY_NONE, KEY_I, // î + 0xC3, 0xAF, 0x00, 0x00, KEY_MOD_RALT, KEY_LEFTBRACE, KEY_NONE, KEY_I, // ï + 0xC3, 0xB1, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, KEY_NONE, KEY_N, // ñ + 0xC3, 0xB2, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_NONE, KEY_O, // ò + 0xC3, 0xB3, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_NONE, KEY_O, // ó + 0xC3, 0xB4, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, KEY_NONE, KEY_O, // ô + 0xC3, 0xB5, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, KEY_NONE, KEY_O, // õ + 0xC3, 0xB6, 0x00, 0x00, KEY_MOD_RALT, KEY_LEFTBRACE, KEY_NONE, KEY_O, // ö + 0xC3, 0xB9, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, KEY_NONE, KEY_U, // ù + 0xC3, 0xBA, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_NONE, KEY_U, // ú + 0xC3, 0xBB, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, KEY_NONE, KEY_U, // û + 0xC3, 0xBC, 0x00, 0x00, KEY_MOD_RALT, KEY_LEFTBRACE, KEY_NONE, KEY_U, // ü + 0xC3, 0xBD, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, KEY_NONE, KEY_Y, // ý + 0xC3, 0xBF, 0x00, 0x00, KEY_MOD_RALT, KEY_LEFTBRACE, KEY_NONE, KEY_Y, // ÿ +}; static hid_locale_t locale_pt { (uint8_t*)ascii_pt, 128, - (uint8_t*)extended_ascii_pt, sizeof(extended_ascii_pt) / 3, - (uint8_t*)utf8_pt, sizeof(utf8_pt) / 6 -}; + (uint8_t*)utf8_pt, sizeof(utf8_pt) / 6, + (uint8_t*)combinations_pt, sizeof(combinations_pt) / 8, +}; \ No newline at end of file diff --git a/atmega_duck/locale_ru.h b/atmega_duck/locale_ru.h index 2b808ec..cc342b5 100644 --- a/atmega_duck/locale_ru.h +++ b/atmega_duck/locale_ru.h @@ -1,6 +1,6 @@ /* - This software is licensed under the MIT License. See the license file for details. - Source: https://github.com/spacehuhntech/WiFiDuck + This software is licensed under the MIT License. See the license file for details. + Source: https://github.com/spacehuhntech/WiFiDuck */ #pragma once @@ -9,333 +9,263 @@ // Modifier(s), Key const uint8_t ascii_ru[] PROGMEM = { - KEY_NONE, KEY_NONE, // NUL - KEY_NONE, KEY_NONE, // SOH - KEY_NONE, KEY_NONE, // STX - KEY_NONE, KEY_NONE, // ETX - KEY_NONE, KEY_NONE, // EOT - KEY_NONE, KEY_NONE, // ENQ - KEY_NONE, KEY_NONE, // ACK - KEY_NONE, KEY_NONE, // BEL + KEY_NONE, KEY_NONE, // NUL + KEY_NONE, KEY_NONE, // SOH + KEY_NONE, KEY_NONE, // STX + KEY_NONE, KEY_NONE, // ETX + KEY_NONE, KEY_NONE, // EOT + KEY_NONE, KEY_NONE, // ENQ + KEY_NONE, KEY_NONE, // ACK + KEY_NONE, KEY_NONE, // BEL // 8, 0x08 - KEY_NONE, KEY_BACKSPACE, // BS Backspace - KEY_NONE, KEY_TAB, // TAB Tab - KEY_NONE, KEY_ENTER, // LF Enter - - KEY_NONE, KEY_NONE, // VT - KEY_NONE, KEY_NONE, // FF - KEY_NONE, KEY_NONE, // CR - KEY_NONE, KEY_NONE, // SO - KEY_NONE, KEY_NONE, // SI - KEY_NONE, KEY_NONE, // DEL - KEY_NONE, KEY_NONE, // DC1 - KEY_NONE, KEY_NONE, // DC2 - KEY_NONE, KEY_NONE, // DC3 - KEY_NONE, KEY_NONE, // DC4 - KEY_NONE, KEY_NONE, // NAK - KEY_NONE, KEY_NONE, // SYN - KEY_NONE, KEY_NONE, // ETB - KEY_NONE, KEY_NONE, // CAN - KEY_NONE, KEY_NONE, // EM - KEY_NONE, KEY_NONE, // SUB - KEY_NONE, KEY_NONE, // ESC - KEY_NONE, KEY_NONE, // FS - KEY_NONE, KEY_NONE, // GS - KEY_NONE, KEY_NONE, // RS - KEY_NONE, KEY_NONE, // US - - // 32, 0x20 - KEY_NONE, KEY_SPACE, // ' ' - KEY_MOD_LSHIFT, KEY_1, // ! - KEY_MOD_LSHIFT, KEY_2, // " - KEY_NONE, KEY_NONE, // # + KEY_NONE, KEY_BACKSPACE, // BS Backspace + KEY_NONE, KEY_TAB, // TAB Tab + KEY_NONE, KEY_ENTER, // LF Enter + + KEY_NONE, KEY_NONE, // VT + KEY_NONE, KEY_NONE, // FF + KEY_NONE, KEY_NONE, // CR + KEY_NONE, KEY_NONE, // SO + KEY_NONE, KEY_NONE, // SI + KEY_NONE, KEY_NONE, // DEL + KEY_NONE, KEY_NONE, // DC1 + KEY_NONE, KEY_NONE, // DC2 + KEY_NONE, KEY_NONE, // DC3 + KEY_NONE, KEY_NONE, // DC4 + KEY_NONE, KEY_NONE, // NAK + KEY_NONE, KEY_NONE, // SYN + KEY_NONE, KEY_NONE, // ETB + KEY_NONE, KEY_NONE, // CAN + KEY_NONE, KEY_NONE, // EM + KEY_NONE, KEY_NONE, // SUB + KEY_NONE, KEY_NONE, // ESC + KEY_NONE, KEY_NONE, // FS + KEY_NONE, KEY_NONE, // GS + KEY_NONE, KEY_NONE, // RS + KEY_NONE, KEY_NONE, // US + // 32, 0x20 + KEY_NONE, KEY_SPACE, // ' ' + KEY_MOD_LSHIFT, KEY_1, // ! + KEY_MOD_LSHIFT, KEY_2, // " + KEY_NONE, KEY_NONE, // # + // 36, 0x24 - KEY_NONE, KEY_NONE, // $ - KEY_MOD_LSHIFT, KEY_5, // % - KEY_NONE, KEY_NONE, // & - KEY_NONE, KEY_NONE, // ' + KEY_NONE, KEY_NONE, // $ + KEY_MOD_LSHIFT, KEY_5, // % + KEY_NONE, KEY_NONE, // & + KEY_NONE, KEY_NONE, // ' // 40, 0x28 - KEY_MOD_LSHIFT, KEY_9, // ( - KEY_MOD_LSHIFT, KEY_0, // ) - KEY_MOD_LSHIFT, KEY_8, // * - KEY_MOD_LSHIFT, KEY_EQUAL, // + + KEY_MOD_LSHIFT, KEY_9, // ( + KEY_MOD_LSHIFT, KEY_0, // ) + KEY_MOD_LSHIFT, KEY_8, // * + KEY_MOD_LSHIFT, KEY_EQUAL, // + // 44, 0x2c - KEY_MOD_LSHIFT, KEY_SLASH, // , - KEY_NONE, KEY_MINUS, // - - KEY_NONE, KEY_SLASH, // . - KEY_MOD_LSHIFT, KEY_BACKSLASH, // / + KEY_MOD_LSHIFT, KEY_SLASH, // , + KEY_NONE, KEY_MINUS, // - + KEY_NONE, KEY_SLASH, // . + KEY_MOD_LSHIFT, KEY_BACKSLASH, // / // 48, 0x30 - KEY_NONE, KEY_0, // 0 - KEY_NONE, KEY_1, // 1 - KEY_NONE, KEY_2, // 2 - KEY_NONE, KEY_3, // 3 + KEY_NONE, KEY_0, // 0 + KEY_NONE, KEY_1, // 1 + KEY_NONE, KEY_2, // 2 + KEY_NONE, KEY_3, // 3 // 52, 0x34 - KEY_NONE, KEY_4, // 4 - KEY_NONE, KEY_5, // 5 - KEY_NONE, KEY_6, // 6 - KEY_NONE, KEY_7, // 7 + KEY_NONE, KEY_4, // 4 + KEY_NONE, KEY_5, // 5 + KEY_NONE, KEY_6, // 6 + KEY_NONE, KEY_7, // 7 // 56, 0x38 - KEY_NONE, KEY_8, // 8 - KEY_NONE, KEY_9, // 9 - KEY_MOD_LSHIFT, KEY_6, // : - KEY_MOD_LSHIFT, KEY_4, // ; + KEY_NONE, KEY_8, // 8 + KEY_NONE, KEY_9, // 9 + KEY_MOD_LSHIFT, KEY_6, // : + KEY_MOD_LSHIFT, KEY_4, // ; // 60, 0x3c - KEY_NONE, KEY_NONE, // < - KEY_MOD_LSHIFT, KEY_0, // = - KEY_MOD_LSHIFT, KEY_NONE, // > - KEY_MOD_LSHIFT, KEY_7, // ? + KEY_NONE, KEY_NONE, // < + KEY_NONE, KEY_EQUAL, // = + KEY_NONE, KEY_NONE, // > + KEY_MOD_LSHIFT, KEY_7, // ? // 64, 0x40 - KEY_NONE, KEY_NONE, // @ - KEY_MOD_LSHIFT, KEY_A, // A - KEY_MOD_LSHIFT, KEY_B, // B - KEY_MOD_LSHIFT, KEY_C, // C + KEY_NONE, KEY_NONE, // @ + KEY_NONE, KEY_NONE, // A + KEY_NONE, KEY_NONE, // B + KEY_NONE, KEY_NONE, // C // 68, 0x44 - KEY_MOD_LSHIFT, KEY_D, // D - KEY_MOD_LSHIFT, KEY_E, // E - KEY_MOD_LSHIFT, KEY_F, // F - KEY_MOD_LSHIFT, KEY_G, // G + KEY_NONE, KEY_NONE, // D + KEY_NONE, KEY_NONE, // E + KEY_NONE, KEY_NONE, // F + KEY_NONE, KEY_NONE, // G // 72, 0x48 - KEY_MOD_LSHIFT, KEY_H, // H - KEY_MOD_LSHIFT, KEY_I, // I - KEY_MOD_LSHIFT, KEY_J, // J - KEY_MOD_LSHIFT, KEY_K, // K + KEY_NONE, KEY_NONE, // H + KEY_NONE, KEY_NONE, // I + KEY_NONE, KEY_NONE, // J + KEY_NONE, KEY_NONE, // K // 76, 0x4c - KEY_MOD_LSHIFT, KEY_L, // L - KEY_MOD_LSHIFT, KEY_M, // M - KEY_MOD_LSHIFT, KEY_N, // N - KEY_MOD_LSHIFT, KEY_O, // O + KEY_NONE, KEY_NONE, // L + KEY_NONE, KEY_NONE, // M + KEY_NONE, KEY_NONE, // N + KEY_NONE, KEY_NONE, // O // 80, 0x50 - KEY_MOD_LSHIFT, KEY_P, // P - KEY_MOD_LSHIFT, KEY_Q, // Q - KEY_MOD_LSHIFT, KEY_R, // R - KEY_MOD_LSHIFT, KEY_S, // S + KEY_NONE, KEY_NONE, // P + KEY_NONE, KEY_NONE, // Q + KEY_NONE, KEY_NONE, // R + KEY_NONE, KEY_NONE, // S // 84, 0x54 - KEY_MOD_LSHIFT, KEY_T, // T - KEY_MOD_LSHIFT, KEY_U, // U - KEY_MOD_LSHIFT, KEY_V, // V - KEY_MOD_LSHIFT, KEY_W, // W + KEY_NONE, KEY_NONE, // T + KEY_NONE, KEY_NONE, // U + KEY_NONE, KEY_NONE, // V + KEY_NONE, KEY_NONE, // W // 88, 0x58 - KEY_MOD_LSHIFT, KEY_X, // X - KEY_MOD_LSHIFT, KEY_Y, // Y - KEY_MOD_LSHIFT, KEY_Z, // Z - KEY_NONE, KEY_NONE, // [ + KEY_NONE, KEY_NONE, // X + KEY_NONE, KEY_NONE, // Y + KEY_NONE, KEY_NONE, // Z + KEY_NONE, KEY_NONE, // [ // 92, 0x5c - KEY_NONE, KEY_BACKSLASH, // bslash - KEY_NONE, KEY_NONE, // ] - KEY_NONE, KEY_NONE, // ^ - KEY_MOD_LSHIFT, KEY_MINUS, // _ + KEY_NONE, KEY_BACKSLASH, // bslash + KEY_NONE, KEY_NONE, // ] + KEY_NONE, KEY_NONE, // ^ + KEY_MOD_LSHIFT, KEY_MINUS, // _ // 96, 0x60 - KEY_NONE, KEY_NONE, // ` - KEY_NONE, KEY_A, // a - KEY_NONE, KEY_B, // b - KEY_NONE, KEY_C, // c + KEY_NONE, KEY_NONE, // ` + KEY_NONE, KEY_NONE, // a + KEY_NONE, KEY_NONE, // b + KEY_NONE, KEY_NONE, // c // 100, 0x64 - KEY_NONE, KEY_D, // d - KEY_NONE, KEY_E, // e - KEY_NONE, KEY_F, // f - KEY_NONE, KEY_G, // g + KEY_NONE, KEY_NONE, // d + KEY_NONE, KEY_NONE, // e + KEY_NONE, KEY_NONE, // f + KEY_NONE, KEY_NONE, // g // 104, 0x68 - KEY_NONE, KEY_H, // h - KEY_NONE, KEY_I, // i - KEY_NONE, KEY_J, // j - KEY_NONE, KEY_K, // k + KEY_NONE, KEY_NONE, // h + KEY_NONE, KEY_NONE, // i + KEY_NONE, KEY_NONE, // j + KEY_NONE, KEY_NONE, // k // 108, 0x6c - KEY_NONE, KEY_L, // l - KEY_NONE, KEY_M, // m - KEY_NONE, KEY_N, // n - KEY_NONE, KEY_O, // o + KEY_NONE, KEY_NONE, // l + KEY_NONE, KEY_NONE, // m + KEY_NONE, KEY_NONE, // n + KEY_NONE, KEY_NONE, // o // 112, 0x70 - KEY_NONE, KEY_P, // p - KEY_NONE, KEY_Q, // q - KEY_NONE, KEY_R, // r - KEY_NONE, KEY_S, // s + KEY_NONE, KEY_NONE, // p + KEY_NONE, KEY_NONE, // q + KEY_NONE, KEY_NONE, // r + KEY_NONE, KEY_NONE, // s // 116, 0x74 - KEY_NONE, KEY_T, // t - KEY_NONE, KEY_U, // u - KEY_NONE, KEY_V, // v - KEY_NONE, KEY_W, // w + KEY_NONE, KEY_NONE, // t + KEY_NONE, KEY_NONE, // u + KEY_NONE, KEY_NONE, // v + KEY_NONE, KEY_NONE, // w // 120, 0x78 - KEY_NONE, KEY_X, // x - KEY_NONE, KEY_Y, // y - KEY_NONE, KEY_Z, // z - KEY_NONE, KEY_NONE, // { + KEY_NONE, KEY_NONE, // x + KEY_NONE, KEY_NONE, // y + KEY_NONE, KEY_NONE, // z + KEY_NONE, KEY_NONE, // { // 124, 0x7c - KEY_NONE, KEY_NONE, // | - KEY_NONE, KEY_NONE, // } - KEY_NONE, KEY_NONE, // ~ - KEY_NONE, KEY_BACKSPACE, // DEL -}; - -const uint8_t extended_ascii_ru[] PROGMEM = { - 0xF1, KEY_NONE, KEY_GRAVE, // ё - 0xA1, KEY_MOD_LSHIFT, KEY_GRAVE, // Ё - - 0xD9, KEY_NONE, KEY_Q, // й - 0xB9, KEY_MOD_LSHIFT, KEY_Q, // Й - 0xE6, KEY_NONE, KEY_W, // ц - 0xC6, KEY_MOD_LSHIFT, KEY_W, // Ц - 0xE3, KEY_NONE, KEY_E, // у - 0xC3, KEY_MOD_LSHIFT, KEY_E, // У - 0xDA, KEY_NONE, KEY_R, // к - 0xBA, KEY_MOD_LSHIFT, KEY_R, // К - 0xD5, KEY_NONE, KEY_T, // е - 0xB5, KEY_MOD_LSHIFT, KEY_T, // Е - 0xDD, KEY_NONE, KEY_Y, // н - 0xBD, KEY_MOD_LSHIFT, KEY_Y, // Н - 0xD3, KEY_NONE, KEY_U, // г - 0xB3, KEY_MOD_LSHIFT, KEY_U, // Г - 0xE8, KEY_NONE, KEY_I, // ш - 0xC8, KEY_MOD_LSHIFT, KEY_I, // Ш - 0xE9, KEY_NONE, KEY_O, // щ - 0xC9, KEY_MOD_LSHIFT, KEY_O, // Щ - 0xD7, KEY_NONE, KEY_P, // з - 0xB7, KEY_MOD_LSHIFT, KEY_P, // З - 0xE5, KEY_NONE, KEY_LEFTBRACE, // х - 0xC5, KEY_MOD_LSHIFT, KEY_LEFTBRACE, // Х - 0xEA, KEY_NONE, KEY_RIGHTBRACE, // ъ - 0xCA, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // Ъ - - 0xE4, KEY_NONE, KEY_A, // Ф - 0xC4, KEY_MOD_LSHIFT, KEY_A, // Ф - 0xEB, KEY_NONE, KEY_S, // ы - 0xCB, KEY_MOD_LSHIFT, KEY_S, // Ы - 0xD3, KEY_NONE, KEY_D, // в - 0xB3, KEY_MOD_LSHIFT, KEY_D, // В - 0xD0, KEY_NONE, KEY_F, // а - 0xB0, KEY_MOD_LSHIFT, KEY_F, // А - 0xDF, KEY_NONE, KEY_G, // п - 0xBF, KEY_MOD_LSHIFT, KEY_G, // П - 0xE0, KEY_NONE, KEY_H, // р - 0xC0, KEY_MOD_LSHIFT, KEY_H, // Р - 0xDE, KEY_NONE, KEY_J, // о - 0xBE, KEY_MOD_LSHIFT, KEY_J, // О - 0xDB, KEY_NONE, KEY_K, // л - 0xBB, KEY_MOD_LSHIFT, KEY_K, // Л - 0xD4, KEY_NONE, KEY_L, // д - 0xB4, KEY_MOD_LSHIFT, KEY_L, // Д - 0xD6, KEY_NONE, KEY_SEMICOLON, // ж - 0xB6, KEY_MOD_LSHIFT, KEY_SEMICOLON, // Ж - 0xED, KEY_NONE, KEY_APOSTROPHE, // э - 0xCD, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // Э - - 0xCF, KEY_NONE, KEY_Z, // я - 0xEF, KEY_MOD_LSHIFT, KEY_Z, // Я - 0xE7, KEY_NONE, KEY_X, // ч - 0xC7, KEY_MOD_LSHIFT, KEY_X, // Ч - 0xE1, KEY_NONE, KEY_C, // с - 0xC1, KEY_MOD_LSHIFT, KEY_C, // С - 0xDC, KEY_NONE, KEY_V, // м - 0xBC, KEY_MOD_LSHIFT, KEY_V, // М - 0xD8, KEY_NONE, KEY_B, // и - 0xB8, KEY_MOD_LSHIFT, KEY_B, // И - 0xE2, KEY_NONE, KEY_N, // т - 0xC2, KEY_MOD_LSHIFT, KEY_N, // Т - 0xEC, KEY_NONE, KEY_M, // ь - 0xCC, KEY_MOD_LSHIFT, KEY_M, // Ь - 0xD1, KEY_NONE, KEY_COMMA, // б - 0xB1, KEY_MOD_LSHIFT, KEY_COMMA, // Б - 0xEE, KEY_NONE, KEY_DOT, // ю - 0xCE, KEY_MOD_LSHIFT, KEY_DOT, // Ю + KEY_NONE, KEY_NONE, // | + KEY_NONE, KEY_NONE, // } + KEY_NONE, KEY_NONE, // ~ + KEY_NONE, KEY_DELETE // DEL }; const uint8_t utf8_ru[] PROGMEM = { - 0xd1, 0x91, 0x00, 0x00, KEY_NONE, KEY_GRAVE, // ё - 0xd0, 0x81, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, // Ё - - 0xd0, 0xb9, 0x00, 0x00, KEY_NONE, KEY_Q, // й - 0xd0, 0x99, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_Q, // Й - 0xd1, 0x86, 0x00, 0x00, KEY_NONE, KEY_W, // ц - 0xd0, 0xa6, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_W, // Ц - 0xd1, 0x83, 0x00, 0x00, KEY_NONE, KEY_E, // у - 0xd0, 0xa3, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_E, // У - 0xd0, 0xba, 0x00, 0x00, KEY_NONE, KEY_R, // к - 0xd0, 0x9a, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_R, // К - 0xd0, 0xb5, 0x00, 0x00, KEY_NONE, KEY_T, // е - 0xd0, 0x95, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_T, // Е - 0xd0, 0xbd, 0x00, 0x00, KEY_NONE, KEY_Y, // н - 0xd0, 0x9d, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_Y, // Н - 0xd0, 0xb3, 0x00, 0x00, KEY_NONE, KEY_U, // г - 0xd0, 0x93, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_U, // Г - 0xd1, 0x88, 0x00, 0x00, KEY_NONE, KEY_I, // ш - 0xd0, 0xa8, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_I, // Ш - 0xd1, 0x89, 0x00, 0x00, KEY_NONE, KEY_O, // щ - 0xd0, 0xa9, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_O, // Щ - 0xd0, 0xb7, 0x00, 0x00, KEY_NONE, KEY_P, // з - 0xd0, 0x97, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_P, // З - 0xd1, 0x85, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, // х - 0xd0, 0xa5, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, // Х - 0xd1, 0x8a, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, // ъ - 0xd0, 0xaa, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // Ъ - - 0xd1, 0x84, 0x00, 0x00, KEY_NONE, KEY_A, // Ф - 0xd0, 0xa4, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_A, // Ф - 0xd1, 0x8b, 0x00, 0x00, KEY_NONE, KEY_S, // ы - 0xd0, 0xab, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_S, // Ы - 0xd0, 0xb2, 0x00, 0x00, KEY_NONE, KEY_D, // в - 0xd0, 0x92, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_D, // В - 0xd0, 0xb0, 0x00, 0x00, KEY_NONE, KEY_F, // а - 0xd0, 0x90, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_F, // А - 0xd0, 0xbf, 0x00, 0x00, KEY_NONE, KEY_G, // п - 0xd0, 0x9f, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_G, // П - 0xd1, 0x80, 0x00, 0x00, KEY_NONE, KEY_H, // р - 0xd0, 0xa0, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_H, // Р - 0xd0, 0xbe, 0x00, 0x00, KEY_NONE, KEY_J, // о - 0xd0, 0x9e, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_J, // О - 0xd0, 0xbb, 0x00, 0x00, KEY_NONE, KEY_K, // л - 0xd0, 0x9b, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_K, // Л - 0xd0, 0xb4, 0x00, 0x00, KEY_NONE, KEY_L, // д - 0xd0, 0x94, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_L, // Д - 0xd0, 0xb6, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON, // ж - 0xd0, 0x96, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_SEMICOLON, // Ж - 0xd1, 0x8d, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, // э - 0xd0, 0xad, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // Э + 0xD0, 0x81, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, // Ё + 0xD0, 0x90, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_F, // А + 0xD0, 0x91, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_COMMA, // Б + 0xD0, 0x92, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_D, // В + 0xD0, 0x93, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_U, // Г + 0xD0, 0x94, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_L, // Д + 0xD0, 0x95, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_T, // Е + 0xD0, 0x96, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_SEMICOLON, // Ж + 0xD0, 0x97, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_P, // З + 0xD0, 0x98, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_B, // И + 0xD0, 0x99, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_Q, // Й + 0xD0, 0x9A, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_R, // К + 0xD0, 0x9B, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_K, // Л + 0xD0, 0x9C, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_V, // М + 0xD0, 0x9D, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_Y, // Н + 0xD0, 0x9E, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_J, // О + 0xD0, 0x9F, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_G, // П + 0xD0, 0xA0, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_H, // Р + 0xD0, 0xA1, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_C, // С + 0xD0, 0xA2, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_N, // Т + 0xD0, 0xA3, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_E, // У + 0xD0, 0xA4, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_A, // Ф + 0xD0, 0xA5, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, // Х + 0xD0, 0xA6, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_W, // Ц + 0xD0, 0xA7, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_X, // Ч + 0xD0, 0xA8, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_I, // Ш + 0xD0, 0xA9, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_O, // Щ + 0xD0, 0xAA, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // Ъ + 0xD0, 0xAB, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_S, // Ы + 0xD0, 0xAC, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_M, // Ь + 0xD0, 0xAD, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // Э + 0xD0, 0xAE, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_DOT, // Ю + 0xD0, 0xAF, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_Z, // Я + 0xD0, 0xB0, 0x00, 0x00, KEY_NONE, KEY_F, // а + 0xD0, 0xB1, 0x00, 0x00, KEY_NONE, KEY_COMMA, // б + 0xD0, 0xB2, 0x00, 0x00, KEY_NONE, KEY_D, // в + 0xD0, 0xB3, 0x00, 0x00, KEY_NONE, KEY_U, // г + 0xD0, 0xB4, 0x00, 0x00, KEY_NONE, KEY_L, // д + 0xD0, 0xB5, 0x00, 0x00, KEY_NONE, KEY_T, // е + 0xD0, 0xB6, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON, // ж + 0xD0, 0xB7, 0x00, 0x00, KEY_NONE, KEY_P, // з + 0xD0, 0xB8, 0x00, 0x00, KEY_NONE, KEY_B, // и + 0xD0, 0xB9, 0x00, 0x00, KEY_NONE, KEY_Q, // й + 0xD0, 0xBA, 0x00, 0x00, KEY_NONE, KEY_R, // к + 0xD0, 0xBB, 0x00, 0x00, KEY_NONE, KEY_K, // л + 0xD0, 0xBC, 0x00, 0x00, KEY_NONE, KEY_V, // м + 0xD0, 0xBD, 0x00, 0x00, KEY_NONE, KEY_Y, // н + 0xD0, 0xBE, 0x00, 0x00, KEY_NONE, KEY_J, // о + 0xD0, 0xBF, 0x00, 0x00, KEY_NONE, KEY_G, // п + 0xD1, 0x80, 0x00, 0x00, KEY_NONE, KEY_H, // р + 0xD1, 0x81, 0x00, 0x00, KEY_NONE, KEY_C, // с + 0xD1, 0x82, 0x00, 0x00, KEY_NONE, KEY_N, // т + 0xD1, 0x83, 0x00, 0x00, KEY_NONE, KEY_E, // у + 0xD1, 0x84, 0x00, 0x00, KEY_NONE, KEY_A, // ф + 0xD1, 0x85, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, // х + 0xD1, 0x86, 0x00, 0x00, KEY_NONE, KEY_W, // ц + 0xD1, 0x87, 0x00, 0x00, KEY_NONE, KEY_X, // ч + 0xD1, 0x88, 0x00, 0x00, KEY_NONE, KEY_I, // ш + 0xD1, 0x89, 0x00, 0x00, KEY_NONE, KEY_O, // щ + 0xD1, 0x8A, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, // ъ + 0xD1, 0x8B, 0x00, 0x00, KEY_NONE, KEY_S, // ы + 0xD1, 0x8C, 0x00, 0x00, KEY_NONE, KEY_M, // ь + 0xD1, 0x8D, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, // э + 0xD1, 0x8E, 0x00, 0x00, KEY_NONE, KEY_DOT, // ю + 0xD1, 0x8F, 0x00, 0x00, KEY_NONE, KEY_Z, // я + 0xD1, 0x91, 0x00, 0x00, KEY_NONE, KEY_GRAVE, // ё + 0xE2, 0x82, 0xBD, 0x00, KEY_MOD_RALT, KEY_8, // ₽ + 0xE2, 0x84, 0x96, 0x00, KEY_MOD_LSHIFT, KEY_3, // № +}; - 0xd1, 0x8f, 0x00, 0x00, KEY_NONE, KEY_Z, // я - 0xd0, 0xaf, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_Z, // Я - 0xd1, 0x87, 0x00, 0x00, KEY_NONE, KEY_X, // ч - 0xd0, 0xa7, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_X, // Ч - 0xd1, 0x81, 0x00, 0x00, KEY_NONE, KEY_C, // с - 0xd0, 0xa1, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_C, // С - 0xd0, 0xbc, 0x00, 0x00, KEY_NONE, KEY_V, // м - 0xd0, 0x9c, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_V, // М - 0xd0, 0xb8, 0x00, 0x00, KEY_NONE, KEY_B, // и - 0xd0, 0x98, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_B, // И - 0xd1, 0x82, 0x00, 0x00, KEY_NONE, KEY_N, // т - 0xd0, 0xa2, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_N, // Т - 0xd1, 0x8c, 0x00, 0x00, KEY_NONE, KEY_M, // ь - 0xd0, 0xac, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_M, // Ь - 0xd0, 0xb1, 0x00, 0x00, KEY_NONE, KEY_COMMA, // б - 0xd0, 0x91, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_COMMA, // Б - 0xd1, 0x8e, 0x00, 0x00, KEY_NONE, KEY_DOT, // ю - 0xd0, 0xae, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_DOT // Ю +const uint8_t combinations_ru[] PROGMEM = { }; static hid_locale_t locale_ru { - (uint8_t*)ascii_ru, sizeof(ascii_ru) / 2, - (uint8_t*)extended_ascii_ru, sizeof(extended_ascii_ru) / 3, - (uint8_t*)utf8_ru, sizeof(utf8_ru) / 6 -}; + (uint8_t*)ascii_ru, 128, + (uint8_t*)utf8_ru, sizeof(utf8_ru) / 6, + (uint8_t*)combinations_ru, sizeof(combinations_ru) / 8, +}; \ No newline at end of file diff --git a/atmega_duck/locale_si.h b/atmega_duck/locale_si.h index 500aeb7..a32fd77 100644 --- a/atmega_duck/locale_si.h +++ b/atmega_duck/locale_si.h @@ -1,6 +1,6 @@ /* - This software is licensed under the MIT License. See the license file for details. - Source: https://github.com/spacehuhntech/WiFiDuck + This software is licensed under the MIT License. See the license file for details. + Source: https://github.com/spacehuhntech/WiFiDuck */ #pragma once @@ -9,222 +9,253 @@ // Modifier(s), Key const uint8_t ascii_si[] PROGMEM = { - KEY_NONE, KEY_NONE, // NUL - KEY_NONE, KEY_NONE, // SOH - KEY_NONE, KEY_NONE, // STX - KEY_NONE, KEY_NONE, // ETX - KEY_NONE, KEY_NONE, // EOT - KEY_NONE, KEY_NONE, // ENQ - KEY_NONE, KEY_NONE, // ACK - KEY_NONE, KEY_NONE, // BEL + KEY_NONE, KEY_NONE, // NUL + KEY_NONE, KEY_NONE, // SOH + KEY_NONE, KEY_NONE, // STX + KEY_NONE, KEY_NONE, // ETX + KEY_NONE, KEY_NONE, // EOT + KEY_NONE, KEY_NONE, // ENQ + KEY_NONE, KEY_NONE, // ACK + KEY_NONE, KEY_NONE, // BEL // 8, 0x08 - KEY_NONE, KEY_BACKSPACE, // BS Backspace - KEY_NONE, KEY_TAB, // TAB Tab - KEY_NONE, KEY_ENTER, // LF Enter - - KEY_NONE, KEY_NONE, // VT - KEY_NONE, KEY_NONE, // FF - KEY_NONE, KEY_NONE, // CR - KEY_NONE, KEY_NONE, // SO - KEY_NONE, KEY_NONE, // SI - KEY_NONE, KEY_NONE, // DEL - KEY_NONE, KEY_NONE, // DC1 - KEY_NONE, KEY_NONE, // DC2 - KEY_NONE, KEY_NONE, // DC3 - KEY_NONE, KEY_NONE, // DC4 - KEY_NONE, KEY_NONE, // NAK - KEY_NONE, KEY_NONE, // SYN - KEY_NONE, KEY_NONE, // ETB - KEY_NONE, KEY_NONE, // CAN - KEY_NONE, KEY_NONE, // EM - KEY_NONE, KEY_NONE, // SUB - KEY_NONE, KEY_NONE, // ESC - KEY_NONE, KEY_NONE, // FS - KEY_NONE, KEY_NONE, // GS - KEY_NONE, KEY_NONE, // RS - KEY_NONE, KEY_NONE, // US - + KEY_NONE, KEY_BACKSPACE, // BS Backspace + KEY_NONE, KEY_TAB, // TAB Tab + KEY_NONE, KEY_ENTER, // LF Enter + + KEY_NONE, KEY_NONE, // VT + KEY_NONE, KEY_NONE, // FF + KEY_NONE, KEY_NONE, // CR + KEY_NONE, KEY_NONE, // SO + KEY_NONE, KEY_NONE, // SI + KEY_NONE, KEY_NONE, // DEL + KEY_NONE, KEY_NONE, // DC1 + KEY_NONE, KEY_NONE, // DC2 + KEY_NONE, KEY_NONE, // DC3 + KEY_NONE, KEY_NONE, // DC4 + KEY_NONE, KEY_NONE, // NAK + KEY_NONE, KEY_NONE, // SYN + KEY_NONE, KEY_NONE, // ETB + KEY_NONE, KEY_NONE, // CAN + KEY_NONE, KEY_NONE, // EM + KEY_NONE, KEY_NONE, // SUB + KEY_NONE, KEY_NONE, // ESC + KEY_NONE, KEY_NONE, // FS + KEY_NONE, KEY_NONE, // GS + KEY_NONE, KEY_NONE, // RS + KEY_NONE, KEY_NONE, // US + // 32, 0x20 - KEY_NONE, KEY_SPACE, // ' ' - KEY_MOD_LSHIFT, KEY_1, // ! - KEY_MOD_LSHIFT, KEY_2, // " - KEY_MOD_LSHIFT, KEY_3, // # + KEY_NONE, KEY_SPACE, // ' ' + KEY_MOD_LSHIFT, KEY_1, // ! + KEY_MOD_LSHIFT, KEY_2, // " + KEY_MOD_LSHIFT, KEY_3, // # // 36, 0x24 - KEY_MOD_LSHIFT, KEY_4, // $ - KEY_MOD_LSHIFT, KEY_5, // % - KEY_MOD_LSHIFT, KEY_6, // & - KEY_NONE, KEY_MINUS, // ' + KEY_MOD_LSHIFT, KEY_4, // $ + KEY_MOD_LSHIFT, KEY_5, // % + KEY_MOD_LSHIFT, KEY_6, // & + KEY_NONE, KEY_MINUS, // ' // 40, 0x28 - KEY_MOD_LSHIFT, KEY_8, // ( - KEY_MOD_LSHIFT, KEY_9, // ) - KEY_MOD_LSHIFT, KEY_EQUAL, // * - KEY_NONE, KEY_EQUAL, // + + KEY_MOD_LSHIFT, KEY_8, // ( + KEY_MOD_LSHIFT, KEY_9, // ) + KEY_MOD_LSHIFT, KEY_EQUAL, // * + KEY_NONE, KEY_EQUAL, // + // 44, 0x2c - KEY_NONE, KEY_COMMA, // , - KEY_NONE, KEY_SLASH, // - - KEY_NONE, KEY_DOT, // . - KEY_MOD_LSHIFT, KEY_7, // / + KEY_NONE, KEY_COMMA, // , + KEY_NONE, KEY_SLASH, // - + KEY_NONE, KEY_DOT, // . + KEY_MOD_LSHIFT, KEY_7, // / // 48, 0x30 - KEY_NONE, KEY_0, // 0 - KEY_NONE, KEY_1, // 1 - KEY_NONE, KEY_2, // 2 - KEY_NONE, KEY_3, // 3 + KEY_NONE, KEY_0, // 0 + KEY_NONE, KEY_1, // 1 + KEY_NONE, KEY_2, // 2 + KEY_NONE, KEY_3, // 3 // 52, 0x34 - KEY_NONE, KEY_4, // 4 - KEY_NONE, KEY_5, // 5 - KEY_NONE, KEY_6, // 6 - KEY_NONE, KEY_7, // 7 + KEY_NONE, KEY_4, // 4 + KEY_NONE, KEY_5, // 5 + KEY_NONE, KEY_6, // 6 + KEY_NONE, KEY_7, // 7 // 56, 0x38 - KEY_NONE, KEY_8, // 8 - KEY_NONE, KEY_9, // 9 - KEY_MOD_LSHIFT, KEY_DOT, // : - KEY_MOD_LSHIFT, KEY_COMMA, // ; + KEY_NONE, KEY_8, // 8 + KEY_NONE, KEY_9, // 9 + KEY_MOD_LSHIFT, KEY_DOT, // : + KEY_MOD_LSHIFT, KEY_COMMA, // ; // 60, 0x3c - KEY_NONE, KEY_102ND, // < - KEY_MOD_LSHIFT, KEY_0, // = - KEY_MOD_LSHIFT, KEY_102ND, // > - KEY_MOD_LSHIFT, KEY_MINUS, // ? + KEY_NONE, KEY_102ND, // < + KEY_MOD_LSHIFT, KEY_0, // = + KEY_MOD_LSHIFT, KEY_102ND, // > + KEY_MOD_LSHIFT, KEY_MINUS, // ? // 64, 0x40 - KEY_MOD_RALT, KEY_V, // @ - KEY_MOD_LSHIFT, KEY_A, // A - KEY_MOD_LSHIFT, KEY_B, // B - KEY_MOD_LSHIFT, KEY_C, // C + KEY_MOD_RALT, KEY_V, // @ + KEY_MOD_LSHIFT, KEY_A, // A + KEY_MOD_LSHIFT, KEY_B, // B + KEY_MOD_LSHIFT, KEY_C, // C // 68, 0x44 - KEY_MOD_LSHIFT, KEY_D, // D - KEY_MOD_LSHIFT, KEY_E, // E - KEY_MOD_LSHIFT, KEY_F, // F - KEY_MOD_LSHIFT, KEY_G, // G + KEY_MOD_LSHIFT, KEY_D, // D + KEY_MOD_LSHIFT, KEY_E, // E + KEY_MOD_LSHIFT, KEY_F, // F + KEY_MOD_LSHIFT, KEY_G, // G // 72, 0x48 - KEY_MOD_LSHIFT, KEY_H, // H - KEY_MOD_LSHIFT, KEY_I, // I - KEY_MOD_LSHIFT, KEY_J, // J - KEY_MOD_LSHIFT, KEY_K, // K + KEY_MOD_LSHIFT, KEY_H, // H + KEY_MOD_LSHIFT, KEY_I, // I + KEY_MOD_LSHIFT, KEY_J, // J + KEY_MOD_LSHIFT, KEY_K, // K // 76, 0x4c - KEY_MOD_LSHIFT, KEY_L, // L - KEY_MOD_LSHIFT, KEY_M, // M - KEY_MOD_LSHIFT, KEY_N, // N - KEY_MOD_LSHIFT, KEY_O, // O + KEY_MOD_LSHIFT, KEY_L, // L + KEY_MOD_LSHIFT, KEY_M, // M + KEY_MOD_LSHIFT, KEY_N, // N + KEY_MOD_LSHIFT, KEY_O, // O // 80, 0x50 - KEY_MOD_LSHIFT, KEY_P, // P - KEY_MOD_LSHIFT, KEY_Q, // Q - KEY_MOD_LSHIFT, KEY_R, // R - KEY_MOD_LSHIFT, KEY_S, // S + KEY_MOD_LSHIFT, KEY_P, // P + KEY_MOD_LSHIFT, KEY_Q, // Q + KEY_MOD_LSHIFT, KEY_R, // R + KEY_MOD_LSHIFT, KEY_S, // S // 84, 0x54 - KEY_MOD_LSHIFT, KEY_T, // T - KEY_MOD_LSHIFT, KEY_U, // U - KEY_MOD_LSHIFT, KEY_V, // V - KEY_MOD_LSHIFT, KEY_W, // W + KEY_MOD_LSHIFT, KEY_T, // T + KEY_MOD_LSHIFT, KEY_U, // U + KEY_MOD_LSHIFT, KEY_V, // V + KEY_MOD_LSHIFT, KEY_W, // W // 88, 0x58 - KEY_MOD_LSHIFT, KEY_X, // X - KEY_MOD_LSHIFT, KEY_Z, // Y - KEY_MOD_LSHIFT, KEY_Y, // Z - KEY_MOD_RALT, KEY_F, // [ + KEY_MOD_LSHIFT, KEY_X, // X + KEY_MOD_LSHIFT, KEY_Z, // Y + KEY_MOD_LSHIFT, KEY_Y, // Z + KEY_MOD_RALT, KEY_F, // [ // 92, 0x5c - KEY_MOD_RALT, KEY_Q, // bslash - KEY_MOD_RALT, KEY_G, // ] - KEY_MOD_RALT, KEY_3, // ^ - KEY_MOD_LSHIFT, KEY_SLASH, // _ + KEY_MOD_RALT, KEY_Q, // bslash + KEY_MOD_RALT, KEY_G, // ] + KEY_MOD_RALT, KEY_3, // ^ + KEY_MOD_LSHIFT, KEY_SLASH, // _ // 96, 0x60 - KEY_MOD_RALT, KEY_7, // ` - KEY_NONE, KEY_A, // a - KEY_NONE, KEY_B, // b - KEY_NONE, KEY_C, // c + KEY_MOD_RALT, KEY_7, // ` + KEY_NONE, KEY_A, // a + KEY_NONE, KEY_B, // b + KEY_NONE, KEY_C, // c // 100, 0x64 - KEY_NONE, KEY_D, // d - KEY_NONE, KEY_E, // e - KEY_NONE, KEY_F, // f - KEY_NONE, KEY_G, // g + KEY_NONE, KEY_D, // d + KEY_NONE, KEY_E, // e + KEY_NONE, KEY_F, // f + KEY_NONE, KEY_G, // g // 104, 0x68 - KEY_NONE, KEY_H, // h - KEY_NONE, KEY_I, // i - KEY_NONE, KEY_J, // j - KEY_NONE, KEY_K, // k + KEY_NONE, KEY_H, // h + KEY_NONE, KEY_I, // i + KEY_NONE, KEY_J, // j + KEY_NONE, KEY_K, // k // 108, 0x6c - KEY_NONE, KEY_L, // l - KEY_NONE, KEY_M, // m - KEY_NONE, KEY_N, // n - KEY_NONE, KEY_O, // o + KEY_NONE, KEY_L, // l + KEY_NONE, KEY_M, // m + KEY_NONE, KEY_N, // n + KEY_NONE, KEY_O, // o // 112, 0x70 - KEY_NONE, KEY_P, // p - KEY_NONE, KEY_Q, // q - KEY_NONE, KEY_R, // r - KEY_NONE, KEY_S, // s + KEY_NONE, KEY_P, // p + KEY_NONE, KEY_Q, // q + KEY_NONE, KEY_R, // r + KEY_NONE, KEY_S, // s // 116, 0x74 - KEY_NONE, KEY_T, // t - KEY_NONE, KEY_U, // u - KEY_NONE, KEY_V, // v - KEY_NONE, KEY_W, // w + KEY_NONE, KEY_T, // t + KEY_NONE, KEY_U, // u + KEY_NONE, KEY_V, // v + KEY_NONE, KEY_W, // w // 120, 0x78 - KEY_NONE, KEY_X, // x - KEY_NONE, KEY_Z, // y - KEY_NONE, KEY_Y, // z - KEY_MOD_RALT, KEY_B, // { + KEY_NONE, KEY_X, // x + KEY_NONE, KEY_Z, // y + KEY_NONE, KEY_Y, // z + KEY_MOD_RALT, KEY_B, // { // 124, 0x7c - KEY_MOD_RALT, KEY_W, // | - KEY_MOD_RALT, KEY_N, // } - KEY_MOD_RALT, KEY_1, // ~ - KEY_NONE, KEY_DELETE // DEL + KEY_MOD_RALT, KEY_W, // | + KEY_MOD_RALT, KEY_N, // } + KEY_MOD_RALT, KEY_1, // ~ + KEY_NONE, KEY_DELETE // DEL }; -const uint8_t extended_ascii_si[] PROGMEM = { - 0xA4, KEY_MOD_RALT, KEY_BACKSLASH, // ¤ - 0xA7, KEY_MOD_RALT, KEY_M, // § - 0xA8, KEY_MOD_RALT, KEY_MINUS, // ¨ - 0xB0, KEY_MOD_RALT, KEY_5, // ° - 0xB4, KEY_MOD_RALT, KEY_9, // ´ - 0xB8, KEY_MOD_RALT, KEY_EQUAL, // ¸ +const uint8_t utf8_si[] PROGMEM = { + 0xC2, 0xA4, 0x00, 0x00, KEY_MOD_RALT, KEY_BACKSLASH, // ¤ + 0xC2, 0xB0, 0x00, 0x00, KEY_MOD_RALT, KEY_5, // ° + 0xC2, 0xB4, 0x00, 0x00, KEY_MOD_RALT, KEY_9, // ´ + 0xC2, 0xB8, 0x00, 0x00, KEY_MOD_RALT, KEY_EQUAL, // ¸ + 0xC3, 0x97, 0x00, 0x00, KEY_MOD_RALT, KEY_RIGHTBRACE, // × + 0xC3, 0x9F, 0x00, 0x00, KEY_MOD_RALT, KEY_APOSTROPHE, // ß + 0xC3, 0xB7, 0x00, 0x00, KEY_MOD_RALT, KEY_LEFTBRACE, // ÷ + 0xC4, 0x86, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // Ć + 0xC4, 0x87, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, // ć + 0xC4, 0x8C, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_SEMICOLON, // Č + 0xC4, 0x8D, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON, // č + 0xC4, 0x90, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // Đ + 0xC4, 0x91, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, // đ + 0xC5, 0x81, 0x00, 0x00, KEY_MOD_RALT, KEY_L, // Ł + 0xC5, 0x82, 0x00, 0x00, KEY_MOD_RALT, KEY_K, // ł + 0xC5, 0xA0, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, // Š + 0xC5, 0xA1, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, // š + 0xC5, 0xBD, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, // Ž + 0xC5, 0xBE, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, // ž + 0xE2, 0x82, 0xAC, 0x00, KEY_MOD_RALT, KEY_E, // € }; -const uint8_t utf8_si[] PROGMEM = { - 0xC4, 0x8D, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON, // č - 0xC5, 0xA1, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, // š - 0xC5, 0xBE, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, // ž - 0xC4, 0x87, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, // ć - 0xC4, 0x91, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, // đ - 0xC4, 0x8C, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_SEMICOLON, // Č - 0xC5, 0xA0, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_LEFTBRACE, // Š - 0xC5, 0xBD, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_BACKSLASH, // Ž - 0xC4, 0x86, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_APOSTROPHE, // Ć - 0xC4, 0x90, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // Đ - 0xE2, 0x82, 0xAC, 0x00, KEY_MOD_RALT, KEY_E, // € - 0xC5, 0x82, 0x00, 0x00, KEY_MOD_RALT, KEY_K, // ł - 0xC5, 0x81, 0x00, 0x00, KEY_MOD_RALT, KEY_L, // Ł - 0xCB, 0x87, 0x00, 0x00, KEY_MOD_RALT, KEY_2, // ˇ - 0xCB, 0x98, 0x00, 0x00, KEY_MOD_RALT, KEY_4, // ˘ - 0xCB, 0x9B, 0x00, 0x00, KEY_MOD_RALT, KEY_6, // ˛ - 0xCB, 0x99, 0x00, 0x00, KEY_MOD_RALT, KEY_8, // ˙ - 0xCB, 0x9D, 0x00, 0x00, KEY_MOD_RALT, KEY_0, // ˝ - 0xC3, 0x97, 0x00, 0x00, KEY_MOD_RALT, KEY_RIGHTBRACE, // × - 0xC3, 0xB7, 0x00, 0x00, KEY_MOD_RALT, KEY_LEFTBRACE, // ÷ - 0xC3, 0x9F, 0x00, 0x00, KEY_MOD_RALT, KEY_APOSTROPHE // ß +const uint8_t combinations_si[] PROGMEM = { + 0xC2, 0xA8, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_NONE, KEY_SPACE, // ¨ + 0xC3, 0x84, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_A, // Ä + 0xC3, 0x8B, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_E, // Ë + 0xC3, 0x96, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_O, // Ö + 0xC3, 0x9C, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_U, // Ü + 0xC3, 0xA4, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_NONE, KEY_A, // ä + 0xC3, 0xAB, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_NONE, KEY_E, // ë + 0xC3, 0xB6, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_NONE, KEY_O, // ö + 0xC3, 0xBC, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_NONE, KEY_U, // ü + 0xC4, 0x82, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_MOD_LSHIFT, KEY_A, // Ă + 0xC4, 0x83, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_NONE, KEY_A, // ă + 0xC4, 0x84, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_MOD_LSHIFT, KEY_A, // Ą + 0xC4, 0x85, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_NONE, KEY_A, // ą + 0xC4, 0x8E, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_MOD_LSHIFT, KEY_D, // Ď + 0xC4, 0x8F, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_NONE, KEY_D, // ď + 0xC4, 0x98, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_MOD_LSHIFT, KEY_E, // Ę + 0xC4, 0x99, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_NONE, KEY_E, // ę + 0xC4, 0x9A, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_MOD_LSHIFT, KEY_E, // Ě + 0xC4, 0x9B, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_NONE, KEY_E, // ě + 0xC4, 0xBD, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_MOD_LSHIFT, KEY_L, // Ľ + 0xC4, 0xBE, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_NONE, KEY_L, // ľ + 0xC5, 0x87, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_MOD_LSHIFT, KEY_N, // Ň + 0xC5, 0x88, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_NONE, KEY_N, // ň + 0xC5, 0x90, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_MOD_LSHIFT, KEY_O, // Ő + 0xC5, 0x91, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_NONE, KEY_O, // ő + 0xC5, 0x98, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_MOD_LSHIFT, KEY_R, // Ř + 0xC5, 0x99, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_NONE, KEY_R, // ř + 0xC5, 0xA4, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_MOD_LSHIFT, KEY_T, // Ť + 0xC5, 0xA5, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_NONE, KEY_T, // ť + 0xC5, 0xB0, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_MOD_LSHIFT, KEY_U, // Ű + 0xC5, 0xB1, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_NONE, KEY_U, // ű + 0xC5, 0xBB, 0x00, 0x00, KEY_MOD_RALT, KEY_8, KEY_MOD_LSHIFT, KEY_Y, // Ż + 0xC5, 0xBC, 0x00, 0x00, KEY_MOD_RALT, KEY_8, KEY_NONE, KEY_Y, // ż + 0xCB, 0x87, 0x00, 0x00, KEY_MOD_RALT, KEY_2, KEY_NONE, KEY_SPACE, // ˇ + 0xCB, 0x98, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_NONE, KEY_SPACE, // ˘ + 0xCB, 0x99, 0x00, 0x00, KEY_MOD_RALT, KEY_8, KEY_NONE, KEY_SPACE, // ˙ + 0xCB, 0x9B, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_NONE, KEY_SPACE, // ˛ + 0xCB, 0x9D, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_NONE, KEY_SPACE, // ˝ }; static hid_locale_t locale_si { - (uint8_t*)ascii_si, sizeof(ascii_si) / 2, - (uint8_t*)extended_ascii_si, sizeof(extended_ascii_si) / 3, - (uint8_t*)utf8_si, sizeof(utf8_si) / 6 -}; + (uint8_t*)ascii_si, 128, + (uint8_t*)utf8_si, sizeof(utf8_si) / 6, + (uint8_t*)combinations_si, sizeof(combinations_si) / 8, +}; \ No newline at end of file diff --git a/atmega_duck/locale_sk.h b/atmega_duck/locale_sk.h index d23e8ef..4c30dfe 100644 --- a/atmega_duck/locale_sk.h +++ b/atmega_duck/locale_sk.h @@ -1,6 +1,6 @@ /* - This software is licensed under the MIT License. See the license file for details. - Source: https://github.com/spacehuhntech/WiFiDuck + This software is licensed under the MIT License. See the license file for details. + Source: https://github.com/spacehuhntech/WiFiDuck */ #pragma once @@ -9,211 +9,275 @@ // Modifier(s), Key const uint8_t ascii_sk[] PROGMEM = { - KEY_NONE, KEY_NONE, // NUL - KEY_NONE, KEY_NONE, // SOH - KEY_NONE, KEY_NONE, // STX - KEY_NONE, KEY_NONE, // ETX - KEY_NONE, KEY_NONE, // EOT - KEY_NONE, KEY_NONE, // ENQ - KEY_NONE, KEY_NONE, // ACK - KEY_NONE, KEY_NONE, // BEL + KEY_NONE, KEY_NONE, // NUL + KEY_NONE, KEY_NONE, // SOH + KEY_NONE, KEY_NONE, // STX + KEY_NONE, KEY_NONE, // ETX + KEY_NONE, KEY_NONE, // EOT + KEY_NONE, KEY_NONE, // ENQ + KEY_NONE, KEY_NONE, // ACK + KEY_NONE, KEY_NONE, // BEL // 8, 0x08 - KEY_NONE, KEY_BACKSPACE, // BS Backspace - KEY_NONE, KEY_TAB, // TAB Tab - KEY_NONE, KEY_ENTER, // LF Enter - - KEY_NONE, KEY_NONE, // VT - KEY_NONE, KEY_NONE, // FF - KEY_NONE, KEY_NONE, // CR - KEY_NONE, KEY_NONE, // SO - KEY_NONE, KEY_NONE, // SI - KEY_NONE, KEY_NONE, // DEL - KEY_NONE, KEY_NONE, // DC1 - KEY_NONE, KEY_NONE, // DC2 - KEY_NONE, KEY_NONE, // DC3 - KEY_NONE, KEY_NONE, // DC4 - KEY_NONE, KEY_NONE, // NAK - KEY_NONE, KEY_NONE, // SYN - KEY_NONE, KEY_NONE, // ETB - KEY_NONE, KEY_NONE, // CAN - KEY_NONE, KEY_NONE, // EM - KEY_NONE, KEY_NONE, // SUB - KEY_NONE, KEY_NONE, // ESC - KEY_NONE, KEY_NONE, // FS - KEY_NONE, KEY_NONE, // GS - KEY_NONE, KEY_NONE, // RS - KEY_NONE, KEY_NONE, // US + KEY_NONE, KEY_BACKSPACE, // BS Backspace + KEY_NONE, KEY_TAB, // TAB Tab + KEY_NONE, KEY_ENTER, // LF Enter + KEY_NONE, KEY_NONE, // VT + KEY_NONE, KEY_NONE, // FF + KEY_NONE, KEY_NONE, // CR + KEY_NONE, KEY_NONE, // SO + KEY_NONE, KEY_NONE, // SI + KEY_NONE, KEY_NONE, // DEL + KEY_NONE, KEY_NONE, // DC1 + KEY_NONE, KEY_NONE, // DC2 + KEY_NONE, KEY_NONE, // DC3 + KEY_NONE, KEY_NONE, // DC4 + KEY_NONE, KEY_NONE, // NAK + KEY_NONE, KEY_NONE, // SYN + KEY_NONE, KEY_NONE, // ETB + KEY_NONE, KEY_NONE, // CAN + KEY_NONE, KEY_NONE, // EM + KEY_NONE, KEY_NONE, // SUB + KEY_NONE, KEY_NONE, // ESC + KEY_NONE, KEY_NONE, // FS + KEY_NONE, KEY_NONE, // GS + KEY_NONE, KEY_NONE, // RS + KEY_NONE, KEY_NONE, // US + // 32, 0x20 - KEY_NONE, KEY_SPACE, // ' ' - KEY_MOD_LSHIFT, KEY_APOSTROPHE, // ! - KEY_MOD_LSHIFT, KEY_SEMICOLON, // " - KEY_MOD_RALT, KEY_X, // # + KEY_NONE, KEY_SPACE, // ' ' + KEY_MOD_LSHIFT, KEY_APOSTROPHE, // ! + KEY_MOD_LSHIFT, KEY_SEMICOLON, // " + KEY_MOD_RALT, KEY_X, // # // 36, 0x24 - KEY_MOD_RALT, KEY_SEMICOLON, // $ - KEY_MOD_LSHIFT, KEY_MINUS, // % - KEY_MOD_RALT, KEY_C, // & - KEY_MOD_RALT, KEY_P, // ' + KEY_MOD_RALT, KEY_SEMICOLON, // $ + KEY_MOD_LSHIFT, KEY_MINUS, // % + KEY_NONE, KEY_102ND, // & + KEY_MOD_RALT, KEY_P, // ' // 40, 0x28 - KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // ( - KEY_MOD_LSHIFT, KEY_BACKSLASH, // ) - KEY_MOD_RALT, KEY_SLASH, // * - KEY_NONE, KEY_1, // + + KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // ( + KEY_MOD_LSHIFT, KEY_BACKSLASH, // ) + KEY_MOD_LSHIFT, KEY_102ND, // * + KEY_NONE, KEY_1, // + // 44, 0x2c - KEY_NONE, KEY_COMMA, // , - KEY_NONE, KEY_SLASH, // - - KEY_NONE, KEY_DOT, // . - KEY_MOD_LSHIFT, KEY_LEFTBRACE, // / + KEY_NONE, KEY_COMMA, // , + KEY_NONE, KEY_SLASH, // - + KEY_NONE, KEY_DOT, // . + KEY_MOD_LSHIFT, KEY_LEFTBRACE, // / // 48, 0x30 - KEY_MOD_LSHIFT, KEY_0, // 0 - KEY_MOD_LSHIFT, KEY_1, // 1 - KEY_MOD_LSHIFT, KEY_2, // 2 - KEY_MOD_LSHIFT, KEY_3, // 3 + KEY_MOD_LSHIFT, KEY_0, // 0 + KEY_MOD_LSHIFT, KEY_1, // 1 + KEY_MOD_LSHIFT, KEY_2, // 2 + KEY_MOD_LSHIFT, KEY_3, // 3 // 52, 0x34 - KEY_MOD_LSHIFT, KEY_4, // 4 - KEY_MOD_LSHIFT, KEY_5, // 5 - KEY_MOD_LSHIFT, KEY_6, // 6 - KEY_MOD_LSHIFT, KEY_7, // 7 + KEY_MOD_LSHIFT, KEY_4, // 4 + KEY_MOD_LSHIFT, KEY_5, // 5 + KEY_MOD_LSHIFT, KEY_6, // 6 + KEY_MOD_LSHIFT, KEY_7, // 7 // 56, 0x38 - KEY_MOD_LSHIFT, KEY_8, // 8 - KEY_MOD_LSHIFT, KEY_9, // 9 - KEY_MOD_LSHIFT, KEY_DOT, // : - KEY_NONE, KEY_GRAVE, // ; + KEY_MOD_LSHIFT, KEY_8, // 8 + KEY_MOD_LSHIFT, KEY_9, // 9 + KEY_MOD_LSHIFT, KEY_DOT, // : + KEY_NONE, KEY_GRAVE, // ; // 60, 0x3c - KEY_MOD_RALT, KEY_COMMA, // < - KEY_NONE, KEY_MINUS, // = - KEY_MOD_RALT, KEY_DOT, // > - KEY_MOD_LSHIFT, KEY_COMMA, // ? + KEY_MOD_RALT, KEY_COMMA, // < + KEY_NONE, KEY_MINUS, // = + KEY_MOD_RALT, KEY_Z, // > + KEY_MOD_LSHIFT, KEY_COMMA, // ? // 64, 0x40 - KEY_MOD_RALT, KEY_V, // @ - KEY_MOD_LSHIFT, KEY_A, // A - KEY_MOD_LSHIFT, KEY_B, // B - KEY_MOD_LSHIFT, KEY_C, // C + KEY_MOD_RALT, KEY_V, // @ + KEY_MOD_LSHIFT, KEY_A, // A + KEY_MOD_LSHIFT, KEY_B, // B + KEY_MOD_LSHIFT, KEY_C, // C // 68, 0x44 - KEY_MOD_LSHIFT, KEY_D, // D - KEY_MOD_LSHIFT, KEY_E, // E - KEY_MOD_LSHIFT, KEY_F, // F - KEY_MOD_LSHIFT, KEY_G, // G + KEY_MOD_LSHIFT, KEY_D, // D + KEY_MOD_LSHIFT, KEY_E, // E + KEY_MOD_LSHIFT, KEY_F, // F + KEY_MOD_LSHIFT, KEY_G, // G // 72, 0x48 - KEY_MOD_LSHIFT, KEY_H, // H - KEY_MOD_LSHIFT, KEY_I, // I - KEY_MOD_LSHIFT, KEY_J, // J - KEY_MOD_LSHIFT, KEY_K, // K + KEY_MOD_LSHIFT, KEY_H, // H + KEY_MOD_LSHIFT, KEY_I, // I + KEY_MOD_LSHIFT, KEY_J, // J + KEY_MOD_LSHIFT, KEY_K, // K // 76, 0x4c - KEY_MOD_LSHIFT, KEY_L, // L - KEY_MOD_LSHIFT, KEY_M, // M - KEY_MOD_LSHIFT, KEY_N, // N - KEY_MOD_LSHIFT, KEY_O, // O + KEY_MOD_LSHIFT, KEY_L, // L + KEY_MOD_LSHIFT, KEY_M, // M + KEY_MOD_LSHIFT, KEY_N, // N + KEY_MOD_LSHIFT, KEY_O, // O // 80, 0x50 - KEY_MOD_LSHIFT, KEY_P, // P - KEY_MOD_LSHIFT, KEY_Q, // Q - KEY_MOD_LSHIFT, KEY_R, // R - KEY_MOD_LSHIFT, KEY_S, // S + KEY_MOD_LSHIFT, KEY_P, // P + KEY_MOD_LSHIFT, KEY_Q, // Q + KEY_MOD_LSHIFT, KEY_R, // R + KEY_MOD_LSHIFT, KEY_S, // S // 84, 0x54 - KEY_MOD_LSHIFT, KEY_T, // T - KEY_MOD_LSHIFT, KEY_U, // U - KEY_MOD_LSHIFT, KEY_V, // V - KEY_MOD_LSHIFT, KEY_W, // W + KEY_MOD_LSHIFT, KEY_T, // T + KEY_MOD_LSHIFT, KEY_U, // U + KEY_MOD_LSHIFT, KEY_V, // V + KEY_MOD_LSHIFT, KEY_W, // W // 88, 0x58 - KEY_MOD_LSHIFT, KEY_X, // X - KEY_MOD_LSHIFT, KEY_Y, // Y - KEY_MOD_LSHIFT, KEY_Z, // Z - KEY_MOD_RALT, KEY_F, // [ + KEY_MOD_LSHIFT, KEY_X, // X + KEY_MOD_LSHIFT, KEY_Z, // Y + KEY_MOD_LSHIFT, KEY_Y, // Z + KEY_MOD_RALT, KEY_F, // [ // 92, 0x5c - KEY_MOD_RALT, KEY_Q, // bslash - KEY_MOD_RALT, KEY_G, // ] - KEY_MOD_RALT, KEY_3, // ^ - KEY_MOD_LSHIFT, KEY_SLASH, // _ + KEY_MOD_RALT, KEY_Q, // bslash + KEY_MOD_RALT, KEY_G, // ] + KEY_MOD_RALT, KEY_3, // ^ + KEY_MOD_LSHIFT, KEY_SLASH, // _ // 96, 0x60 - KEY_MOD_RALT, KEY_7, // ` - KEY_NONE, KEY_A, // a - KEY_NONE, KEY_B, // b - KEY_NONE, KEY_C, // c + KEY_MOD_RALT, KEY_7, // ` + KEY_NONE, KEY_A, // a + KEY_NONE, KEY_B, // b + KEY_NONE, KEY_C, // c // 100, 0x64 - KEY_NONE, KEY_D, // d - KEY_NONE, KEY_E, // e - KEY_NONE, KEY_F, // f - KEY_NONE, KEY_G, // g + KEY_NONE, KEY_D, // d + KEY_NONE, KEY_E, // e + KEY_NONE, KEY_F, // f + KEY_NONE, KEY_G, // g // 104, 0x68 - KEY_NONE, KEY_H, // h - KEY_NONE, KEY_I, // i - KEY_NONE, KEY_J, // j - KEY_NONE, KEY_K, // k + KEY_NONE, KEY_H, // h + KEY_NONE, KEY_I, // i + KEY_NONE, KEY_J, // j + KEY_NONE, KEY_K, // k // 108, 0x6c - KEY_NONE, KEY_L, // l - KEY_NONE, KEY_M, // m - KEY_NONE, KEY_N, // n - KEY_NONE, KEY_O, // o + KEY_NONE, KEY_L, // l + KEY_NONE, KEY_M, // m + KEY_NONE, KEY_N, // n + KEY_NONE, KEY_O, // o // 112, 0x70 - KEY_NONE, KEY_P, // p - KEY_NONE, KEY_Q, // q - KEY_NONE, KEY_R, // r - KEY_NONE, KEY_S, // s + KEY_NONE, KEY_P, // p + KEY_NONE, KEY_Q, // q + KEY_NONE, KEY_R, // r + KEY_NONE, KEY_S, // s // 116, 0x74 - KEY_NONE, KEY_T, // t - KEY_NONE, KEY_U, // u - KEY_NONE, KEY_V, // v - KEY_NONE, KEY_W, // w + KEY_NONE, KEY_T, // t + KEY_NONE, KEY_U, // u + KEY_NONE, KEY_V, // v + KEY_NONE, KEY_W, // w // 120, 0x78 - KEY_NONE, KEY_X, // x - KEY_NONE, KEY_Y, // y - KEY_NONE, KEY_Z, // z - KEY_MOD_RALT, KEY_B, // { + KEY_NONE, KEY_X, // x + KEY_NONE, KEY_Z, // y + KEY_NONE, KEY_Y, // z + KEY_MOD_RALT, KEY_B, // { // 124, 0x7c - KEY_MOD_RALT, KEY_W, // | - KEY_MOD_RALT, KEY_N, // } - KEY_MOD_RALT, KEY_1, // ~ - KEY_NONE, KEY_NONE // DEL + KEY_MOD_RALT, KEY_W, // | + KEY_MOD_RALT, KEY_N, // } + KEY_MOD_RALT, KEY_1, // ~ + KEY_NONE, KEY_DELETE // DEL }; const uint8_t utf8_sk[] PROGMEM = { - 0xc2 ,0xb4, 0x00, 0x00, KEY_NONE, KEY_EQUAL, // ´ - 0xcb ,0x87, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, // ˇ - 0xc3, 0xa1, 0x00, 0x00, KEY_NONE, KEY_8, // á - 0xc3, 0xa9, 0x00, 0x00, KEY_NONE, KEY_0, // é - 0xc3, 0xad, 0x00, 0x00, KEY_NONE, KEY_9, // í - 0xc4, 0xba, 0x00, 0x00, KEY_NONE, KEY_L, // ĺ press "´" before - 0xc3, 0xb3, 0x00, 0x00, KEY_NONE, KEY_O, // ó press "´" before - 0xc5, 0x95, 0x00, 0x00, KEY_NONE, KEY_R, // ŕ press "´" before - 0xc3, 0xba, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, // ú - 0xc3, 0xbd, 0x00, 0x00, KEY_NONE, KEY_7, // ý - 0xc4, 0x8d, 0x00, 0x00, KEY_NONE, KEY_4, // č - 0xc4, 0x8f, 0x00, 0x00, KEY_NONE, KEY_D, // ď press "ˇ" before - 0xc4, 0xbe, 0x00, 0x00, KEY_NONE, KEY_2, // ľ - 0xc5, 0x88, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, // ň - 0xc5, 0xa1, 0x00, 0x00, KEY_NONE, KEY_3, // š - 0xc5, 0xa5, 0x00, 0x00, KEY_NONE, KEY_5, // ť - 0xc5, 0xbe, 0x00, 0x00, KEY_NONE, KEY_6, // ž - 0xc3, 0xa4, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE,// ä - 0xc3, 0xb4, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON // ô + 0xC2, 0xA4, 0x00, 0x00, KEY_MOD_RALT, KEY_BACKSLASH, // ¤ + 0xC2, 0xA7, 0x00, 0x00, KEY_NONE, KEY_APOSTROPHE, // § + 0xC2, 0xB0, 0x00, 0x00, KEY_MOD_RALT, KEY_5, // ° + 0xC2, 0xB4, 0x00, 0x00, KEY_MOD_RALT, KEY_9, // ´ + 0xC2, 0xB8, 0x00, 0x00, KEY_MOD_RALT, KEY_EQUAL, // ¸ + 0xC3, 0x97, 0x00, 0x00, KEY_MOD_RALT, KEY_RIGHTBRACE, // × + 0xC3, 0x9F, 0x00, 0x00, KEY_MOD_RALT, KEY_APOSTROPHE, // ß + 0xC3, 0xA1, 0x00, 0x00, KEY_NONE, KEY_8, // á + 0xC3, 0xA4, 0x00, 0x00, KEY_NONE, KEY_RIGHTBRACE, // ä + 0xC3, 0xA9, 0x00, 0x00, KEY_NONE, KEY_0, // é + 0xC3, 0xAD, 0x00, 0x00, KEY_NONE, KEY_9, // í + 0xC3, 0xB4, 0x00, 0x00, KEY_NONE, KEY_SEMICOLON, // ô + 0xC3, 0xB7, 0x00, 0x00, KEY_MOD_RALT, KEY_LEFTBRACE, // ÷ + 0xC3, 0xBA, 0x00, 0x00, KEY_NONE, KEY_LEFTBRACE, // ú + 0xC3, 0xBD, 0x00, 0x00, KEY_NONE, KEY_7, // ý + 0xC4, 0x8D, 0x00, 0x00, KEY_NONE, KEY_4, // č + 0xC4, 0x90, 0x00, 0x00, KEY_MOD_RALT, KEY_D, // Đ + 0xC4, 0x91, 0x00, 0x00, KEY_MOD_RALT, KEY_S, // đ + 0xC4, 0xBE, 0x00, 0x00, KEY_NONE, KEY_2, // ľ + 0xC5, 0x81, 0x00, 0x00, KEY_MOD_RALT, KEY_L, // Ł + 0xC5, 0x82, 0x00, 0x00, KEY_MOD_RALT, KEY_K, // ł + 0xC5, 0x88, 0x00, 0x00, KEY_NONE, KEY_BACKSLASH, // ň + 0xC5, 0xA1, 0x00, 0x00, KEY_NONE, KEY_3, // š + 0xC5, 0xA5, 0x00, 0x00, KEY_NONE, KEY_5, // ť + 0xC5, 0xBE, 0x00, 0x00, KEY_NONE, KEY_6, // ž + 0xE2, 0x82, 0xAC, 0x00, KEY_MOD_RALT, KEY_E, // € +}; + +const uint8_t combinations_sk[] PROGMEM = { + 0xC2, 0xA8, 0x00, 0x00, KEY_MOD_RALT, KEY_MINUS, KEY_NONE, KEY_SPACE, // ¨ + 0xC2, 0xB7, 0x00, 0x00, KEY_MOD_RALT, KEY_8, KEY_NONE, KEY_SPACE, // · + 0xC3, 0x81, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_A, // Á + 0xC3, 0x84, 0x00, 0x00, KEY_MOD_RALT, KEY_MINUS, KEY_MOD_LSHIFT, KEY_A, // Ä + 0xC3, 0x89, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_E, // É + 0xC3, 0x93, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_O, // Ó + 0xC3, 0x96, 0x00, 0x00, KEY_MOD_RALT, KEY_MINUS, KEY_MOD_LSHIFT, KEY_O, // Ö + 0xC3, 0x9A, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_U, // Ú + 0xC3, 0x9C, 0x00, 0x00, KEY_MOD_RALT, KEY_MINUS, KEY_MOD_LSHIFT, KEY_U, // Ü + 0xC3, 0xB3, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_O, // ó + 0xC3, 0xB6, 0x00, 0x00, KEY_MOD_RALT, KEY_MINUS, KEY_NONE, KEY_O, // ö + 0xC3, 0xBC, 0x00, 0x00, KEY_MOD_RALT, KEY_MINUS, KEY_NONE, KEY_U, // ü + 0xC4, 0x82, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_MOD_LSHIFT, KEY_A, // Ă + 0xC4, 0x83, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_NONE, KEY_A, // ă + 0xC4, 0x84, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_MOD_LSHIFT, KEY_A, // Ą + 0xC4, 0x85, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_NONE, KEY_A, // ą + 0xC4, 0x86, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_C, // Ć + 0xC4, 0x87, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_C, // ć + 0xC4, 0x8C, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_C, // Č + 0xC4, 0x8E, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_D, // Ď + 0xC4, 0x8F, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_D, // ď + 0xC4, 0x98, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_MOD_LSHIFT, KEY_E, // Ę + 0xC4, 0x99, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_NONE, KEY_E, // ę + 0xC4, 0x9A, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_E, // Ě + 0xC4, 0x9B, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_E, // ě + 0xC4, 0xB9, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_L, // Ĺ + 0xC4, 0xBA, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_L, // ĺ + 0xC4, 0xBD, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_L, // Ľ + 0xC5, 0x83, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_N, // Ń + 0xC5, 0x84, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_N, // ń + 0xC5, 0x87, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_N, // Ň + 0xC5, 0x90, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_MOD_LSHIFT, KEY_O, // Ő + 0xC5, 0x91, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_NONE, KEY_O, // ő + 0xC5, 0x94, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_R, // Ŕ + 0xC5, 0x95, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_R, // ŕ + 0xC5, 0x98, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_R, // Ř + 0xC5, 0x99, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_R, // ř + 0xC5, 0x9A, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_S, // Ś + 0xC5, 0x9B, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_S, // ś + 0xC5, 0xA0, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_S, // Š + 0xC5, 0xA4, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_T, // Ť + 0xC5, 0xAE, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_MOD_LSHIFT, KEY_U, // Ů + 0xC5, 0xAF, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_GRAVE, KEY_NONE, KEY_U, // ů + 0xC5, 0xB0, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_MOD_LSHIFT, KEY_U, // Ű + 0xC5, 0xB1, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_NONE, KEY_U, // ű + 0xC5, 0xB9, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_Y, // Ź + 0xC5, 0xBA, 0x00, 0x00, KEY_NONE, KEY_EQUAL, KEY_NONE, KEY_Y, // ź + 0xC5, 0xBB, 0x00, 0x00, KEY_MOD_RALT, KEY_8, KEY_MOD_LSHIFT, KEY_Y, // Ż + 0xC5, 0xBC, 0x00, 0x00, KEY_MOD_RALT, KEY_8, KEY_NONE, KEY_Y, // ż + 0xC5, 0xBD, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_MOD_LSHIFT, KEY_Y, // Ž + 0xCB, 0x87, 0x00, 0x00, KEY_MOD_LSHIFT, KEY_EQUAL, KEY_NONE, KEY_SPACE, // ˇ + 0xCB, 0x98, 0x00, 0x00, KEY_MOD_RALT, KEY_4, KEY_NONE, KEY_SPACE, // ˘ + 0xCB, 0x9B, 0x00, 0x00, KEY_MOD_RALT, KEY_6, KEY_NONE, KEY_SPACE, // ˛ + 0xCB, 0x9D, 0x00, 0x00, KEY_MOD_RALT, KEY_0, KEY_NONE, KEY_SPACE, // ˝ }; static hid_locale_t locale_sk { (uint8_t*)ascii_sk, 128, - NULL, 0, - (uint8_t*)utf8_sk, sizeof(utf8_sk) / 6 -}; + (uint8_t*)utf8_sk, sizeof(utf8_sk) / 6, + (uint8_t*)combinations_sk, sizeof(combinations_sk) / 8, +}; \ No newline at end of file diff --git a/atmega_duck/locale_types.h b/atmega_duck/locale_types.h index 53f004c..09db30c 100644 --- a/atmega_duck/locale_types.h +++ b/atmega_duck/locale_types.h @@ -9,9 +9,9 @@ typedef struct hid_locale_t { uint8_t* ascii; uint8_t ascii_len; - uint8_t* extended_ascii; - size_t extended_ascii_len; - uint8_t* utf8; size_t utf8_len; + + uint8_t* combinations; + size_t combinations_len; } hid_locale_t; \ No newline at end of file diff --git a/atmega_duck/locale_us.h b/atmega_duck/locale_us.h index 40880b3..f034a73 100644 --- a/atmega_duck/locale_us.h +++ b/atmega_duck/locale_us.h @@ -1,6 +1,6 @@ /* - This software is licensed under the MIT License. See the license file for details. - Source: https://github.com/spacehuhntech/WiFiDuck + This software is licensed under the MIT License. See the license file for details. + Source: https://github.com/spacehuhntech/WiFiDuck */ #pragma once @@ -9,189 +9,195 @@ // Modifier(s), Key const uint8_t ascii_us[] PROGMEM = { - KEY_NONE, KEY_NONE, // NUL - KEY_NONE, KEY_NONE, // SOH - KEY_NONE, KEY_NONE, // STX - KEY_NONE, KEY_NONE, // ETX - KEY_NONE, KEY_NONE, // EOT - KEY_NONE, KEY_NONE, // ENQ - KEY_NONE, KEY_NONE, // ACK - KEY_NONE, KEY_NONE, // BEL + KEY_NONE, KEY_NONE, // NUL + KEY_NONE, KEY_NONE, // SOH + KEY_NONE, KEY_NONE, // STX + KEY_NONE, KEY_NONE, // ETX + KEY_NONE, KEY_NONE, // EOT + KEY_NONE, KEY_NONE, // ENQ + KEY_NONE, KEY_NONE, // ACK + KEY_NONE, KEY_NONE, // BEL // 8, 0x08 - KEY_NONE, KEY_BACKSPACE, // BS Backspace - KEY_NONE, KEY_TAB, // TAB Tab - KEY_NONE, KEY_ENTER, // LF Enter - - KEY_NONE, KEY_NONE, // VT - KEY_NONE, KEY_NONE, // FF - KEY_NONE, KEY_NONE, // CR - KEY_NONE, KEY_NONE, // SO - KEY_NONE, KEY_NONE, // SI - KEY_NONE, KEY_NONE, // DEL - KEY_NONE, KEY_NONE, // DC1 - KEY_NONE, KEY_NONE, // DC2 - KEY_NONE, KEY_NONE, // DC3 - KEY_NONE, KEY_NONE, // DC4 - KEY_NONE, KEY_NONE, // NAK - KEY_NONE, KEY_NONE, // SYN - KEY_NONE, KEY_NONE, // ETB - KEY_NONE, KEY_NONE, // CAN - KEY_NONE, KEY_NONE, // EM - KEY_NONE, KEY_NONE, // SUB - KEY_NONE, KEY_NONE, // ESC - KEY_NONE, KEY_NONE, // FS - KEY_NONE, KEY_NONE, // GS - KEY_NONE, KEY_NONE, // RS - KEY_NONE, KEY_NONE, // US - + KEY_NONE, KEY_BACKSPACE, // BS Backspace + KEY_NONE, KEY_TAB, // TAB Tab + KEY_NONE, KEY_ENTER, // LF Enter + + KEY_NONE, KEY_NONE, // VT + KEY_NONE, KEY_NONE, // FF + KEY_NONE, KEY_NONE, // CR + KEY_NONE, KEY_NONE, // SO + KEY_NONE, KEY_NONE, // SI + KEY_NONE, KEY_NONE, // DEL + KEY_NONE, KEY_NONE, // DC1 + KEY_NONE, KEY_NONE, // DC2 + KEY_NONE, KEY_NONE, // DC3 + KEY_NONE, KEY_NONE, // DC4 + KEY_NONE, KEY_NONE, // NAK + KEY_NONE, KEY_NONE, // SYN + KEY_NONE, KEY_NONE, // ETB + KEY_NONE, KEY_NONE, // CAN + KEY_NONE, KEY_NONE, // EM + KEY_NONE, KEY_NONE, // SUB + KEY_NONE, KEY_NONE, // ESC + KEY_NONE, KEY_NONE, // FS + KEY_NONE, KEY_NONE, // GS + KEY_NONE, KEY_NONE, // RS + KEY_NONE, KEY_NONE, // US + // 32, 0x20 - KEY_NONE, KEY_SPACE, // ' ' - KEY_MOD_LSHIFT, KEY_1, // ! - KEY_MOD_LSHIFT, KEY_APOSTROPHE, // " - KEY_MOD_LSHIFT, KEY_3, // # + KEY_NONE, KEY_SPACE, // ' ' + KEY_MOD_LSHIFT, KEY_1, // ! + KEY_MOD_LSHIFT, KEY_APOSTROPHE, // " + KEY_MOD_LSHIFT, KEY_3, // # // 36, 0x24 - KEY_MOD_LSHIFT, KEY_4, // $ - KEY_MOD_LSHIFT, KEY_5, // % - KEY_MOD_LSHIFT, KEY_7, // & - KEY_NONE, KEY_APOSTROPHE, // ' + KEY_MOD_LSHIFT, KEY_4, // $ + KEY_MOD_LSHIFT, KEY_5, // % + KEY_MOD_LSHIFT, KEY_7, // & + KEY_NONE, KEY_APOSTROPHE, // ' // 40, 0x28 - KEY_MOD_LSHIFT, KEY_9, // ( - KEY_MOD_LSHIFT, KEY_0, // ) - KEY_MOD_LSHIFT, KEY_8, // * - KEY_MOD_LSHIFT, KEY_EQUAL, // + + KEY_MOD_LSHIFT, KEY_9, // ( + KEY_MOD_LSHIFT, KEY_0, // ) + KEY_MOD_LSHIFT, KEY_8, // * + KEY_MOD_LSHIFT, KEY_EQUAL, // + // 44, 0x2c - KEY_NONE, KEY_COMMA, // , - KEY_NONE, KEY_MINUS, // - - KEY_NONE, KEY_DOT, // . - KEY_NONE, KEY_SLASH, // / + KEY_NONE, KEY_COMMA, // , + KEY_NONE, KEY_MINUS, // - + KEY_NONE, KEY_DOT, // . + KEY_NONE, KEY_SLASH, // / // 48, 0x30 - KEY_NONE, KEY_0, // 0 - KEY_NONE, KEY_1, // 1 - KEY_NONE, KEY_2, // 2 - KEY_NONE, KEY_3, // 3 + KEY_NONE, KEY_0, // 0 + KEY_NONE, KEY_1, // 1 + KEY_NONE, KEY_2, // 2 + KEY_NONE, KEY_3, // 3 // 52, 0x34 - KEY_NONE, KEY_4, // 4 - KEY_NONE, KEY_5, // 5 - KEY_NONE, KEY_6, // 6 - KEY_NONE, KEY_7, // 7 + KEY_NONE, KEY_4, // 4 + KEY_NONE, KEY_5, // 5 + KEY_NONE, KEY_6, // 6 + KEY_NONE, KEY_7, // 7 // 56, 0x38 - KEY_NONE, KEY_8, // 8 - KEY_NONE, KEY_9, // 9 - KEY_MOD_LSHIFT, KEY_SEMICOLON, // : - KEY_NONE, KEY_SEMICOLON, // ; + KEY_NONE, KEY_8, // 8 + KEY_NONE, KEY_9, // 9 + KEY_MOD_LSHIFT, KEY_SEMICOLON, // : + KEY_NONE, KEY_SEMICOLON, // ; // 60, 0x3c - KEY_MOD_LSHIFT, KEY_COMMA, // < - KEY_NONE, KEY_EQUAL, // = - KEY_MOD_LSHIFT, KEY_DOT, // > - KEY_MOD_LSHIFT, KEY_SLASH, // ? + KEY_MOD_LSHIFT, KEY_COMMA, // < + KEY_NONE, KEY_EQUAL, // = + KEY_MOD_LSHIFT, KEY_DOT, // > + KEY_MOD_LSHIFT, KEY_SLASH, // ? // 64, 0x40 - KEY_MOD_LSHIFT, KEY_2, // @ - KEY_MOD_LSHIFT, KEY_A, // A - KEY_MOD_LSHIFT, KEY_B, // B - KEY_MOD_LSHIFT, KEY_C, // C + KEY_MOD_LSHIFT, KEY_2, // @ + KEY_MOD_LSHIFT, KEY_A, // A + KEY_MOD_LSHIFT, KEY_B, // B + KEY_MOD_LSHIFT, KEY_C, // C // 68, 0x44 - KEY_MOD_LSHIFT, KEY_D, // D - KEY_MOD_LSHIFT, KEY_E, // E - KEY_MOD_LSHIFT, KEY_F, // F - KEY_MOD_LSHIFT, KEY_G, // G + KEY_MOD_LSHIFT, KEY_D, // D + KEY_MOD_LSHIFT, KEY_E, // E + KEY_MOD_LSHIFT, KEY_F, // F + KEY_MOD_LSHIFT, KEY_G, // G // 72, 0x48 - KEY_MOD_LSHIFT, KEY_H, // H - KEY_MOD_LSHIFT, KEY_I, // I - KEY_MOD_LSHIFT, KEY_J, // J - KEY_MOD_LSHIFT, KEY_K, // K + KEY_MOD_LSHIFT, KEY_H, // H + KEY_MOD_LSHIFT, KEY_I, // I + KEY_MOD_LSHIFT, KEY_J, // J + KEY_MOD_LSHIFT, KEY_K, // K // 76, 0x4c - KEY_MOD_LSHIFT, KEY_L, // L - KEY_MOD_LSHIFT, KEY_M, // M - KEY_MOD_LSHIFT, KEY_N, // N - KEY_MOD_LSHIFT, KEY_O, // O + KEY_MOD_LSHIFT, KEY_L, // L + KEY_MOD_LSHIFT, KEY_M, // M + KEY_MOD_LSHIFT, KEY_N, // N + KEY_MOD_LSHIFT, KEY_O, // O // 80, 0x50 - KEY_MOD_LSHIFT, KEY_P, // P - KEY_MOD_LSHIFT, KEY_Q, // Q - KEY_MOD_LSHIFT, KEY_R, // R - KEY_MOD_LSHIFT, KEY_S, // S + KEY_MOD_LSHIFT, KEY_P, // P + KEY_MOD_LSHIFT, KEY_Q, // Q + KEY_MOD_LSHIFT, KEY_R, // R + KEY_MOD_LSHIFT, KEY_S, // S // 84, 0x54 - KEY_MOD_LSHIFT, KEY_T, // T - KEY_MOD_LSHIFT, KEY_U, // U - KEY_MOD_LSHIFT, KEY_V, // V - KEY_MOD_LSHIFT, KEY_W, // W + KEY_MOD_LSHIFT, KEY_T, // T + KEY_MOD_LSHIFT, KEY_U, // U + KEY_MOD_LSHIFT, KEY_V, // V + KEY_MOD_LSHIFT, KEY_W, // W // 88, 0x58 - KEY_MOD_LSHIFT, KEY_X, // X - KEY_MOD_LSHIFT, KEY_Y, // Y - KEY_MOD_LSHIFT, KEY_Z, // Z - KEY_NONE, KEY_LEFTBRACE, // [ + KEY_MOD_LSHIFT, KEY_X, // X + KEY_MOD_LSHIFT, KEY_Y, // Y + KEY_MOD_LSHIFT, KEY_Z, // Z + KEY_NONE, KEY_LEFTBRACE, // [ // 92, 0x5c - KEY_NONE, KEY_BACKSLASH, // bslash - KEY_NONE, KEY_RIGHTBRACE, // ] - KEY_MOD_LSHIFT, KEY_6, // ^ - KEY_MOD_LSHIFT, KEY_MINUS, // _ + KEY_NONE, KEY_BACKSLASH, // bslash + KEY_NONE, KEY_RIGHTBRACE, // ] + KEY_MOD_LSHIFT, KEY_6, // ^ + KEY_MOD_LSHIFT, KEY_MINUS, // _ // 96, 0x60 - KEY_NONE, KEY_GRAVE, // ` - KEY_NONE, KEY_A, // a - KEY_NONE, KEY_B, // b - KEY_NONE, KEY_C, // c + KEY_NONE, KEY_GRAVE, // ` + KEY_NONE, KEY_A, // a + KEY_NONE, KEY_B, // b + KEY_NONE, KEY_C, // c // 100, 0x64 - KEY_NONE, KEY_D, // d - KEY_NONE, KEY_E, // e - KEY_NONE, KEY_F, // f - KEY_NONE, KEY_G, // g + KEY_NONE, KEY_D, // d + KEY_NONE, KEY_E, // e + KEY_NONE, KEY_F, // f + KEY_NONE, KEY_G, // g // 104, 0x68 - KEY_NONE, KEY_H, // h - KEY_NONE, KEY_I, // i - KEY_NONE, KEY_J, // j - KEY_NONE, KEY_K, // k + KEY_NONE, KEY_H, // h + KEY_NONE, KEY_I, // i + KEY_NONE, KEY_J, // j + KEY_NONE, KEY_K, // k // 108, 0x6c - KEY_NONE, KEY_L, // l - KEY_NONE, KEY_M, // m - KEY_NONE, KEY_N, // n - KEY_NONE, KEY_O, // o + KEY_NONE, KEY_L, // l + KEY_NONE, KEY_M, // m + KEY_NONE, KEY_N, // n + KEY_NONE, KEY_O, // o // 112, 0x70 - KEY_NONE, KEY_P, // p - KEY_NONE, KEY_Q, // q - KEY_NONE, KEY_R, // r - KEY_NONE, KEY_S, // s + KEY_NONE, KEY_P, // p + KEY_NONE, KEY_Q, // q + KEY_NONE, KEY_R, // r + KEY_NONE, KEY_S, // s // 116, 0x74 - KEY_NONE, KEY_T, // t - KEY_NONE, KEY_U, // u - KEY_NONE, KEY_V, // v - KEY_NONE, KEY_W, // w + KEY_NONE, KEY_T, // t + KEY_NONE, KEY_U, // u + KEY_NONE, KEY_V, // v + KEY_NONE, KEY_W, // w // 120, 0x78 - KEY_NONE, KEY_X, // x - KEY_NONE, KEY_Y, // y - KEY_NONE, KEY_Z, // z - KEY_MOD_LSHIFT, KEY_LEFTBRACE, // { + KEY_NONE, KEY_X, // x + KEY_NONE, KEY_Y, // y + KEY_NONE, KEY_Z, // z + KEY_MOD_LSHIFT, KEY_LEFTBRACE, // { // 124, 0x7c - KEY_MOD_LSHIFT, KEY_BACKSLASH, // | - KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // } - KEY_MOD_LSHIFT, KEY_GRAVE, // ~ - KEY_NONE, KEY_NONE // DEL + KEY_MOD_LSHIFT, KEY_BACKSLASH, // | + KEY_MOD_LSHIFT, KEY_RIGHTBRACE, // } + KEY_MOD_LSHIFT, KEY_GRAVE, // ~ + KEY_NONE, KEY_DELETE // DEL +}; + +const uint8_t utf8_us[] PROGMEM = { +}; + +const uint8_t combinations_us[] PROGMEM = { }; static hid_locale_t locale_us { (uint8_t*)ascii_us, 128, - NULL, 0, - NULL, 0 + (uint8_t*)utf8_us, sizeof(utf8_us) / 6, + (uint8_t*)combinations_us, sizeof(combinations_us) / 8, }; \ No newline at end of file diff --git a/atmega_duck/locales.h b/atmega_duck/locales.h index 2eb2842..8649fb1 100644 --- a/atmega_duck/locales.h +++ b/atmega_duck/locales.h @@ -10,6 +10,7 @@ #include "locale_us.h" #include "locale_de.h" + #include "locale_gb.h" #include "locale_es.h" #include "locale_fr.h"