From 802915ee3142f0ca4b2566bd93120e09277b35f2 Mon Sep 17 00:00:00 2001 From: Sam Hadow Date: Mon, 31 Aug 2026 18:28:53 +0200 Subject: [PATCH] use encoder.py --- README.md | 4 +- encoder.jar | Bin 57535 -> 0 bytes encoder.py | 859 ++++++++++++++++++++++++++++++++++ resources/be.properties | 227 +++++++++ resources/br.properties | 139 ++++++ resources/ca.properties | 245 ++++++++++ resources/ch.properties | 295 ++++++++++++ resources/cm.properties | 245 ++++++++++ resources/cs.properties | 103 ++++ resources/de.properties | 293 ++++++++++++ resources/dk.properties | 341 ++++++++++++++ resources/es.properties | 219 +++++++++ resources/fi.properties | 113 +++++ resources/fr.properties | 225 +++++++++ resources/gb.properties | 233 +++++++++ resources/hr.properties | 137 ++++++ resources/it.properties | 212 +++++++++ resources/keyboard.properties | 150 ++++++ resources/no.properties | 339 ++++++++++++++ resources/pt.properties | 200 ++++++++ resources/ru.properties | 118 +++++ resources/si.properties | 139 ++++++ resources/sv.properties | 334 +++++++++++++ resources/tr.properties | 198 ++++++++ resources/us.properties | 197 ++++++++ 25 files changed, 5563 insertions(+), 2 deletions(-) delete mode 100644 encoder.jar create mode 100644 encoder.py create mode 100644 resources/be.properties create mode 100644 resources/br.properties create mode 100644 resources/ca.properties create mode 100644 resources/ch.properties create mode 100644 resources/cm.properties create mode 100644 resources/cs.properties create mode 100644 resources/de.properties create mode 100644 resources/dk.properties create mode 100644 resources/es.properties create mode 100644 resources/fi.properties create mode 100644 resources/fr.properties create mode 100644 resources/gb.properties create mode 100644 resources/hr.properties create mode 100644 resources/it.properties create mode 100644 resources/keyboard.properties create mode 100644 resources/no.properties create mode 100644 resources/pt.properties create mode 100644 resources/ru.properties create mode 100644 resources/si.properties create mode 100644 resources/sv.properties create mode 100644 resources/tr.properties create mode 100644 resources/us.properties diff --git a/README.md b/README.md index a5f60d2..66cb743 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,11 @@ # Digispark Attiny85 payloads -Original encoder and duck2spark converter from [paulopera](https://github.com/paulopera/duck2spark) (converted from Python2 to Python3). +Original encoder and duck2spark converter from [MaMe82](https://github.com/mame82) (converted from Python2 to Python3). ## Usage: (Replace `-l fr` with the target keyboard layout.) ```bash -java -jar encoder.jar -i payload.duck -o payload.bin -l fr +cat payload.duck | python encoder.py -p -l fr > payload.bin python3 duck2spark.py -i payload.bin -l 1 -f 1000 -o payload.ino rm payload.bin ``` diff --git a/encoder.jar b/encoder.jar deleted file mode 100644 index 54fb7b9a167042c42cf9d6c553390669096c3eff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57535 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 len(data): + break + + key = data[i] + mod = data[i + 1] + + # Delay. + if key == 0: + time.sleep(mod / 1000.0) + continue + + out = bytes( + [mod, 0, key, 0, 0, 0, 0, 0] + + [0] * 8 + ) + + f.write(out) + f.flush() + + def outhidString(self, string): + payload = b"" + + for c in string: + payload += DuckEncoder.ASCIIChar2USBBytes( + c, + self.keyboard, + self.language, + ) + + self.out2hid(payload) + + def outhidStringDirect(self, string): + with open(self.__key_dev_file, "wb") as f: + for c in string: + data = DuckEncoder.ASCIIChar2USBBytes( + c, + self.keyboard, + self.language, + ) + + for i in range(0, len(data), 2): + if i + 1 >= len(data): + break + + key = data[i] + mod = data[i + 1] + + if key == 0: + time.sleep(mod / 1000.0) + continue + + out = bytes( + [mod, 0, key, 0, 0, 0, 0, 0] + + [0] * 8 + ) + + f.write(out) + + f.flush() + + def outhidDuckyScript(self, source): + payload = DuckEncoder.parseScript( + source, + self.keyboard, + self.language, + ) + + self.out2hid(payload) + + def setLanguage(self, str_lang): + res = "" + + if self.__str_lang != str_lang: + try: + self.language = DuckEncoder.readResource( + os.path.join( + DuckEncoder.pwd(), + "resources", + f"{str_lang}.properties", + ) + ) + except OSError: + res = ( + f"No language file for '{str_lang}', " + "resetting to 'us'" + ) + self.print_debug(res) + + self.language = DuckEncoder.readResource( + os.path.join( + DuckEncoder.pwd(), + "resources", + "us.properties", + ) + ) + + return res + + self.__str_lang = str_lang + res = f"language set to '{str_lang}'" + self.print_debug(res) + + return res + + def getLanguage(self): + return self.__str_lang + + def setKeyDevFile(self, key_dev_file): + self.__key_dev_file = key_dev_file + + def print_debug(self, message): + if self.DEBUG: + print(message) + + def __init__( + self, + lang="us", + key_dev_file="/dev/hidg0", + ): + self.DEBUG = False + + self.keyboard = DuckEncoder.readResource( + os.path.join( + DuckEncoder.pwd(), + "resources", + "keyboard.properties", + ) + ) + + self.__key_dev_file = key_dev_file + self.__str_lang = "" + + self.setLanguage(lang) + + +def usage(): + usagescr = '''Duckencoder python port 1.0 by MaMe82 +================================================ + +Creds to: + hak5Darren for original duckencoder + https://github.com/hak5darren/USB-Rubber-Ducky + +Converts DuckyScript source into an encoded binary payload. + +Usage: + python3 duckencoder.py -i [file] + Encode DuckyScript source given by -i file + + python3 duckencoder.py -i [file] -o [outfile] + Encode DuckyScript source to output file + +Arguments: + -i [file] Input file in DuckyScript format + -o [file] Output file for encoded payload, + defaults to inject.bin + -l Keyboard Layout (us/fr/pt/de ...) + -p, --passthru Read script from stdin and print result on stdout + (ignore -i, -o) + -r, --rawpassthru Read input from stdin as STRING instead of DuckyScript + -h Print this help screen +''' + print(usagescr) + + +def main(argv): + script_dir = ( + os.path.dirname(os.path.abspath(__file__)) + or "." + ) + + ifile = "" + source = None + ofile = "inject.bin" + lang = "us" + rawpassthru = False + + try: + opts, args = getopt.getopt( + argv, + "hi:o:l:pr", + [ + "help", + "input=", + "output=", + "language=", + "passthru", + "rawpassthru", + ], + ) + except getopt.GetoptError as exc: + print(f"Error: {exc}", file=sys.stderr) + usage() + sys.exit(2) + + for opt, arg in opts: + if opt in ("-h", "--help"): + usage() + sys.exit(0) + + elif opt in ("-i", "--input"): + ifile = arg + + if ( + not os.path.isfile(ifile) + or not os.access(ifile, os.R_OK) + ): + print( + f"Input file {ifile} doesn't exist " + "or isn't readable", + file=sys.stderr, + ) + sys.exit(2) + + # DuckyScript source is text. + with open( + ifile, + "r", + encoding="utf-8", + ) as f: + source = f.read() + + elif opt in ("-l", "--language"): + lfile = os.path.join( + script_dir, + "resources", + f"{arg}.properties", + ) + + if ( + not os.path.isfile(lfile) + or not os.access(lfile, os.R_OK) + ): + print( + f"Language file {lfile} doesn't exist " + "or isn't readable", + file=sys.stderr, + ) + sys.exit(2) + + lang = arg + + elif opt in ("-o", "--output"): + ofile = arg + + elif opt in ("-p", "--passthru"): + # Read input from stdin, no output file. + ofile = None + source = sys.stdin.read() + + elif opt in ("-r", "--rawpassthru"): + # Read input from stdin as raw text. + rawpassthru = True + ofile = None + source = sys.stdin.read() + + if source is None: + print( + "You have to provide a source file (-i option)", + file=sys.stderr, + ) + sys.exit(2) + + if rawpassthru: + result = b"" + + keyboard = DuckEncoder.readResource( + os.path.join( + script_dir, + "resources", + "keyboard.properties", + ) + ) + + language = DuckEncoder.readResource( + os.path.join( + script_dir, + "resources", + f"{lang}.properties", + ) + ) + + for line in source.splitlines(): + for c in line: + keydata = DuckEncoder.ASCIIChar2USBBytes( + c, + keyboard, + language, + ) + + if keydata: + result += keydata + + else: + result = DuckEncoder.generatePayload( + source, + lang, + ) + + if ofile is None: + # Binary payload to stdout. + sys.stdout.buffer.write(result) + else: + with open(ofile, "wb") as f: + f.write(result) + + +if __name__ == "__main__": + if len(sys.argv) < 2: + usage() + sys.exit(1) + + main(sys.argv[1:]) diff --git a/resources/be.properties b/resources/be.properties new file mode 100644 index 0000000..30d849e --- /dev/null +++ b/resources/be.properties @@ -0,0 +1,227 @@ + +KEY_NON_US_100 = 100 + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + +ASCII_20 = KEY_SPACE +// 32 +ASCII_21 = KEY_8 +// 33 ! +ASCII_22 = KEY_3 +// 34 " +ASCII_23 = KEY_3, MODIFIERKEY_RIGHT_ALT +// 35 # +ASCII_24 = KEY_RIGHT_BRACE +// 36 $ +ASCII_25 = KEY_QUOTE, MODIFIERKEY_SHIFT +// 37 % +ASCII_26 = KEY_1 +// 38 & +ASCII_27 = KEY_4 +// 39 ' +ASCII_28 = KEY_5 +// 40 ( +ASCII_29 = KEY_MINUS +// 41 ) +ASCII_2A = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT +// 42 * +ASCII_2B = KEY_SLASH, MODIFIERKEY_SHIFT +// 43 + +ASCII_2C = KEY_M +// 44 , +ASCII_2D = KEY_EQUAL +// 45 - +ASCII_2E = KEY_COMMA, MODIFIERKEY_SHIFT +// 46 . +ASCII_2F = KEY_PERIOD, MODIFIERKEY_SHIFT +// 47 / +ASCII_30 = KEY_0, MODIFIERKEY_SHIFT +// 48 0 +ASCII_31 = KEY_1, MODIFIERKEY_SHIFT +// 49 1 +ASCII_32 = KEY_2, MODIFIERKEY_SHIFT +// 50 2 +ASCII_33 = KEY_3, MODIFIERKEY_SHIFT +// 51 3 +ASCII_34 = KEY_4, MODIFIERKEY_SHIFT +// 52 4 +ASCII_35 = KEY_5, MODIFIERKEY_SHIFT +// 53 5 +ASCII_36 = KEY_6, MODIFIERKEY_SHIFT +// 54 6 +ASCII_37 = KEY_7, MODIFIERKEY_SHIFT +// 55 7 +ASCII_38 = KEY_8, MODIFIERKEY_SHIFT +// 55 8 +ASCII_39 = KEY_9, MODIFIERKEY_SHIFT +// 57 9 +ASCII_3A = KEY_PERIOD +// 58 : +ASCII_3B = KEY_COMMA +// 59 ; +ASCII_3C = KEY_NON_US_100 +// 60 < +ASCII_3D = KEY_SLASH +// 61 = +ASCII_3E = KEY_NON_US_100, MODIFIERKEY_SHIFT +// 62 > +ASCII_3F = KEY_M, MODIFIERKEY_SHIFT +// 63 ? +ASCII_40 = KEY_2, MODIFIERKEY_RIGHT_ALT +// 64 @ +ASCII_41 = KEY_Q, MODIFIERKEY_SHIFT +// 65 A +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +// 66 B +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +// 67 C +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +// 68 D +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +// 69 E +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +// 70 F +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +// 71 G +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +// 72 H +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +// 73 I +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +// 74 J +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +// 75 K +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +// 76 L +ASCII_4D = KEY_SEMICOLON, MODIFIERKEY_SHIFT +// 77 M +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +// 78 N +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +// 79 O +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +// 80 P +ASCII_51 = KEY_A, MODIFIERKEY_SHIFT +// 81 Q +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +// 82 R +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +// 83 S +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +// 84 T +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +// 85 U +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +// 86 V +ASCII_57 = KEY_Z, MODIFIERKEY_SHIFT +// 87 W +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +// 88 X +ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT +// 89 Y +ASCII_5A = KEY_W, MODIFIERKEY_SHIFT +// 90 Z +ASCII_5B = KEY_LEFT_BRACE, MODIFIERKEY_RIGHT_ALT +// 91 [ +ASCII_5C = KEY_NON_US_100, MODIFIERKEY_RIGHT_ALT +// 92 +ASCII_5D = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT +// 93 ] +ASCII_5E = KEY_6, MODIFIERKEY_RIGHT_ALT +// 94 ^ +ASCII_5F = KEY_EQUAL, MODIFIERKEY_SHIFT +// 95 _ +ASCII_60 = KEY_BACKSLASH, MODIFIERKEY_RIGHT_ALT +// 96 ` (not tested) +ASCII_61 = KEY_Q +// 97 a +ASCII_62 = KEY_B +// 98 b +ASCII_63 = KEY_C +// 99 c +ASCII_64 = KEY_D +// 100 d +ASCII_65 = KEY_E +// 101 e +ASCII_66 = KEY_F +// 102 f +ASCII_67 = KEY_G +// 103 g +ASCII_68 = KEY_H +// 104 h +ASCII_69 = KEY_I +// 105 i +ASCII_6A = KEY_J +// 106 j +ASCII_6B = KEY_K +// 107 k +ASCII_6C = KEY_L +// 108 l +ASCII_6D = KEY_SEMICOLON +// 109 m +ASCII_6E = KEY_N +// 110 n +ASCII_6F = KEY_O +// 111 o +ASCII_70 = KEY_P +// 112 p +ASCII_71 = KEY_A +// 113 q +ASCII_72 = KEY_R +// 114 r +ASCII_73 = KEY_S +// 115 s +ASCII_74 = KEY_T +// 116 t +ASCII_75 = KEY_U +// 117 u +ASCII_76 = KEY_V +// 118 v +ASCII_77 = KEY_Z +// 119 w +ASCII_78 = KEY_X +// 120 x +ASCII_79 = KEY_Y +// 121 y +ASCII_7A = KEY_W +// 122 z +ASCII_7B = KEY_9, MODIFIERKEY_RIGHT_ALT +// 123 { +ASCII_7C = KEY_1, MODIFIERKEY_RIGHT_ALT +// 124 | +ASCII_7D = KEY_0, MODIFIERKEY_RIGHT_ALT +// 125 } +ASCII_7E = KEY_SLASH, MODIFIERKEY_RIGHT_ALT +// 126 ~ +ASCII_7F = KEY_BACKSPACE +// 127 +ISO_8859_1_A0 = KEY_SPACE +// 160 Nonbreakng Space +ISO_8859_1_A3 = KEY_BACKSLASH, MODIFIERKEY_SHIFT +// 163 £ Pound Sign +ISO_8859_1_A7 = KEY_6 +// 167 § SECTION SIGN +ISO_8859_1_B0 = KEY_MINUS, MODIFIERKEY_SHIFT +// 176 ° DEGREE SIGN +ISO_8859_1_B2 = KEY_TILDE +// 178 ² SUPERSCRIPT TWO +ISO_8859_1_B3 = KEY_TILDE, MODIFIERKEY_SHIFT +// 179 ³ SUPERSCRIPT THREE +//ISO_8859_1_B4 = ACUTE_ACCENT_BITS + KEY_SPACE +// 180 ´ ACUTE ACCENT +ISO_8859_1_B5 = KEY_BACKSLASH +// 181 µ MICRO SIGN +ISO_8859_1_E0 = KEY_0 +// 224 à a GRAVE +ISO_8859_1_E7 = KEY_9 +// 231 ç c CEDILLA +ISO_8859_1_E8 = KEY_7 +// 232 è e GRAVE +ISO_8859_1_E9 = KEY_2 +// 233 é e ACUTE +ISO_8859_1_F9 = KEY_QUOTE +// 249 ù u GRAVE - TODO; check FRENCH +UNICODE_20AC = KEY_E, MODIFIERKEY_RIGHT_ALT +// € Euro Sign + diff --git a/resources/br.properties b/resources/br.properties new file mode 100644 index 0000000..82492dd --- /dev/null +++ b/resources/br.properties @@ -0,0 +1,139 @@ +//LAYOUT_PORTUGUESE (BRAZIL) - http://ascii-table.com/keyboard.php/275 +//Updated by TheZakMan / @thezakman / thezakman.tumblr.com (20/10/2014) + +KEY_NON_US_100 = 100 + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + + +// a b c d e f g h i j k l m n o p r s t u v z x y q ç +ASCII_20 = KEY_SPACE +ASCII_61 = KEY_A +ASCII_62 = KEY_B +ASCII_63 = KEY_C +ASCII_64 = KEY_D +ASCII_65 = KEY_E +ASCII_66 = KEY_F +ASCII_67 = KEY_G +ASCII_68 = KEY_H +ASCII_69 = KEY_I +ASCII_6A = KEY_J +ASCII_6B = KEY_K +ASCII_6C = KEY_L +ASCII_6D = KEY_M +ASCII_6E = KEY_N +ASCII_6F = KEY_O +ASCII_70 = KEY_P +ASCII_72 = KEY_R +ASCII_73 = KEY_S +ASCII_74 = KEY_T +ASCII_75 = KEY_U +ASCII_76 = KEY_V +ASCII_7A = KEY_Z +ASCII_78 = KEY_X +ASCII_77 = KEY_W +ASCII_79 = KEY_Y +ASCII_71 = KEY_Q +//ç +ISO_8859_1_E7 = KEY_SEMICOLON + +// A B C D E F G H I J K L M N O P R S T U V Z X Y Q Ç +ASCII_41 = KEY_A, MODIFIERKEY_SHIFT +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +ASCII_4D = KEY_M, MODIFIERKEY_SHIFT +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +ASCII_5A = KEY_Z, MODIFIERKEY_SHIFT +ASCII_57 = KEY_W, MODIFIERKEY_SHIFT +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT +ASCII_51 = KEY_Q, MODIFIERKEY_SHIFT +//Ç + +ISO_8859_1_C7 = KEY_SEMICOLON, MODIFIERKEY_SHIFT +// Simbolos // ' ! @ # $ % & * ( ) _ + " - = / ? ° [ ] { } \ , . ; < > : +ASCII_27 = KEY_TILDE +ASCII_21 = KEY_1, MODIFIERKEY_SHIFT +ASCII_40 = KEY_2, MODIFIERKEY_SHIFT +ASCII_23 = KEY_3, MODIFIERKEY_SHIFT +ASCII_24 = KEY_4, MODIFIERKEY_SHIFT +ASCII_25 = KEY_5, MODIFIERKEY_SHIFT +ASCII_26 = KEY_7, MODIFIERKEY_SHIFT +ASCII_2A = KEY_8, MODIFIERKEY_SHIFT +ASCII_28 = KEY_9, MODIFIERKEY_SHIFT +ASCII_29 = KEY_0, MODIFIERKEY_SHIFT +ASCII_5F = KEY_MINUS, MODIFIERKEY_SHIFT +ASCII_2B = KEY_EQUAL, MODIFIERKEY_SHIFT +ASCII_22 = KEY_TILDE, MODIFIERKEY_SHIFT +ASCII_2D = KEY_MINUS +ASCII_3D = KEY_EQUAL +ASCII_2F = KEY_Q, MODIFIERKEY_RIGHT_ALT +ASCII_3F = KEY_W, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_B0 = KEY_E, MODIFIERKEY_RIGHT_ALT +ASCII_5B = KEY_RIGHT_BRACE +ASCII_5D = KEY_BACKSLASH +ASCII_7B = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT +ASCII_7D = KEY_BACKSLASH, MODIFIERKEY_SHIFT +ASCII_5C = KEY_NON_US_100 +ASCII_2C = KEY_COMMA +ASCII_2E = KEY_PERIOD +ASCII_3B = KEY_SLASH +ASCII_3C = KEY_COMMA, MODIFIERKEY_SHIFT +ASCII_3E = KEY_PERIOD, MODIFIERKEY_SHIFT +ASCII_3A = KEY_SLASH, MODIFIERKEY_SHIFT + + + + + + +// Other symbols // input: § ´ ~ | ^ ` output: § ´~| ^` (notice some space missing!) + +//ACENTOS (SPECIAL SYMBOLS) +ISO_8859_1_A7 = KEY_EQUAL, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_B4 = KEY_LEFT_BRACE +ASCII_7E = KEY_QUOTE +ASCII_7C = KEY_NON_US_100, MODIFIERKEY_SHIFT +ASCII_5E = KEY_QUOTE, MODIFIERKEY_SHIFT +ASCII_60 = KEY_LEFT_BRACE, MODIFIERKEY_SHIFT + + +// NUMEROS (NUMBERS) + +// 48 0 +ASCII_30 = KEY_0 +// 49 1 +ASCII_31 = KEY_1 +// 50 2 +ASCII_32 = KEY_2 +// 51 3 +ASCII_33 = KEY_3 +// 52 4 +ASCII_34 = KEY_4 +// 53 5 +ASCII_35 = KEY_5 +// 54 6 +ASCII_36 = KEY_6 +// 55 7 +ASCII_37 = KEY_7 +// 55 8 +ASCII_38 = KEY_8 +// 57 9 +ASCII_39 = KEY_9 diff --git a/resources/ca.properties b/resources/ca.properties new file mode 100644 index 0000000..8fe607f --- /dev/null +++ b/resources/ca.properties @@ -0,0 +1,245 @@ +// Candian Keyboard Layout + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + +// 32 +ASCII_20 = KEY_SPACE + // 33 ! +ASCII_21 = KEY_1, MODIFIERKEY_SHIFT +// 34 " +ASCII_22 = KEY_2, MODIFIERKEY_SHIFT +// 35 # +ASCII_23 = KEY_TILDE +// 36 $ +ASCII_24 = KEY_4, MODIFIERKEY_SHIFT +// 37 % +ASCII_25 = KEY_5, MODIFIERKEY_SHIFT +// 38 & +ASCII_26 = KEY_7, MODIFIERKEY_SHIFT +// 39 ' +ASCII_27 = KEY_COMMA, MODIFIERKEY_SHIFT +// 40 ( +ASCII_28 = KEY_9, MODIFIERKEY_SHIFT +// 41 ) +ASCII_29 = KEY_0, MODIFIERKEY_SHIFT +// 42 * +ASCII_2A = KEY_8, MODIFIERKEY_SHIFT +// 43 + +ASCII_2B = KEY_EQUAL, MODIFIERKEY_SHIFT +// 44 , +ASCII_2C = KEY_COMMA +// 45 - +ASCII_2D = KEY_MINUS +// 46 . +ASCII_2E = KEY_PERIOD +// 47 / +ASCII_2F = KEY_3, MODIFIERKEY_SHIFT +// 48 0 +ASCII_30 = KEY_0 +// 49 1 +ASCII_31 = KEY_1 +// 50 2 +ASCII_32 = KEY_2 +// 51 3 +ASCII_33 = KEY_3 +// 52 4 +ASCII_34 = KEY_4 +// 53 5 +ASCII_35 = KEY_5 +// 54 6 +ASCII_36 = KEY_6 +// 55 7 +ASCII_37 = KEY_7 +// 55 8 +ASCII_38 = KEY_8 +// 57 9 +ASCII_39 = KEY_9 +// 58 : +ASCII_3A = KEY_SEMICOLON, MODIFIERKEY_SHIFT +// 59 ; +ASCII_3B = KEY_SEMICOLON +// 60 < +ASCII_3C = KEY_BACKSLASH +// 61 = +ASCII_3D = KEY_EQUAL +// 62 > +ASCII_3E = KEY_BACKSLASH, MODIFIERKEY_SHIFT +// 63 ? +ASCII_3F = KEY_6, MODIFIERKEY_SHIFT +// 64 @ +ASCII_40 = KEY_2, MODIFIERKEY_RIGHT_ALT +// 65 A +ASCII_41 = KEY_A, MODIFIERKEY_SHIFT +// 66 B +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +// 67 C +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +// 68 D +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +// 69 E +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +// 70 F +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +// 71 G +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +// 72 H +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +// 73 I +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +// 74 J +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +// 75 K +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +// 76 L +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +// 77 M +ASCII_4D = KEY_M, MODIFIERKEY_SHIFT +// 78 N +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +// 79 O +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +// 80 P +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +// 81 Q +ASCII_51 = KEY_Q, MODIFIERKEY_SHIFT +// 82 R +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +// 83 S +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +// 84 T +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +// 85 U +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +// 86 V +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +// 87 W +ASCII_57 = KEY_W, MODIFIERKEY_SHIFT +// 88 X +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +// 89 Y +ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT +// 90 Z +ASCII_5A = KEY_Z, MODIFIERKEY_SHIFT +// 91 [ +ASCII_5B = KEY_LEFT_BRACE, MODIFIERKEY_RIGHT_ALT +// 92 +ASCII_5C = KEY_TILDE, MODIFIERKEY_RIGHT_ALT +// 93 ] +ASCII_5D = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT +// 94 ^ +ASCII_5E = KEY_LEFT_BRACE +// 95 _ +ASCII_5F = KEY_MINUS, MODIFIERKEY_SHIFT +// 96 ` +ASCII_60 = KEY_QUOTE +// 97 a +ASCII_61 = KEY_A +// 98 b +ASCII_62 = KEY_B +// 99 c +ASCII_63 = KEY_C +// 100 d +ASCII_64 = KEY_D +// 101 e +ASCII_65 = KEY_E +// 102 f +ASCII_66 = KEY_F +// 103 g +ASCII_67 = KEY_G +// 104 h +ASCII_68 = KEY_H +// 105 i +ASCII_69 = KEY_I +// 106 j +ASCII_6A = KEY_J +// 107 k +ASCII_6B = KEY_K +// 108 l +ASCII_6C = KEY_L +// 109 m +ASCII_6D = KEY_M +// 110 n +ASCII_6E = KEY_N +// 111 o +ASCII_6F = KEY_O +// 112 p +ASCII_70 = KEY_P +// 113 q +ASCII_71 = KEY_Q +// 114 r +ASCII_72 = KEY_R +// 115 s +ASCII_73 = KEY_S +// 116 t +ASCII_74 = KEY_T +// 117 u +ASCII_75 = KEY_U +// 118 v +ASCII_76 = KEY_V +// 119 w +ASCII_77 = KEY_W +// 120 x +ASCII_78 = KEY_X +// 121 y +ASCII_79 = KEY_Y +// 122 z +ASCII_7A = KEY_Z +// 123 { +ASCII_7B = KEY_QUOTE, MODIFIERKEY_RIGHT_ALT +// 124 | +ASCII_7C = KEY_TILDE, MODIFIERKEY_SHIFT +// 125 } +ASCII_7D = KEY_BACKSLASH, MODIFIERKEY_RIGHT_ALT +// 126 ~ +ASCII_7E = KEY_SEMICOLON, MODIFIERKEY_RIGHT_ALT +// 127 +ASCII_7F = KEY_BACKSPACE +// 128 ¢ Pound Sign +ISO_8859_1_A2 = KEY_4, MODIFIERKEY_RIGHT_ALT +// 129 £ Pound Sign +ISO_8859_1_A3 = KEY_3, MODIFIERKEY_RIGHT_ALT +// 130 ¤ +ISO_8859_1_A4 = KEY_5, MODIFIERKEY_RIGHT_ALT +// 131 ¦ SECTION SIGN +ISO_8859_1_A6 = KEY_7, MODIFIERKEY_RIGHT_ALT +// 132 § SECTION SIGN +ISO_8859_1_A7 = KEY_O, MODIFIERKEY_RIGHT_ALT +// 133 ¨ +ISO_8859_1_A8 = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT +// 134 ¬ +ISO_8859_1_AB = ACUTE_ACCENT_BITS + KEY_SPACE, MODIFIERKEY_SHIFT +// 135 ¬ +ISO_8859_1_AC = KEY_6, MODIFIERKEY_RIGHT_ALT +// 136 ­ +ISO_8859_1_AD = KEY_PERIOD, MODIFIERKEY_RIGHT_ALT +// 137 ¯ +ISO_8859_1_AF = KEY_TILDE, MODIFIERKEY_RIGHT_ALT +// 138 ° +ISO_8859_1_B0 = ACUTE_ACCENT_BITS + KEY_SPACE, MODIFIERKEY_RIGHT_ALT +// 139 ´ MICRO SIGN +ISO_8859_1_BB = ACUTE_ACCENT_BITS + KEY_SPACE +// 140 ´ MICRO SIGN +ISO_8859_1_B4 = KEY_SLASH, MODIFIERKEY_RIGHT_ALT +// 141 µ MICRO SIGN +ISO_8859_1_B5 = KEY_M, MODIFIERKEY_RIGHT_ALT +// 142 ¶ MICRO SIGN +ISO_8859_1_B6 = KEY_P, MODIFIERKEY_RIGHT_ALT +// 143 ¸ MICRO SIGN +ISO_8859_1_B8 = KEY_RIGHT_BRACE +// 145 ± MATH SIGN +ISO_8859_1_B1 = KEY_1, MODIFIERKEY_RIGHT_ALT +// 146 ² MATH SIGN +ISO_8859_1_B2 = KEY_8, MODIFIERKEY_RIGHT_ALT +// 147 ³ MATH SIGN +ISO_8859_1_B3 = KEY_9, MODIFIERKEY_RIGHT_ALT +// 148 ¼ MATH SIGN +ISO_8859_1_BC = KEY_0, MODIFIERKEY_RIGHT_ALT +// 149 ½ MATH SIGN +ISO_8859_1_BD = KEY_MINUS, MODIFIERKEY_RIGHT_ALT +// 150 ¾ MATH SIGN +ISO_8859_1_BE = KEY_EQUAL, MODIFIERKEY_RIGHT_ALT +// 151 É e ACUTE +ISO_8859_1_C9 = KEY_SLASH, MODIFIERKEY_SHIFT +// 152 é e ACUTE +ISO_8859_1_E9 = KEY_SLASH diff --git a/resources/ch.properties b/resources/ch.properties new file mode 100644 index 0000000..59a6bf6 --- /dev/null +++ b/resources/ch.properties @@ -0,0 +1,295 @@ +//LAYOUT_SWISS_GERMAN 0.9b ¦ Some symbols still missing (Euro, Pound...) +//Author - Powerslave ¦ Date - 07/02/13 ¦ Website - www.powerslave.ch +//No Euro Key (not yet), and most of the french crap letters don't work aswell +//but it works for all standard ASCII Letters, all you need for fun. +KEY_NON_US_100 = 100 + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + + +ASCII_20 = KEY_SPACE +// 32 +ASCII_21 = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT +// 33 ! +ASCII_22 = KEY_2, MODIFIERKEY_SHIFT +// 34 " +ASCII_23 = KEY_3, MODIFIERKEY_RIGHT_ALT +// 35 # +ASCII_24 = KEY_BACKSLASH +// 36 $ +ASCII_25 = KEY_5, MODIFIERKEY_SHIFT +// 37 % +ASCII_26 = KEY_6, MODIFIERKEY_SHIFT +// 38 & +ASCII_27 = KEY_MINUS +// 39 ' +ASCII_28 = KEY_8, MODIFIERKEY_SHIFT +// 40 ( +ASCII_29 = KEY_9, MODIFIERKEY_SHIFT +// 41 ) +ASCII_2A = KEY_3, MODIFIERKEY_SHIFT +// 42 * +ASCII_2B = KEY_1, MODIFIERKEY_SHIFT +// 43 + +ASCII_2C = KEY_COMMA +// 44 , +ASCII_2D = KEY_SLASH +// 45 - +ASCII_2E = KEY_PERIOD +// 46 . +ASCII_2F = KEY_7, MODIFIERKEY_SHIFT +// 47 / +ASCII_30 = KEY_0 +// 48 0 +ASCII_31 = KEY_1 +// 49 1 +ASCII_32 = KEY_2 +// 50 2 +ASCII_33 = KEY_3 +// 51 3 +ASCII_34 = KEY_4 +// 52 4 +ASCII_35 = KEY_5 +// 53 5 +ASCII_36 = KEY_6 +// 54 6 +ASCII_37 = KEY_7 +// 55 7 +ASCII_38 = KEY_8 +// 55 8 +ASCII_39 = KEY_9 +// 57 9 +ASCII_3A = KEY_PERIOD, MODIFIERKEY_SHIFT +// 58 : +ASCII_3B = KEY_COMMA, MODIFIERKEY_SHIFT +// 59 ; +ASCII_3C = KEY_NON_US_100 +// 60 < +ASCII_3D = KEY_0, MODIFIERKEY_SHIFT +// 61 = +ASCII_3E = KEY_NON_US_100, MODIFIERKEY_SHIFT +// 62 > +ASCII_3F = KEY_MINUS, MODIFIERKEY_SHIFT +// 63 ? +ASCII_40 = KEY_2, MODIFIERKEY_RIGHT_ALT +// 64 @ +ASCII_41 = KEY_A, MODIFIERKEY_SHIFT +// 65 A +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +// 66 B +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +// 67 C +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +// 68 D +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +// 69 E +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +// 70 F +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +// 71 G +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +// 72 H +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +// 73 I +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +// 74 J +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +// 75 K +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +// 76 L +ASCII_4D = KEY_M, MODIFIERKEY_SHIFT +// 77 M +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +// 78 N +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +// 79 O +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +// 80 P +ASCII_51 = KEY_Q, MODIFIERKEY_SHIFT +// 81 Q +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +// 82 R +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +// 83 S +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +// 84 T +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +// 85 U +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +// 86 V +ASCII_57 = KEY_W, MODIFIERKEY_SHIFT +// 87 W +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +// 88 X +ASCII_59 = KEY_Z, MODIFIERKEY_SHIFT +// 89 Y +ASCII_5A = KEY_Y, MODIFIERKEY_SHIFT +// 90 Z +ASCII_5B = KEY_LEFT_BRACE, MODIFIERKEY_RIGHT_ALT +// 91 [ +ASCII_5C = KEY_NON_US_100, MODIFIERKEY_RIGHT_ALT +// 92 +ASCII_5D = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT +// 93 ] +ASCII_5E = KEY_EQUAL +// 94 ^ +ASCII_5F = KEY_SLASH, MODIFIERKEY_SHIFT +// 95 _ +ASCII_60 = KEY_EQUAL, MODIFIERKEY_SHIFT +//GRAVE_ACCENT_BITS + KEY_SPACE +// 96 ` +ASCII_61 = KEY_A +// 97 a +ASCII_62 = KEY_B +// 98 b +ASCII_63 = KEY_C +// 99 c +ASCII_64 = KEY_D +// 100 d +ASCII_65 = KEY_E +// 101 e +ASCII_66 = KEY_F +// 102 f +ASCII_67 = KEY_G +// 103 g +ASCII_68 = KEY_H +// 104 h +ASCII_69 = KEY_I +// 105 i +ASCII_6A = KEY_J +// 106 j +ASCII_6B = KEY_K +// 107 k +ASCII_6C = KEY_L +// 108 l +ASCII_6D = KEY_M +// 109 m +ASCII_6E = KEY_N +// 110 n +ASCII_6F = KEY_O +// 111 o +ASCII_70 = KEY_P +// 112 p +ASCII_71 = KEY_Q +// 113 q +ASCII_72 = KEY_R +// 114 r +ASCII_73 = KEY_S +// 115 s +ASCII_74 = KEY_T +// 116 t +ASCII_75 = KEY_U +// 117 u +ASCII_76 = KEY_V +// 118 v +ASCII_77 = KEY_W +// 119 w +ASCII_78 = KEY_X +// 120 x +ASCII_79 = KEY_Z +// 121 y +ASCII_7A = KEY_Y +// 122 z +ASCII_7B = KEY_TILDE, MODIFIERKEY_RIGHT_ALT +// 123 { +ASCII_7C = KEY_7, MODIFIERKEY_RIGHT_ALT +// 124 | +ASCII_7D = KEY_BACKSLASH, MODIFIERKEY_RIGHT_ALT +// 125 } +ASCII_7E = KEY_EQUAL, MODIFIERKEY_RIGHT_ALT +// 126 ~ +ASCII_7F = KEY_BACKSPACE +// 127 +ISO_8859_1_A0 = KEY_SPACE +// 160 Nonbreakng Space +ISO_8859_1_A4 = KEY_11, MODIFIERKEY_RIGHT_ALT +// 164 ¤ Currency Sign +ISO_8859_1_A7 = KEY_TILDE +// 167 § SECTION SIGN +ISO_8859_1_B0 = KEY_TILDE, MODIFIERKEY_SHIFT +// 176 ° DEGREE SIGN +ISO_8859_1_B2 = KEY_11, MODIFIERKEY_RIGHT_ALT +// 178 ² SUPERSCRIPT TWO +ISO_8859_1_B3 = KEY_11, MODIFIERKEY_RIGHT_ALT +// 179 ³ SUPERSCRIPT THREE +//ISO_8859_1_C0 = GRAVE_ACCENT_BITS + KEY_A, MODIFIERKEY_SHIFT +// 192 À A GRAVE +//ISO_8859_1_C1 = ACUTE_ACCENT_BITS + KEY_A, MODIFIERKEY_SHIFT +// 193 Á A ACUTE +//ISO_8859_1_C2 = CIRCUMFLEX_BITS = + KEY_A, MODIFIERKEY_SHIFT +// 194  A CIRCUMFLEX +ISO_8859_1_C4 = KEY_QUOTE, MODIFIERKEY_SHIFT +// 196 Ä A DIAERESIS +//ISO_8859_1_C8 = GRAVE_ACCENT_BITS + KEY_E, MODIFIERKEY_SHIFT +// 200 È E GRAVE +//ISO_8859_1_C9 = ACUTE_ACCENT_BITS + KEY_E, MODIFIERKEY_SHIFT +// 201 É E ACUTE +//ISO_8859_1_CA = CIRCUMFLEX_BITS + KEY_E, MODIFIERKEY_SHIFT +// 202 Ê E CIRCUMFLEX +//ISO_8859_1_CC = GRAVE_ACCENT_BITS + KEY_I, MODIFIERKEY_SHIFT +// 204 Ì I GRAVE +//ISO_8859_1_CD = ACUTE_ACCENT_BITS + KEY_I, MODIFIERKEY_SHIFT +// 205 Í I ACUTE +//ISO_8859_1_CE = CIRCUMFLEX_BITS + KEY_I, MODIFIERKEY_SHIFT +// 206 Î I CIRCUMFLEX +//ISO_8859_1_D2 = GRAVE_ACCENT_BITS + KEY_O, MODIFIERKEY_SHIFT +// 210 Ò O GRAVE +//ISO_8859_1_D3 = ACUTE_ACCENT_BITS + KEY_O, MODIFIERKEY_SHIFT +// 211 Ó O ACUTE +//ISO_8859_1_D4 = CIRCUMFLEX_BITS + KEY_O, MODIFIERKEY_SHIFT +// 212 Ô O CIRCUMFLEX +ISO_8859_1_D6 = KEY_SEMICOLON, MODIFIERKEY_SHIFT +// 214 Ö O DIAERESIS +//ISO_8859_1_D9 = GRAVE_ACCENT_BITS + KEY_U, MODIFIERKEY_SHIFT +// 217 Ù U GRAVE +//ISO_8859_1_DA = ACUTE_ACCENT_BITS + KEY_U, MODIFIERKEY_SHIFT +// 218 Ú U ACUTE +//ISO_8859_1_DB = CIRCUMFLEX_BITS + KEY_U, MODIFIERKEY_SHIFT +// 219 Û U CIRCUMFLEX +ISO_8859_1_DC = KEY_LEFT_BRACE, MODIFIERKEY_SHIFT +// 220 Ü U DIAERESIS +//ISO_8859_1_DD = ACUTE_ACCENT_BITS + KEY_Z, MODIFIERKEY_SHIFT +// 221 Ý Y ACUTE +ISO_8859_1_DF = KEY_MINUS +// 223 ß SHARP S +//ISO_8859_1_E0 = GRAVE_ACCENT_BITS + KEY_A +// 224 à a GRAVE +//ISO_8859_1_E1 = ACUTE_ACCENT_BITS + KEY_A +// 225 á a ACUTE +//ISO_8859_1_E2 = CIRCUMFLEX_BITS + KEY_A +// 226 â a CIRCUMFLEX +ISO_8859_1_E4 = KEY_QUOTE +// 228 ä a DIAERESIS +//ISO_8859_1_E8 = GRAVE_ACCENT_BITS + KEY_E +// 232 è e GRAVE +//ISO_8859_1_E9 = ACUTE_ACCENT_BITS + KEY_E +// 233 é e ACUTE +//ISO_8859_1_EA = CIRCUMFLEX_BITS + KEY_E +// 234 ê e CIRCUMFLEX +//ISO_8859_1_EC = GRAVE_ACCENT_BITS + KEY_I +// 236 ì i GRAVE +//ISO_8859_1_ED = ACUTE_ACCENT_BITS + KEY_I +// 237 í i ACUTE +//ISO_8859_1_EE = CIRCUMFLEX_BITS + KEY_I +// 238 î i CIRCUMFLEX +//ISO_8859_1_F2 = GRAVE_ACCENT_BITS + KEY_O +// 242 ò o GRAVE +//ISO_8859_1_F3 = ACUTE_ACCENT_BITS + KEY_O +// 243 ó o ACUTE +//ISO_8859_1_F4 = CIRCUMFLEX_BITS + KEY_O +// 244 ô o CIRCUMFLEX +ISO_8859_1_F6 = KEY_SEMICOLON +// 246 ö o DIAERESIS +//ISO_8859_1_F9 = GRAVE_ACCENT_BITS + KEY_U +// 249 ù u GRAVE +//ISO_8859_1_FA = ACUTE_ACCENT_BITS + KEY_U +// 250 ú u ACUTE +//ISO_8859_1_FB = CIRCUMFLEX_BITS + KEY_U +// 251 û u CIRCUMFLEX +ISO_8859_1_FC = KEY_LEFT_BRACE +// 252 ü u DIAERESIS +//ISO_8859_1_FD = ACUTE_ACCENT_BITS + KEY_Z +// 253 ý y ACUTE +UNICODE_20AC = KEY_E, MODIFIERKEY_RIGHT_ALT +// € Euro Sign diff --git a/resources/cm.properties b/resources/cm.properties new file mode 100644 index 0000000..4ec4162 --- /dev/null +++ b/resources/cm.properties @@ -0,0 +1,245 @@ +// Candian Multilangual Keyboard Layout +//Made by TheMMcOfficial +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + +// 32 +ASCII_20 = KEY_SPACE + // 33 ! +ASCII_21 = KEY_1, MODIFIERKEY_SHIFT +// 34 " +ASCII_22 = KEY_PERIOD, MODIFIERKEY_SHIFT +// 35 # +ASCII_23 = KEY_3, MODIFIERKEY_SHIFT +// 36 $ +ASCII_24 = KEY_4, MODIFIERKEY_SHIFT +// 37 % +ASCII_25 = KEY_5, MODIFIERKEY_SHIFT +// 38 & +ASCII_26 = KEY_7, MODIFIERKEY_SHIFT +// 39 ' +ASCII_27 = KEY_COMMA, MODIFIERKEY_SHIFT +// 40 ( +ASCII_28 = KEY_9, MODIFIERKEY_SHIFT +// 41 ) +ASCII_29 = KEY_0, MODIFIERKEY_SHIFT +// 42 * +ASCII_2A = KEY_8, MODIFIERKEY_SHIFT +// 43 + +ASCII_2B = KEY_EQUAL, MODIFIERKEY_SHIFT +// 44 , +ASCII_2C = KEY_COMMA +// 45 - +ASCII_2D = KEY_MINUS +// 46 . +ASCII_2E = KEY_PERIOD +// 47 / +ASCII_2F = KEY_TILDE +// 48 0 +ASCII_30 = KEY_0 +// 49 1 +ASCII_31 = KEY_1 +// 50 2 +ASCII_32 = KEY_2 +// 51 3 +ASCII_33 = KEY_3 +// 52 4 +ASCII_34 = KEY_4 +// 53 5 +ASCII_35 = KEY_5 +// 54 6 +ASCII_36 = KEY_6 +// 55 7 +ASCII_37 = KEY_7 +// 55 8 +ASCII_38 = KEY_8 +// 57 9 +ASCII_39 = KEY_9 +// 58 : +ASCII_3A = KEY_SEMICOLON, MODIFIERKEY_SHIFT +// 59 ; +ASCII_3B = KEY_SEMICOLON +// 60 < +ASCII_3C = KEY_COMMA, MODIFIERKEY_RIGHT_ALT +// 61 = +ASCII_3D = KEY_EQUAL +// 62 > +ASCII_3E = KEY_PERIOD, MODIFIERKEY_RIGHT_ALT +// 63 ? +ASCII_3F = KEY_6, MODIFIERKEY_SHIFT +// 64 @ +ASCII_40 = KEY_2, MODIFIERKEY_SHIFT +// 65 A +ASCII_41 = KEY_A, MODIFIERKEY_SHIFT +// 66 B +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +// 67 C +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +// 68 D +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +// 69 E +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +// 70 F +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +// 71 G +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +// 72 H +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +// 73 I +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +// 74 J +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +// 75 K +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +// 76 L +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +// 77 M +ASCII_4D = KEY_M, MODIFIERKEY_SHIFT +// 78 N +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +// 79 O +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +// 80 P +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +// 81 Q +ASCII_51 = KEY_Q, MODIFIERKEY_SHIFT +// 82 R +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +// 83 S +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +// 84 T +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +// 85 U +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +// 86 V +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +// 87 W +ASCII_57 = KEY_W, MODIFIERKEY_SHIFT +// 88 X +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +// 89 Y +ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT +// 90 Z +ASCII_5A = KEY_Z, MODIFIERKEY_SHIFT +// 91 [ +ASCII_5B = KEY_9, MODIFIERKEY_RIGHT_ALT +// 92 +ASCII_5C = KEY_TILDE, MODIFIERKEY_SHIFT +// 93 ] +ASCII_5D = KEY_0, MODIFIERKEY_RIGHT_ALT +// 94 ^ +ASCII_5E = KEY_LEFT_BRACE +// 95 _ +ASCII_5F = KEY_MINUS, MODIFIERKEY_SHIFT +// 96 ` +ASCII_60 = KEY_LEFT_BRACE, MODIFIERKEY_RIGHT_ALT +// 97 a +ASCII_61 = KEY_A +// 98 b +ASCII_62 = KEY_B +// 99 c +ASCII_63 = KEY_C +// 100 d +ASCII_64 = KEY_D +// 101 e +ASCII_65 = KEY_E +// 102 f +ASCII_66 = KEY_F +// 103 g +ASCII_67 = KEY_G +// 104 h +ASCII_68 = KEY_H +// 105 i +ASCII_69 = KEY_I +// 106 j +ASCII_6A = KEY_J +// 107 k +ASCII_6B = KEY_K +// 108 l +ASCII_6C = KEY_L +// 109 m +ASCII_6D = KEY_M +// 110 n +ASCII_6E = KEY_N +// 111 o +ASCII_6F = KEY_O +// 112 p +ASCII_70 = KEY_P +// 113 q +ASCII_71 = KEY_Q +// 114 r +ASCII_72 = KEY_R +// 115 s +ASCII_73 = KEY_S +// 116 t +ASCII_74 = KEY_T +// 117 u +ASCII_75 = KEY_U +// 118 v +ASCII_76 = KEY_V +// 119 w +ASCII_77 = KEY_W +// 120 x +ASCII_78 = KEY_X +// 121 y +ASCII_79 = KEY_Y +// 122 z +ASCII_7A = KEY_Z +// 123 { +ASCII_7B = KEY_7, MODIFIERKEY_RIGHT_ALT +// 124 | +ASCII_7C = KEY_TILDE, MODIFIERKEY_RIGHT_ALT +// 125 } +ASCII_7D = KEY_8, MODIFIERKEY_RIGHT_ALT +// 126 ~ +ASCII_7E = KEY_KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT +// 127 +ASCII_7F = KEY_BACKSPACE +// 128 ¢ Pound Sign +ISO_8859_1_A2 = KEY_C, MODIFIERKEY_RIGHT_CONTROL +// 129 £ Pound Sign +ISO_8859_1_A3 = KEY_3, MODIFIERKEY_RIGHT_CONTROL, MODIFIERKEY_RIGHT_ALT +// 130 ¤ +ISO_8859_1_A4 = KEY_4, MODIFIERKEY_RIGHT_ALT +// 131 ¦ SECTION SIGN +//ISO_8859_1_A6 = KEY_, MODIFIERKEY_RIGHT_ALT +// 132 § SECTION SIGN +ISO_8859_1_A7 = KEY_S, MODIFIERKEY_RIGHT_CONTROL, MODIFIERKEY_RIGHT_ALT +// 133 ¨ +ISO_8859_1_A8 = KEY_EQUAL, MODIFIERKEY_RIGHT_ALT +// 134 ¬ +//ISO_8859_1_AB = ACUTE_ACCENT_BITS + KEY_SPACE, MODIFIERKEY_SHIFT +// 135 ¬ +//ISO_8859_1_AC = KEY_6, MODIFIERKEY_RIGHT_ALT +// 136 ­ +//ISO_8859_1_AD = KEY_PERIOD, MODIFIERKEY_RIGHT_ALT +// 137 ¯ +//ISO_8859_1_AF = KEY_TILDE, MODIFIERKEY_RIGHT_ALT +// 138 ° +//ISO_8859_1_B0 = ACUTE_ACCENT_BITS + KEY_SPACE, MODIFIERKEY_RIGHT_ALT +// 139 ´ MICRO SIGN +//ISO_8859_1_BB = ACUTE_ACCENT_BITS + KEY_SPACE +// 140 ´ MICRO SIGN +//ISO_8859_1_B4 = KEY_SLASH, MODIFIERKEY_RIGHT_ALT +// 141 µ MICRO SIGN +//ISO_8859_1_B5 = KEY_M, MODIFIERKEY_RIGHT_ALT +// 142 ¶ MICRO SIGN +//ISO_8859_1_B6 = KEY_P, MODIFIERKEY_RIGHT_ALT +// 143 ¸ MICRO SIGN +//ISO_8859_1_B8 = KEY_RIGHT_BRACE +// 145 ± MATH SIGN +//ISO_8859_1_B1 = KEY_1, MODIFIERKEY_RIGHT_ALT +// 146 ² MATH SIGN +//ISO_8859_1_B2 = KEY_8, MODIFIERKEY_RIGHT_ALT +// 147 ³ MATH SIGN +//ISO_8859_1_B3 = KEY_9, MODIFIERKEY_RIGHT_ALT +// 148 ¼ MATH SIGN +//ISO_8859_1_BC = KEY_0, MODIFIERKEY_RIGHT_ALT +// 149 ½ MATH SIGN +//ISO_8859_1_BD = KEY_MINUS, MODIFIERKEY_RIGHT_ALT +// 150 ¾ MATH SIGN +//ISO_8859_1_BE = KEY_EQUAL, MODIFIERKEY_RIGHT_ALT +// 151 É e ACUTE +ISO_8859_1_C9 = KEY_SLASH, MODIFIERKEY_SHIFT +// 152 é e ACUTE +ISO_8859_1_E9 = KEY_SLASH diff --git a/resources/cs.properties b/resources/cs.properties new file mode 100644 index 0000000..8140d45 --- /dev/null +++ b/resources/cs.properties @@ -0,0 +1,103 @@ +// CS layout + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + +ASCII_20 = KEY_SPACE +ASCII_21 = KEY_QUOTE, MODIFIERKEY_SHIFT +ASCII_22 = KEY_SEMICOLON, MODIFIERKEY_SHIFT +ASCII_23 = KEY_X, MODIFIERKEY_RIGHT_ALT +ASCII_24 = KEY_SEMICOLON, MODIFIERKEY_RIGHT_ALT +ASCII_25 = KEY_MINUS, MODIFIERKEY_SHIFT +ASCII_26 = KEY_C, MODIFIERKEY_RIGHT_ALT +ASCII_27 = KEY_BACKSLASH, MODIFIERKEY_SHIFT +ASCII_28 = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT +ASCII_29 = KEY_RIGHT_BRACE +ASCII_2A = KEY_SLASH, MODIFIERKEY_RIGHT_ALT +ASCII_2B = KEY_1 +ASCII_2C = KEY_COMMA +ASCII_2D = KEY_SLASH +ASCII_2E = KEY_PERIOD +ASCII_2F = KEY_LEFT_BRACE, MODIFIERKEY_SHIFT +ASCII_30 = KEY_0, MODIFIERKEY_SHIFT +ASCII_31 = KEY_1, MODIFIERKEY_SHIFT +ASCII_32 = KEY_2, MODIFIERKEY_SHIFT +ASCII_33 = KEY_3, MODIFIERKEY_SHIFT +ASCII_34 = KEY_4, MODIFIERKEY_SHIFT +ASCII_35 = KEY_5, MODIFIERKEY_SHIFT +ASCII_36 = KEY_6, MODIFIERKEY_SHIFT +ASCII_37 = KEY_7, MODIFIERKEY_SHIFT +ASCII_38 = KEY_8, MODIFIERKEY_SHIFT +ASCII_39 = KEY_9, MODIFIERKEY_SHIFT +ASCII_3A = KEY_PERIOD, MODIFIERKEY_SHIFT +ASCII_3B = KEY_TILDE +ASCII_3C = KEY_COMMA, MODIFIERKEY_RIGHT_ALT +ASCII_3D = KEY_MINUS +ASCII_3E = KEY_PERIOD, MODIFIERKEY_RIGHT_ALT +ASCII_3F = KEY_COMMA, MODIFIERKEY_SHIFT +ASCII_40 = KEY_V, MODIFIERKEY_RIGHT_ALT +ASCII_41 = KEY_A, MODIFIERKEY_SHIFT +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +ASCII_4D = KEY_M, MODIFIERKEY_SHIFT +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +ASCII_51 = KEY_Q, MODIFIERKEY_SHIFT +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +ASCII_57 = KEY_W, MODIFIERKEY_SHIFT +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +ASCII_59 = KEY_Z, MODIFIERKEY_SHIFT +ASCII_5A = KEY_Y, MODIFIERKEY_SHIFT +ASCII_5B = KEY_F, MODIFIERKEY_RIGHT_ALT +ASCII_5C = KEY_Q, MODIFIERKEY_RIGKT_ALT +ASCII_5D = KEY_G, MODIFIERKEY_RIGHT_ALT +ASCII_5E = KEY_6, MODIFIERKEY_RIGHT_ALT +ASCII_5F = KEY_SLASH, MODIFIERKEY_SHIFT +//THIS IS JUST FOR LINUX, WINDOWS WOULD BE KEY_7, MODIFIERKEY_RIGHT_ALT FOLLOWED BY SPACE +ASCII_60 = KEY_TILDE, MODIFIERKEY_RIGHT_ALT +ASCII_61 = KEY_A +ASCII_62 = KEY_B +ASCII_63 = KEY_C +ASCII_64 = KEY_D +ASCII_65 = KEY_E +ASCII_66 = KEY_F +ASCII_67 = KEY_G +ASCII_68 = KEY_H +ASCII_69 = KEY_I +ASCII_6A = KEY_J +ASCII_6B = KEY_K +ASCII_6C = KEY_L +ASCII_6D = KEY_M +ASCII_6E = KEY_N +ASCII_6F = KEY_O +ASCII_70 = KEY_P +ASCII_71 = KEY_Q +ASCII_72 = KEY_R +ASCII_73 = KEY_S +ASCII_74 = KEY_T +ASCII_75 = KEY_U +ASCII_76 = KEY_V +ASCII_77 = KEY_W +ASCII_78 = KEY_X +ASCII_79 = KEY_Z +ASCII_7A = KEY_Y +ASCII_7B = KEY_B, MODIFIERKEY_RIGHT_ALT +ASCII_7C = KEY_W, MODIFIERKEY_RIGHT_ALT +ASCII_7D = KEY_N, MODIFIERKEY_RIGHT_ALT +// THIS IS JUST FOR LINUX, WINDOWS WOULD BE KEY_1, MODIFIERKEY_RIGHT_ALT +ASCII_7E = KEY_A, MODIFIERKEY_RIGHT_ALT +ASCII_7F = KEY_BACKSPACE diff --git a/resources/de.properties b/resources/de.properties new file mode 100644 index 0000000..f36fa5a --- /dev/null +++ b/resources/de.properties @@ -0,0 +1,293 @@ +//LAYOUT_GERMAN +//Credits go to webdirector for patch (02/17/2013) +KEY_NON_US_100 = 100 + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + +ASCII_20 = KEY_SPACE +// 32 +ASCII_21 = KEY_1, MODIFIERKEY_SHIFT +// 33 ! +ASCII_22 = KEY_2, MODIFIERKEY_SHIFT +// 34 " +ASCII_23 = KEY_BACKSLASH +// 35 # ?? +ASCII_24 = KEY_4, MODIFIERKEY_SHIFT +// 36 $ +ASCII_25 = KEY_5, MODIFIERKEY_SHIFT +// 37 % +ASCII_26 = KEY_6, MODIFIERKEY_SHIFT +// 38 & +ASCII_27 = KEY_BACKSLASH, MODIFIERKEY_SHIFT +// 39 ' +ASCII_28 = KEY_8, MODIFIERKEY_SHIFT +// 40 ( +ASCII_29 = KEY_9, MODIFIERKEY_SHIFT +// 41 ) +ASCII_2A = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT +// 42 * +ASCII_2B = KEY_RIGHT_BRACE +// 43 + +ASCII_2C = KEY_COMMA +// 44 , +ASCII_2D = KEY_SLASH +// 45 - +ASCII_2E = KEY_PERIOD +// 46 . +ASCII_2F = KEY_7, MODIFIERKEY_SHIFT +// 47 / +ASCII_30 = KEY_0 +// 48 0 +ASCII_31 = KEY_1 +// 49 1 +ASCII_32 = KEY_2 +// 50 2 +ASCII_33 = KEY_3 +// 51 3 +ASCII_34 = KEY_4 +// 52 4 +ASCII_35 = KEY_5 +// 53 5 +ASCII_36 = KEY_6 +// 54 6 +ASCII_37 = KEY_7 +// 55 7 +ASCII_38 = KEY_8 +// 55 8 +ASCII_39 = KEY_9 +// 57 9 +ASCII_3A = KEY_PERIOD, MODIFIERKEY_SHIFT +// 58 : +ASCII_3B = KEY_COMMA, MODIFIERKEY_SHIFT +// 59 ; +ASCII_3C = KEY_NON_US_100 +// 60 < +ASCII_3D = KEY_0, MODIFIERKEY_SHIFT +// 61 = +ASCII_3E = KEY_NON_US_100, MODIFIERKEY_SHIFT +// 62 > +ASCII_3F = KEY_MINUS, MODIFIERKEY_SHIFT +// 63 ? +ASCII_40 = KEY_Q, MODIFIERKEY_RIGHT_ALT +// 64 @ +ASCII_41 = KEY_A, MODIFIERKEY_SHIFT +// 65 A +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +// 66 B +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +// 67 C +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +// 68 D +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +// 69 E +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +// 70 F +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +// 71 G +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +// 72 H +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +// 73 I +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +// 74 J +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +// 75 K +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +// 76 L +ASCII_4D = KEY_M, MODIFIERKEY_SHIFT +// 77 M +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +// 78 N +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +// 79 O +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +// 80 P +ASCII_51 = KEY_Q, MODIFIERKEY_SHIFT +// 81 Q +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +// 82 R +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +// 83 S +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +// 84 T +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +// 85 U +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +// 86 V +ASCII_57 = KEY_W, MODIFIERKEY_SHIFT +// 87 W +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +// 88 X +ASCII_59 = KEY_Z, MODIFIERKEY_SHIFT +// 89 Y +ASCII_5A = KEY_Y, MODIFIERKEY_SHIFT +// 90 Z +ASCII_5B = KEY_8, MODIFIERKEY_RIGHT_ALT +// 91 [ +ASCII_5C = KEY_MINUS, MODIFIERKEY_RIGHT_ALT +// 92 +ASCII_5D = KEY_9, MODIFIERKEY_RIGHT_ALT +// 93 ] +ASCII_5E = KEY_TILDE +// 94 ^ +ASCII_5F = KEY_SLASH, MODIFIERKEY_SHIFT +// 95 _ +ASCII_60 = KEY_EQUAL, MODIFIERKEY_SHIFT +//GRAVE_ACCENT_BITS + KEY_SPACE +// 96 ` +ASCII_61 = KEY_A +// 97 a +ASCII_62 = KEY_B +// 98 b +ASCII_63 = KEY_C +// 99 c +ASCII_64 = KEY_D +// 100 d +ASCII_65 = KEY_E +// 101 e +ASCII_66 = KEY_F +// 102 f +ASCII_67 = KEY_G +// 103 g +ASCII_68 = KEY_H +// 104 h +ASCII_69 = KEY_I +// 105 i +ASCII_6A = KEY_J +// 106 j +ASCII_6B = KEY_K +// 107 k +ASCII_6C = KEY_L +// 108 l +ASCII_6D = KEY_M +// 109 m +ASCII_6E = KEY_N +// 110 n +ASCII_6F = KEY_O +// 111 o +ASCII_70 = KEY_P +// 112 p +ASCII_71 = KEY_Q +// 113 q +ASCII_72 = KEY_R +// 114 r +ASCII_73 = KEY_S +// 115 s +ASCII_74 = KEY_T +// 116 t +ASCII_75 = KEY_U +// 117 u +ASCII_76 = KEY_V +// 118 v +ASCII_77 = KEY_W +// 119 w +ASCII_78 = KEY_X +// 120 x +ASCII_79 = KEY_Z +// 121 y +ASCII_7A = KEY_Y +// 122 z +ASCII_7B = KEY_7, MODIFIERKEY_RIGHT_ALT +// 123 { +ASCII_7C = KEY_NON_US_100, MODIFIERKEY_RIGHT_ALT +// 124 | +ASCII_7D = KEY_0, MODIFIERKEY_RIGHT_ALT +// 125 } +ASCII_7E = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT +// 126 ~ +ASCII_7F = KEY_BACKSPACE +// 127 +ISO_8859_1_A0 = KEY_SPACE +// 160 Nonbreakng Space +ISO_8859_1_A4 = KEY_E, MODIFIERKEY_RIGHT_ALT +// 164 ¤ Currency Sign +ISO_8859_1_A7 = KEY_3, MODIFIERKEY_SHIFT +// 167 § SECTION SIGN +ISO_8859_1_B0 = KEY_TILDE, MODIFIERKEY_SHIFT +// 176 ° DEGREE SIGN +ISO_8859_1_B2 = KEY_2, MODIFIERKEY_RIGHT_ALT +// 178 ² SUPERSCRIPT TWO +ISO_8859_1_B3 = KEY_3, MODIFIERKEY_RIGHT_ALT +// 179 ³ SUPERSCRIPT THREE +//ISO_8859_1_C0 = GRAVE_ACCENT_BITS + KEY_A, MODIFIERKEY_SHIFT +// 192 À A GRAVE +//ISO_8859_1_C1 = ACUTE_ACCENT_BITS + KEY_A, MODIFIERKEY_SHIFT +// 193 Á A ACUTE +//ISO_8859_1_C2 = CIRCUMFLEX_BITS = + KEY_A, MODIFIERKEY_SHIFT +// 194  A CIRCUMFLEX +ISO_8859_1_C4 = KEY_QUOTE, MODIFIERKEY_SHIFT +// 196 Ä A DIAERESIS +//ISO_8859_1_C8 = GRAVE_ACCENT_BITS + KEY_E, MODIFIERKEY_SHIFT +// 200 È E GRAVE +//ISO_8859_1_C9 = ACUTE_ACCENT_BITS + KEY_E, MODIFIERKEY_SHIFT +// 201 É E ACUTE +//ISO_8859_1_CA = CIRCUMFLEX_BITS + KEY_E, MODIFIERKEY_SHIFT +// 202 Ê E CIRCUMFLEX +//ISO_8859_1_CC = GRAVE_ACCENT_BITS + KEY_I, MODIFIERKEY_SHIFT +// 204 Ì I GRAVE +//ISO_8859_1_CD = ACUTE_ACCENT_BITS + KEY_I, MODIFIERKEY_SHIFT +// 205 Í I ACUTE +//ISO_8859_1_CE = CIRCUMFLEX_BITS + KEY_I, MODIFIERKEY_SHIFT +// 206 Î I CIRCUMFLEX +//ISO_8859_1_D2 = GRAVE_ACCENT_BITS + KEY_O, MODIFIERKEY_SHIFT +// 210 Ò O GRAVE +//ISO_8859_1_D3 = ACUTE_ACCENT_BITS + KEY_O, MODIFIERKEY_SHIFT +// 211 Ó O ACUTE +//ISO_8859_1_D4 = CIRCUMFLEX_BITS + KEY_O, MODIFIERKEY_SHIFT +// 212 Ô O CIRCUMFLEX +ISO_8859_1_D6 = KEY_SEMICOLON, MODIFIERKEY_SHIFT +// 214 Ö O DIAERESIS +//ISO_8859_1_D9 = GRAVE_ACCENT_BITS + KEY_U, MODIFIERKEY_SHIFT +// 217 Ù U GRAVE +//ISO_8859_1_DA = ACUTE_ACCENT_BITS + KEY_U, MODIFIERKEY_SHIFT +// 218 Ú U ACUTE +//ISO_8859_1_DB = CIRCUMFLEX_BITS + KEY_U, MODIFIERKEY_SHIFT +// 219 Û U CIRCUMFLEX +ISO_8859_1_DC = KEY_LEFT_BRACE, MODIFIERKEY_SHIFT +// 220 Ü U DIAERESIS +//ISO_8859_1_DD = ACUTE_ACCENT_BITS + KEY_Z, MODIFIERKEY_SHIFT +// 221 Ý Y ACUTE +ISO_8859_1_DF = KEY_MINUS +// 223 ß SHARP S +//ISO_8859_1_E0 = GRAVE_ACCENT_BITS + KEY_A +// 224 à a GRAVE +//ISO_8859_1_E1 = ACUTE_ACCENT_BITS + KEY_A +// 225 á a ACUTE +//ISO_8859_1_E2 = CIRCUMFLEX_BITS + KEY_A +// 226 â a CIRCUMFLEX +ISO_8859_1_E4 = KEY_QUOTE +// 228 ä a DIAERESIS +//ISO_8859_1_E8 = GRAVE_ACCENT_BITS + KEY_E +// 232 è e GRAVE +//ISO_8859_1_E9 = ACUTE_ACCENT_BITS + KEY_E +// 233 é e ACUTE +//ISO_8859_1_EA = CIRCUMFLEX_BITS + KEY_E +// 234 ê e CIRCUMFLEX +//ISO_8859_1_EC = GRAVE_ACCENT_BITS + KEY_I +// 236 ì i GRAVE +//ISO_8859_1_ED = ACUTE_ACCENT_BITS + KEY_I +// 237 í i ACUTE +//ISO_8859_1_EE = CIRCUMFLEX_BITS + KEY_I +// 238 î i CIRCUMFLEX +//ISO_8859_1_F2 = GRAVE_ACCENT_BITS + KEY_O +// 242 ò o GRAVE +//ISO_8859_1_F3 = ACUTE_ACCENT_BITS + KEY_O +// 243 ó o ACUTE +//ISO_8859_1_F4 = CIRCUMFLEX_BITS + KEY_O +// 244 ô o CIRCUMFLEX +ISO_8859_1_F6 = KEY_SEMICOLON +// 246 ö o DIAERESIS +//ISO_8859_1_F9 = GRAVE_ACCENT_BITS + KEY_U +// 249 ù u GRAVE +//ISO_8859_1_FA = ACUTE_ACCENT_BITS + KEY_U +// 250 ú u ACUTE +//ISO_8859_1_FB = CIRCUMFLEX_BITS + KEY_U +// 251 û u CIRCUMFLEX +ISO_8859_1_FC = KEY_LEFT_BRACE +// 252 ü u DIAERESIS +//ISO_8859_1_FD = ACUTE_ACCENT_BITS + KEY_Z +// 253 ý y ACUTE +UNICODE_20AC = KEY_E, MODIFIERKEY_RIGHT_ALT +// € Euro Sign + diff --git a/resources/dk.properties b/resources/dk.properties new file mode 100644 index 0000000..35e4714 --- /dev/null +++ b/resources/dk.properties @@ -0,0 +1,341 @@ +//LAYOUT_DANISH +KEY_NON_US_100 = 100 + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + + +ASCII_20 = KEY_SPACE +// 32 +ASCII_21 = KEY_1, MODIFIERKEY_SHIFT +// 33 ! +ASCII_22 = KEY_2, MODIFIERKEY_SHIFT +// 34 " +ASCII_23 = KEY_3, MODIFIERKEY_SHIFT +// 35 # +ASCII_24 = KEY_4, MODIFIERKEY_RIGHT_ALT +// 36 $ +ASCII_25 = KEY_5, MODIFIERKEY_SHIFT +// 37 % +ASCII_26 = KEY_6, MODIFIERKEY_SHIFT +// 38 & +ASCII_27 = KEY_BACKSLASH +// 39 ' +ASCII_28 = KEY_8, MODIFIERKEY_SHIFT +// 40 ( +ASCII_29 = KEY_9, MODIFIERKEY_SHIFT +// 41 ) +ASCII_2A = KEY_BACKSLASH, MODIFIERKEY_SHIFT +// 42 * +ASCII_2B = KEY_MINUS +// 43 + +ASCII_2C = KEY_COMMA +// 44 , +ASCII_2D = KEY_SLASH +// 45 - +ASCII_2E = KEY_PERIOD +// 46 . +ASCII_2F = KEY_7, MODIFIERKEY_SHIFT +// 47 / +ASCII_30 = KEY_0 +// 48 0 +ASCII_31 = KEY_1 +// 49 1 +ASCII_32 = KEY_2 +// 50 2 +ASCII_33 = KEY_3 +// 51 3 +ASCII_34 = KEY_4 +// 52 4 +ASCII_35 = KEY_5 +// 53 5 +ASCII_36 = KEY_6 +// 54 6 +ASCII_37 = KEY_7 +// 55 7 +ASCII_38 = KEY_8 +// 55 8 +ASCII_39 = KEY_9 +// 57 9 +ASCII_3A = KEY_PERIOD, MODIFIERKEY_SHIFT +// 58 : +ASCII_3B = KEY_COMMA, MODIFIERKEY_SHIFT +// 59 ; +ASCII_3C = KEY_NON_US_100 +// 60 < +ASCII_3D = KEY_0, MODIFIERKEY_SHIFT +// 61 = +ASCII_3E = KEY_NON_US_100, MODIFIERKEY_SHIFT +// 62 > +ASCII_3F = KEY_MINUS, MODIFIERKEY_SHIFT +// 63 ? +ASCII_40 = KEY_2, MODIFIERKEY_RIGHT_ALT +// 64 @ +ASCII_41 = KEY_A, MODIFIERKEY_SHIFT +// 65 A +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +// 66 B +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +// 67 C +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +// 68 D +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +// 69 E +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +// 70 F +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +// 71 G +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +// 72 H +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +// 73 I +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +// 74 J +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +// 75 K +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +// 76 L +ASCII_4D = KEY_M, MODIFIERKEY_SHIFT +// 77 M +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +// 78 N +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +// 79 O +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +// 80 P +ASCII_51 = KEY_Q, MODIFIERKEY_SHIFT +// 81 Q +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +// 82 R +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +// 83 S +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +// 84 T +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +// 85 U +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +// 86 V +ASCII_57 = KEY_W, MODIFIERKEY_SHIFT +// 87 W +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +// 88 X +ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT +// 89 Y +ASCII_5A = KEY_Z, MODIFIERKEY_SHIFT +// 90 Z +ASCII_5B = KEY_8, MODIFIERKEY_RIGHT_ALT +// 91 [ +ASCII_5C = KEY_NON_US_100, MODIFIERKEY_RIGHT_ALT +// 92 +ASCII_5D = KEY_9, MODIFIERKEY_RIGHT_ALT +// 93 ] +//ASCII_5E = CIRCUMFLEX_BITS + KEY_SPACE +// 94 ^ +ASCII_5F = KEY_SLASH, MODIFIERKEY_SHIFT +// 95 _ +//ASCII_60 = GRAVE_ACCENT_BITS + KEY_SPACE +// 96 ` +ASCII_61 = KEY_A +// 97 a +ASCII_62 = KEY_B +// 98 b +ASCII_63 = KEY_C +// 99 c +ASCII_64 = KEY_D +// 100 d +ASCII_65 = KEY_E +// 101 e +ASCII_66 = KEY_F +// 102 f +ASCII_67 = KEY_G +// 103 g +ASCII_68 = KEY_H +// 104 h +ASCII_69 = KEY_I +// 105 i +ASCII_6A = KEY_J +// 106 j +ASCII_6B = KEY_K +// 107 k +ASCII_6C = KEY_L +// 108 l +ASCII_6D = KEY_M +// 109 m +ASCII_6E = KEY_N +// 110 n +ASCII_6F = KEY_O +// 111 o +ASCII_70 = KEY_P +// 112 p +ASCII_71 = KEY_Q +// 113 q +ASCII_72 = KEY_R +// 114 r +ASCII_73 = KEY_S +// 115 s +ASCII_74 = KEY_T +// 116 t +ASCII_75 = KEY_U +// 117 u +ASCII_76 = KEY_V +// 118 v +ASCII_77 = KEY_W +// 119 w +ASCII_78 = KEY_X +// 120 x +ASCII_79 = KEY_Y +// 121 y +ASCII_7A = KEY_Z +// 122 z +ASCII_7B = KEY_7, MODIFIERKEY_RIGHT_ALT +// 123 { +ASCII_7C = KEY_EQUAL, MODIFIERKEY_RIGHT_ALT +// 124 | +ASCII_7D = KEY_0, MODIFIERKEY_RIGHT_ALT +// 125 } +ASCII_7E = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT +// 126 ~ (not tested) +ASCII_7F = KEY_BACKSPACE +// 127 + +ISO_8859_1_A0 = KEY_SPACE +// 160 Nonbreakng Space +ISO_8859_1_A3 = KEY_3, MODIFIERKEY_RIGHT_ALT +// 163 £ Pound Sign +ISO_8859_1_A4 = KEY_4, MODIFIERKEY_SHIFT +// 164 ¤ Currency Sign +ISO_8859_1_A7 = KEY_TILDE, MODIFIERKEY_SHIFT +// 167 § SECTION SIGN +ISO_8859_1_A8 = DIAERESIS_BITS + KEY_SPACE +// 168 ¨ DIAERESIS +ISO_8859_1_AB = KEY_4 +// 171 « LEFT DOUBLE ANGLE QUOTE +ISO_8859_1_B4 = ACUTE_ACCENT_BITS + KEY_SPACE +// 180 ´ ACUTE ACCENT +ISO_8859_1_B5 = KEY_M, MODIFIERKEY_RIGHT_ALT +// 181 µ MICRO SIGN +ISO_8859_1_BD = KEY_TILDE +// 189 ½ FRACTION ONE HALF +//ISO_8859_1_C0 = GRAVE_ACCENT_BITS + KEY_A, MODIFIERKEY_SHIFT +// 192 À A GRAVE +//ISO_8859_1_C1 = ACUTE_ACCENT_BITS + KEY_A, MODIFIERKEY_SHIFT +// 193 Á A ACUTE +//ISO_8859_1_C2 = CIRCUMFLEX_BITS + KEY_A, MODIFIERKEY_SHIFT +// 194  A CIRCUMFLEX +//ISO_8859_1_C3 = TILDE_BITS + KEY_A, MODIFIERKEY_SHIFT +// 195 à A TILDE +//ISO_8859_1_C4 = DIAERESIS_BITS + KEY_A, MODIFIERKEY_SHIFT +// 196 Ä A DIAERESIS +ISO_8859_1_C5 = KEY_LEFT_BRACE, MODIFIERKEY_SHIFT +// 197 Å A RING ABOVE +ISO_8859_1_C6 = KEY_SEMICOLON, MODIFIERKEY_SHIFT +// 198 Æ AE +//ISO_8859_1_C8 = GRAVE_ACCENT_BITS + KEY_E, MODIFIERKEY_SHIFT +// 200 È E GRAVE +//ISO_8859_1_C9 = ACUTE_ACCENT_BITS + KEY_E, MODIFIERKEY_SHIFT +// 201 É E ACUTE +//ISO_8859_1_CA = CIRCUMFLEX_BITS + KEY_E, MODIFIERKEY_SHIFT +// 202 Ê E CIRCUMFLEX +//ISO_8859_1_CB = DIAERESIS_BITS + KEY_E, MODIFIERKEY_SHIFT +// 203 Ë E DIAERESIS +//ISO_8859_1_CC = GRAVE_ACCENT_BITS + KEY_I, MODIFIERKEY_SHIFT +// 204 Ì I GRAVE +//ISO_8859_1_CD = ACUTE_ACCENT_BITS + KEY_I, MODIFIERKEY_SHIFT +// 205 Í I ACUTE +//ISO_8859_1_CE = CIRCUMFLEX_BITS + KEY_I, MODIFIERKEY_SHIFT +// 206 Î I CIRCUMFLEX +//ISO_8859_1_CF = DIAERESIS_BITS + KEY_I, MODIFIERKEY_SHIFT +// 207 Ï I DIAERESIS +//ISO_8859_1_D0 = KEY_D, MODIFIERKEY_RIGHT_ALT, MODIFIERKEY_SHIFT +// 208 Ð ETH +//ISO_8859_1_D1 = TILDE_BITS + KEY_N, MODIFIERKEY_SHIFT +// 209 Ñ N TILDE +//ISO_8859_1_D2 = GRAVE_ACCENT_BITS + KEY_O, MODIFIERKEY_SHIFT +// 210 Ò O GRAVE +//ISO_8859_1_D3 = ACUTE_ACCENT_BITS + KEY_O, MODIFIERKEY_SHIFT +// 211 Ó O ACUTE +//ISO_8859_1_D4 = CIRCUMFLEX_BITS + KEY_O, MODIFIERKEY_SHIFT +// 212 Ô O CIRCUMFLEX +//ISO_8859_1_D5 = TILDE_BITS + KEY_O, MODIFIERKEY_SHIFT +// 213 Õ O TILDE +//ISO_8859_1_D6 = DIAERESIS_BITS + KEY_O, MODIFIERKEY_SHIFT +// 214 Ö O DIAERESIS +ISO_8859_1_D8 = KEY_QUOTE, MODIFIERKEY_SHIFT +// 216 Ø O STROKE +//ISO_8859_1_D9 = GRAVE_ACCENT_BITS + KEY_U, MODIFIERKEY_SHIFT +// 217 Ù U GRAVE +//ISO_8859_1_DA = ACUTE_ACCENT_BITS + KEY_U, MODIFIERKEY_SHIFT +// 218 Ú U ACUTE +//ISO_8859_1_DB = CIRCUMFLEX_BITS + KEY_U, MODIFIERKEY_SHIFT +// 219 Û U CIRCUMFLEX +//ISO_8859_1_DC = DIAERESIS_BITS + KEY_U, MODIFIERKEY_SHIFT +// 220 Ü U DIAERESIS +//ISO_8859_1_DD = ACUTE_ACCENT_BITS + KEY_Y, MODIFIERKEY_SHIFT +// 221 Ý Y ACUTE +//ISO_8859_1_DE = KEY_T, MODIFIERKEY_RIGHT_ALT, MODIFIERKEY_SHIFT +// 222 Þ THORN +ISO_8859_1_DF = KEY_S, MODIFIERKEY_RIGHT_ALT +// 223 ß SHARP S +//ISO_8859_1_E0 = GRAVE_ACCENT_BITS + KEY_A +// 224 à a GRAVE +//ISO_8859_1_E1 = ACUTE_ACCENT_BITS + KEY_A +// 225 á a ACUTE +//ISO_8859_1_E2 = CIRCUMFLEX_BITS + KEY_A +// 226 â a CIRCUMFLEX +//ISO_8859_1_E3 = TILDE_BITS + KEY_A +// 227 ã a TILDE +//ISO_8859_1_E4 = DIAERESIS_BITS + KEY_A +// 228 ä a DIAERESIS +ISO_8859_1_E5 = KEY_LEFT_BRACE +// 229 å a RING ABOVE +ISO_8859_1_E6 = KEY_SEMICOLON +// 230 æ ae +//ISO_8859_1_E8 = GRAVE_ACCENT_BITS + KEY_E +// 232 è e GRAVE +//ISO_8859_1_E9 = ACUTE_ACCENT_BITS + KEY_E +// 233 é e ACUTE +//ISO_8859_1_EA = CIRCUMFLEX_BITS + KEY_E +// 234 ê e CIRCUMFLEX +//ISO_8859_1_EB = DIAERESIS_BITS + KEY_E +// 235 ë e DIAERESIS +//ISO_8859_1_EC = GRAVE_ACCENT_BITS + KEY_I +// 236 ì i GRAVE +//ISO_8859_1_ED = ACUTE_ACCENT_BITS + KEY_I +// 237 í i ACUTE +//ISO_8859_1_EE = CIRCUMFLEX_BITS + KEY_I +// 238 î i CIRCUMFLEX +//ISO_8859_1_EF = DIAERESIS_BITS + KEY_I +// 239 ï i DIAERESIS +ISO_8859_1_F0 = KEY_D, MODIFIERKEY_RIGHT_ALT +// 240 ð ETH +//ISO_8859_1_F1 = TILDE_BITS + KEY_N +// 241 ñ n TILDE +//ISO_8859_1_F2 = GRAVE_ACCENT_BITS + KEY_O +// 242 ò o GRAVE +//ISO_8859_1_F3 = ACUTE_ACCENT_BITS + KEY_O +// 243 ó o ACUTE +//ISO_8859_1_F4 = CIRCUMFLEX_BITS + KEY_O +// 244 ô o CIRCUMFLEX +//ISO_8859_1_F5 = TILDE_BITS + KEY_O +// 245 õ o TILDE +//ISO_8859_1_F6 = DIAERESIS_BITS + KEY_O +// 246 ö o DIAERESIS +ISO_8859_1_F8 = KEY_QUOTE +// 248 ø o STROKE +//ISO_8859_1_F9 = GRAVE_ACCENT_BITS + KEY_U +// 249 ù u GRAVE +//ISO_8859_1_FA = ACUTE_ACCENT_BITS + KEY_U +// 250 ú u ACUTE +//ISO_8859_1_FB = CIRCUMFLEX_BITS + KEY_U +// 251 û u CIRCUMFLEX +//ISO_8859_1_FC = DIAERESIS_BITS + KEY_U +// 252 ü u DIAERESIS +//ISO_8859_1_FD = ACUTE_ACCENT_BITS + KEY_Y +// 253 ý y ACUTE +ISO_8859_1_FE = KEY_T, MODIFIERKEY_RIGHT_ALT +// 254 þ THORN +//ISO_8859_1_FF = DIAERESIS_BITS + KEY_Y +// 255 ÿ y DIAERESIS +UNICODE_20AC = KEY_E, MODIFIERKEY_RIGHT_ALT +// € Euro Sign + diff --git a/resources/es.properties b/resources/es.properties new file mode 100644 index 0000000..203ef0e --- /dev/null +++ b/resources/es.properties @@ -0,0 +1,219 @@ +// Author: Midnitesnake +// 01-11-2014 +// LAYOUT_ESPANOL +// Based from Italian Keymap +// Thanks to Jaime.AlvarezdeAldecoa for patches + +KEY_NON_US_100 = 100 + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + + +ASCII_20 = KEY_SPACE +// 32 +ASCII_21 = KEY_1, MODIFIERKEY_SHIFT +// 33 ! +ASCII_22 = KEY_2, MODIFIERKEY_SHIFT +// 34 “" +ASCII_23 = KEY_3, MODIFIERKEY_RIGHT_ALT +// 35 # +ASCII_24 = KEY_4, MODIFIERKEY_SHIFT +// 36 $ +ASCII_25 = KEY_5, MODIFIERKEY_SHIFT +// 37 % +ASCII_26 = KEY_6, MODIFIERKEY_SHIFT +// 38 & +ASCII_27 = KEY_MINUS +// 39 ‘ +ASCII_28 = KEY_8, MODIFIERKEY_SHIFT +// 40 ( +ASCII_29 = KEY_9, MODIFIERKEY_SHIFT +// 41 ) +ASCII_2A = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT +// 42 * +ASCII_2B = KEY_RIGHT_BRACE +// 43 + +ASCII_2C = KEY_COMMA +// 44 , +ASCII_2D = KEY_SLASH +// 45 – +ASCII_2E = KEY_PERIOD +// 46 . +ASCII_2F = KEY_7, MODIFIERKEY_SHIFT +// 47 / +ASCII_30 = KEY_0 +// 48 0 +ASCII_31 = KEY_1 +// 49 1 +ASCII_32 = KEY_2 +// 50 2 +ASCII_33 = KEY_3 +// 51 3 +ASCII_34 = KEY_4 +// 52 4 +ASCII_35 = KEY_5 +// 53 5 +ASCII_36 = KEY_6 +// 54 6 +ASCII_37 = KEY_7 +// 55 7 +ASCII_38 = KEY_8 +// 56 8 +ASCII_39 = KEY_9 +// 57 9 +ASCII_3A = KEY_PERIOD, MODIFIERKEY_SHIFT +// 58 : +ASCII_3B = KEY_COMMA, MODIFIERKEY_SHIFT +// 59 ; +ASCII_3C = KEY_NON_US_100 +// 60 < +ASCII_3D = KEY_0, MODIFIERKEY_SHIFT +// 61 = +ASCII_3E = KEY_NON_US_100, MODIFIERKEY_SHIFT +// 62 > +ASCII_3F = KEY_MINUS, MODIFIERKEY_SHIFT +// 63 ? +ASCII_40 = KEY_2, MODIFIERKEY_RIGHT_ALT +// 64 @ +ASCII_41 = KEY_A, MODIFIERKEY_SHIFT +// 65 A +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +// 66 B +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +// 67 C +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +// 68 D +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +// 69 E +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +// 70 F +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +// 71 G +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +// 72 H +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +// 73 I +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +// 74 J +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +// 75 K +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +// 76 L +ASCII_4D = KEY_M, MODIFIERKEY_SHIFT +// 77 M +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +// 78 N +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +// 79 O +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +// 80 P +ASCII_51 = KEY_Q, MODIFIERKEY_SHIFT +// 81 Q +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +// 82 R +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +// 83 S +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +// 84 T +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +// 85 U +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +// 86 V +ASCII_57 = KEY_W, MODIFIERKEY_SHIFT +// 87 W +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +// 88 X +ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT +// 89 Y +ASCII_5A = KEY_Z, MODIFIERKEY_SHIFT +// 90 Z +ASCII_5B = KEY_LEFT_BRACE, MODIFIERKEY_RIGHT_ALT +// 91 [ +ASCII_5C = KEY_TILDE, MODIFIERKEY_RIGHT_ALT +// 92 \ + +ASCII_5D = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT +// 93 ] +ASCII_5E = KEY_LEFT_BRACE, MODIFIERKEY_SHIFT +// 94 ^ +ASCII_5F = KEY_SLASH, MODIFIERKEY_SHIFT +// 95 _ + +// ascii 60, 96: accento grave, non mappato +ASCII_61 = KEY_A +// 97 a +ASCII_62 = KEY_B +// 98 b +ASCII_63 = KEY_C +// 99 c +ASCII_64 = KEY_D +// 100 d +ASCII_65 = KEY_E +// 101 e +ASCII_66 = KEY_F +// 102 f +ASCII_67 = KEY_G +// 103 g +ASCII_68 = KEY_H +// 104 h +ASCII_69 = KEY_I +// 105 i +ASCII_6A = KEY_J +// 106 j +ASCII_6B = KEY_K +// 107 k +ASCII_6C = KEY_L +// 108 l +ASCII_6D = KEY_M +// 109 m +ASCII_6E = KEY_N +// 110 n +ASCII_6F = KEY_O +// 111 o +ASCII_70 = KEY_P +// 112 p +ASCII_71 = KEY_Q +// 113 q +ASCII_72 = KEY_R +// 114 r +ASCII_73 = KEY_S +// 115 s +ASCII_74 = KEY_T +// 116 t +ASCII_75 = KEY_U +// 117 u +ASCII_76 = KEY_V +// 118 v +ASCII_77 = KEY_W +// 119 w +ASCII_78 = KEY_X +// 120 x +ASCII_79 = KEY_Y +// 121 y +ASCII_7A = KEY_Z +// 122 z +ASCII_7B = KEY_LEFT_BRACE, MODIFIERKEY_RIGHT_ALT, MODIFIERKEY_SHIFT +// 123 { +ASCII_7C = KEY_1, MODIFIERKEY_RIGHT_ALT +// 124 | +ASCII_7D = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT, MODIFIERKEY_SHIFT +// 125 } +ASCII_7E = KEY_4, MODIFIERKEY_RIGHT_ALT +// 126 ~ +ISO_8859_1_BA = KEY_TILDE +// 127 º + +// ascii 7E, 126: tilde, non mappato +ISO_8859_1_E0 = KEY_QUOTE +// 192 a grave +ISO_8859_1_E8 = KEY_LEFT_BRACE +// 232 e grave +ISO_8859_1_E9 = KEY_LEFT_BRACE, MODIFIERKEY_SHIFT +// 233 e acuta +ISO_8859_1_EC = KEY_EQUAL +// 236 i grave +ISO_8859_1_F2 = KEY_SEMICOLON +// 242 o grave +ISO_8859_1_F9 = KEY_BACKSLASH +// 249 u grave diff --git a/resources/fi.properties b/resources/fi.properties new file mode 100644 index 0000000..4a257d2 --- /dev/null +++ b/resources/fi.properties @@ -0,0 +1,113 @@ +//LANGUAGE_FINLAND +//translation: ziolity (01/08/2014) +KEY_NON_US_100 = 100 + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + +ISO_8859_1_A7 = KEY_TILDE +ASCII_20 = KEY_SPACE +ASCII_30 = KEY_0 +ASCII_31 = KEY_1 +ASCII_32 = KEY_2 +ASCII_33 = KEY_3 +ASCII_34 = KEY_4 +ASCII_35 = KEY_5 +ASCII_36 = KEY_6 +ASCII_37 = KEY_7 +ASCII_38 = KEY_8 +ASCII_39 = KEY_9 +ASCII_2B = KEY_MINUS +ISO_8859_1_B4 = KEY_EQUAL +ASCII_71 = KEY_Q +ASCII_77 = KEY_W +ASCII_65 = KEY_E +ASCII_72 = KEY_R +ASCII_74 = KEY_T +ASCII_79 = KEY_Y +ASCII_75 = KEY_U +ASCII_69 = KEY_I +ASCII_6F = KEY_O +ASCII_70 = KEY_P +ASCII_61 = KEY_A +ISO_8859_1_E4 = KEY_RIGHT_BRACE +ASCII_73 = KEY_S +ASCII_64 = KEY_D +ASCII_66 = KEY_F +ASCII_67 = KEY_G +ASCII_68 = KEY_H +ASCII_6A = KEY_J +ASCII_6B = KEY_K +ASCII_6C = KEY_L +ISO_8859_1_F6 = KEY_SEMICOLON +ISO_8859_1_E4 = KEY_QUOTE +ASCII_27 = KEY_BACKSLASH +ASCII_3C = KEY_NON_US_100 +ASCII_7A = KEY_Z +ASCII_78 = KEY_X +ASCII_63 = KEY_C +ASCII_76 = KEY_V +ASCII_62 = KEY_B +ASCII_6E = KEY_N +ASCII_6D = KEY_M +ASCII_2C = KEY_COMMA +ASCII_2E = KEY_PERIOD +ASCII_2D = KEY_SLASH +ASCII_21 = KEY_1, MODIFIERKEY_SHIFT +ASCII_22 = KEY_2, MODIFIERKEY_SHIFT +ASCII_23 = KEY_3, MODIFIERKEY_SHIFT +ISO_8859_1_A4 = KEY_4, MODIFIERKEY_SHIFT +ASCII_25 = KEY_5, MODIFIERKEY_SHIFT +ASCII_26 = KEY_6, MODIFIERKEY_SHIFT +ASCII_2F = KEY_7, MODIFIERKEY_SHIFT +ASCII_28 = KEY_8, MODIFIERKEY_SHIFT +ASCII_29 = KEY_9, MODIFIERKEY_SHIFT +ASCII_3D = KEY_0, MODIFIERKEY_SHIFT +ASCII_3F = KEY_MINUS, MODIFIERKEY_SHIFT +ASCII_60 = KEY_EQUAL, MODIFIERKEY_SHIFT +ASCII_51 = KEY_Q, MODIFIERKEY_SHIFT +ASCII_57 = KEY_W, MODIFIERKEY_SHIFT +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +ASCII_41 = KEY_A, MODIFIERKEY_SHIFT +ASCII_5E = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +ISO_8859_1_D6 = KEY_SEMICOLON, MODIFIERKEY_SHIFT +ISO_8859_1_C4 = KEY_QUOTE, MODIFIERKEY_SHIFT +ASCII_2A = KEY_BACKSLASH, MODIFIERKEY_SHIFT +ASCII_3E = KEY_NON_US_100, MODIFIERKEY_SHIFT +ASCII_5A = KEY_Z, MODIFIERKEY_SHIFT +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +ASCII_4D = KEY_M, MODIFIERKEY_SHIFT +ASCII_3B = KEY_COMMA, MODIFIERKEY_SHIFT +ASCII_3A = KEY_PERIOD, MODIFIERKEY_SHIFT +ASCII_5F = KEY_SLASH, MODIFIERKEY_SHIFT +ASCII_40 = KEY_2, MODIFIERKEY_RIGHT_ALT +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +ASCII_24 = KEY_4, MODIFIERKEY_RIGHT_ALT +UNICODE_20AC = KEY_E, MODIFIERKEY_RIGHT_ALT +ASCII_7B = KEY_7, MODIFIERKEY_RIGHT_ALT +ASCII_5B = KEY_8, MODIFIERKEY_RIGHT_ALT +ASCII_5D = KEY_9, MODIFIERKEY_RIGHT_ALT +ASCII_7D = KEY_0, MODIFIERKEY_RIGHT_ALT +ASCII_5C = KEY_MINUS, MODIFIERKEY_RIGHT_ALT +ASCII_7E = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT +ASCII_7C = KEY_NON_US_100, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_B5 = KEY_M, MODIFIERKEY_RIGHT_ALT diff --git a/resources/fr.properties b/resources/fr.properties new file mode 100644 index 0000000..54a6941 --- /dev/null +++ b/resources/fr.properties @@ -0,0 +1,225 @@ +// french layout +KEY_NON_US_100 = 100 + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + + +// 32 +ASCII_20 = KEY_SPACE + // 33 ! +ASCII_21 = KEY_SLASH +// 34 " +ASCII_22 = KEY_3 +// 35 # +ASCII_23 = KEY_3, MODIFIERKEY_RIGHT_ALT +// 36 $ +ASCII_24 = KEY_RIGHT_BRACE +// 37 % +ASCII_25 = KEY_QUOTE, MODIFIERKEY_SHIFT +// 38 & +ASCII_26 = KEY_1 +// 39 ' +ASCII_27 = KEY_4 +// 40 ( +ASCII_28 = KEY_5 +// 41 ) +ASCII_29 = KEY_MINUS +// 42 * +ASCII_2A = KEY_BACKSLASH +// 43 + +ASCII_2B = KEY_EQUAL, MODIFIERKEY_SHIFT +// 44 , +ASCII_2C = KEY_M +// 45 - +ASCII_2D = KEY_6 +// 46 . +ASCII_2E = KEY_COMMA, MODIFIERKEY_SHIFT +// 47 / +ASCII_2F = KEY_PERIOD, MODIFIERKEY_SHIFT +// 48 0 +ASCII_30 = KEY_0, MODIFIERKEY_SHIFT +// 49 1 +ASCII_31 = KEY_1, MODIFIERKEY_SHIFT +// 50 2 +ASCII_32 = KEY_2, MODIFIERKEY_SHIFT +// 51 3 +ASCII_33 = KEY_3, MODIFIERKEY_SHIFT +// 52 4 +ASCII_34 = KEY_4, MODIFIERKEY_SHIFT +// 53 5 +ASCII_35 = KEY_5, MODIFIERKEY_SHIFT +// 54 6 +ASCII_36 = KEY_6, MODIFIERKEY_SHIFT +// 55 7 +ASCII_37 = KEY_7, MODIFIERKEY_SHIFT +// 55 8 +ASCII_38 = KEY_8, MODIFIERKEY_SHIFT +// 57 9 +ASCII_39 = KEY_9, MODIFIERKEY_SHIFT +// 58 : +ASCII_3A = KEY_PERIOD +// 59 ; +ASCII_3B = KEY_COMMA +// 60 < +ASCII_3C = KEY_NON_US_100 +// 61 = +ASCII_3D = KEY_EQUAL +// 62 > +ASCII_3E = KEY_NON_US_100, MODIFIERKEY_SHIFT +// 63 ? +ASCII_3F = KEY_M, MODIFIERKEY_SHIFT +// 64 @ +ASCII_40 = KEY_0, MODIFIERKEY_RIGHT_ALT +// 65 A +ASCII_41 = KEY_Q, MODIFIERKEY_SHIFT +// 66 B +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +// 67 C +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +// 68 D +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +// 69 E +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +// 70 F +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +// 71 G +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +// 72 H +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +// 73 I +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +// 74 J +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +// 75 K +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +// 76 L +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +// 77 M +ASCII_4D = KEY_SEMICOLON, MODIFIERKEY_SHIFT +// 78 N +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +// 79 O +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +// 80 P +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +// 81 Q +ASCII_51 = KEY_A, MODIFIERKEY_SHIFT +// 82 R +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +// 83 S +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +// 84 T +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +// 85 U +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +// 86 V +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +// 87 W +ASCII_57 = KEY_Z, MODIFIERKEY_SHIFT +// 88 X +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +// 89 Y +ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT +// 90 Z +ASCII_5A = KEY_W, MODIFIERKEY_SHIFT +// 91 [ +ASCII_5B = KEY_5, MODIFIERKEY_RIGHT_ALT +// 92 +ASCII_5C = KEY_8, MODIFIERKEY_RIGHT_ALT + // 93 ] +ASCII_5D = KEY_MINUS, MODIFIERKEY_RIGHT_ALT +// 94 ^ +ASCII_5E = KEY_9, MODIFIERKEY_RIGHT_ALT +// 95 _ +ASCII_5F = KEY_8 +// 96 ` +ASCII_60 = KEY_7, MODIFIERKEY_RIGHT_ALT +// 97 a +ASCII_61 = KEY_Q +// 98 b +ASCII_62 = KEY_B +// 99 c +ASCII_63 = KEY_C +// 100 d +ASCII_64 = KEY_D +// 101 e +ASCII_65 = KEY_E +// 102 f +ASCII_66 = KEY_F +// 103 g +ASCII_67 = KEY_G +// 104 h +ASCII_68 = KEY_H +// 105 i +ASCII_69 = KEY_I +// 106 j +ASCII_6A = KEY_J +// 107 k +ASCII_6B = KEY_K +// 108 l +ASCII_6C = KEY_L +// 109 m +ASCII_6D = KEY_SEMICOLON +// 110 n +ASCII_6E = KEY_N +// 111 o +ASCII_6F = KEY_O +// 112 p +ASCII_70 = KEY_P +// 113 q +ASCII_71 = KEY_A +// 114 r +ASCII_72 = KEY_R +// 115 s +ASCII_73 = KEY_S +// 116 t +ASCII_74 = KEY_T +// 117 u +ASCII_75 = KEY_U +// 118 v +ASCII_76 = KEY_V +// 119 w +ASCII_77 = KEY_Z +// 120 x +ASCII_78 = KEY_X +// 121 y +ASCII_79 = KEY_Y +// 122 z +ASCII_7A = KEY_W +// 123 { +ASCII_7B = KEY_4, MODIFIERKEY_RIGHT_ALT +// 124 | +ASCII_7C = KEY_6, MODIFIERKEY_RIGHT_ALT +// 125 } +ASCII_7D = KEY_EQUAL, MODIFIERKEY_RIGHT_ALT +// 126 ~ +ASCII_7E = KEY_2, MODIFIERKEY_RIGHT_ALT +// 127 +ASCII_7F = KEY_BACKSPACE +// 160 Nonbreakng Space +ISO_8859_1_A0 = KEY_SPACE +// 163 Ł Pound Sign +ISO_8859_1_A3 = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT +// 164 ř Currency or Euro Sign +ISO_8859_1_A4 = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT +// 167 § SECTION SIGN +ISO_8859_1_A7 = KEY_SLASH, MODIFIERKEY_SHIFT +// 176 ° DEGREE SIGN +ISO_8859_1_B0 = KEY_MINUS, MODIFIERKEY_SHIFT +// 178 ˛ SUPERSCRIPT TWO +ISO_8859_1_B2 = KEY_TILDE +// 181 ľ MICRO SIGN +ISO_8859_1_B5 = KEY_BACKSLASH, MODIFIERKEY_SHIFT +// 224 ŕ  a GRAVE +ISO_8859_1_E0 = KEY_0 +// 231 ç c CEDILLA +ISO_8859_1_E7 = KEY_9 +// 232 č e GRAVE +ISO_8859_1_E8 = KEY_7 +// 233 é e ACUTE +ISO_8859_1_E9 = KEY_2 +// 249 ů u GRAVE +ISO_8859_1_F9 = KEY_COMMA +// Euro Sign +UNICODE_20AC = KEY_E, MODIFIERKEY_RIGHT_ALT diff --git a/resources/gb.properties b/resources/gb.properties new file mode 100644 index 0000000..c8d49d9 --- /dev/null +++ b/resources/gb.properties @@ -0,0 +1,233 @@ +//LAYOUT_UNITED_KINGDOM +//KEY_NON_US_100 = 100 +KEY_BACKSLASH=64 +KEY_ASH=100 + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + + +ASCII_20 = KEY_SPACE +// 32 +ASCII_21 = KEY_1, MODIFIERKEY_SHIFT +// 33 ! +ASCII_22 = KEY_2, MODIFIERKEY_SHIFT +// 34 " +ASCII_5C = KEY_ASH +// 35 # +ASCII_24 = KEY_4, MODIFIERKEY_SHIFT +// 36 $ +ASCII_25 = KEY_5, MODIFIERKEY_SHIFT +// 37 % +ASCII_26 = KEY_7, MODIFIERKEY_SHIFT +// 38 & +ASCII_27 = KEY_QUOTE +// 39 ' +ASCII_28 = KEY_9, MODIFIERKEY_SHIFT +// 40 ( +ASCII_29 = KEY_0, MODIFIERKEY_SHIFT +// 41 ) +ASCII_2A = KEY_8, MODIFIERKEY_SHIFT +// 42 * +ASCII_2B = KEY_EQUAL, MODIFIERKEY_SHIFT +// 43 + +ASCII_2C = KEY_COMMA +// 44 , +ASCII_2D = KEY_MINUS +// 45 - +ASCII_2E = KEY_PERIOD +// 46 . +ASCII_2F = KEY_SLASH +// 47 / +ASCII_30 = KEY_0 +// 48 0 +ASCII_31 = KEY_1 +// 49 1 +ASCII_32 = KEY_2 +// 50 2 +ASCII_33 = KEY_3 +// 51 3 +ASCII_34 = KEY_4 +// 52 4 +ASCII_35 = KEY_5 +// 53 5 +ASCII_36 = KEY_6 +// 54 6 +ASCII_37 = KEY_7 +// 55 7 +ASCII_38 = KEY_8 +// 55 8 +ASCII_39 = KEY_9 +// 57 9 +ASCII_3A = KEY_SEMICOLON, MODIFIERKEY_SHIFT +// 58 : +ASCII_3B = KEY_SEMICOLON +// 59 ; +ASCII_3C = KEY_COMMA, MODIFIERKEY_SHIFT +// 60 < +ASCII_3D = KEY_EQUAL +// 61 = +ASCII_3E = KEY_PERIOD, MODIFIERKEY_SHIFT +// 62 > +ASCII_3F = KEY_SLASH, MODIFIERKEY_SHIFT +// 63 ? +ASCII_40 = KEY_QUOTE, MODIFIERKEY_SHIFT +// 64 @ +ASCII_41 = KEY_A, MODIFIERKEY_SHIFT +// 65 A +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +// 66 B +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +// 67 C +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +// 68 D +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +// 69 E +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +// 70 F +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +// 71 G +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +// 72 H +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +// 73 I +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +// 74 J +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +// 75 K +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +// 76 L +ASCII_4D = KEY_M, MODIFIERKEY_SHIFT +// 77 M +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +// 78 N +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +// 79 O +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +// 80 P +ASCII_51 = KEY_Q, MODIFIERKEY_SHIFT +// 81 Q +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +// 82 R +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +// 83 S +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +// 84 T +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +// 85 U +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +// 86 V +ASCII_57 = KEY_W, MODIFIERKEY_SHIFT +// 87 W +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +// 88 X +ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT +// 89 Y +ASCII_5A = KEY_Z, MODIFIERKEY_SHIFT +// 90 Z +ASCII_5B = KEY_LEFT_BRACE +// 91 [ +ASCII_23 = KEY_BACKSLASH +// 92 +ASCII_5D = KEY_RIGHT_BRACE +// 93 ] +ASCII_5E = KEY_6, MODIFIERKEY_SHIFT +// 94 ^ +ASCII_5F = KEY_MINUS, MODIFIERKEY_SHIFT +// 95 _ +ASCII_60 = KEY_TILDE +// 96 ` +ASCII_61 = KEY_A +// 97 a +ASCII_62 = KEY_B +// 98 b +ASCII_63 = KEY_C +// 99 c +ASCII_64 = KEY_D +// 100 d +ASCII_65 = KEY_E +// 101 e +ASCII_66 = KEY_F +// 102 f +ASCII_67 = KEY_G +// 103 g +ASCII_68 = KEY_H +// 104 h +ASCII_69 = KEY_I +// 105 i +ASCII_6A = KEY_J +// 106 j +ASCII_6B = KEY_K +// 107 k +ASCII_6C = KEY_L +// 108 l +ASCII_6D = KEY_M +// 109 m +ASCII_6E = KEY_N +// 110 n +ASCII_6F = KEY_O +// 111 o +ASCII_70 = KEY_P +// 112 p +ASCII_71 = KEY_Q +// 113 q +ASCII_72 = KEY_R +// 114 r +ASCII_73 = KEY_S +// 115 s +ASCII_74 = KEY_T +// 116 t +ASCII_75 = KEY_U +// 117 u +ASCII_76 = KEY_V +// 118 v +ASCII_77 = KEY_W +// 119 w +ASCII_78 = KEY_X +// 120 x +ASCII_79 = KEY_Y +// 121 y +ASCII_7A = KEY_Z +// 122 z +ASCII_7B = KEY_LEFT_BRACE, MODIFIERKEY_SHIFT +// 123 { +ASCII_7E = KEY_BACKSLASH, MODIFIERKEY_SHIFT +// 124 | +ASCII_7D = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT +// 125 } +ASCII_7C = KEY_ASH, MODIFIERKEY_SHIFT +// 126 ~ +ASCII_7F = KEY_BACKSPACE +// 127 + +ISO_8859_1_A0 = KEY_SPACE +// 160 Nonbreakng Space +ISO_8859_1_A3 = KEY_3, MODIFIERKEY_SHIFT +// 163 £ Pound Sign +ISO_8859_1_A6 = KEY_TILDE, MODIFIERKEY_RIGHT_ALT +// 166 ¦ BROKEN BAR +ISO_8859_1_AC = KEY_TILDE, MODIFIERKEY_SHIFT +// 172 ¬ NOT SIGN +//ISO_8859_1_C1 = KEY_A, MODIFIERKEY_RIGHT_ALT, MODIFIERKEY_SHIFT +// 193 Á A ACUTE +//ISO_8859_1_C9 = KEY_E, MODIFIERKEY_RIGHT_ALT, MODIFIERKEY_SHIFT +// 201 É E ACUTE +//ISO_8859_1_CD = KEY_I, MODIFIERKEY_RIGHT_ALT, MODIFIERKEY_SHIFT +// 205 Í I ACUTE +//ISO_8859_1_D3 = KEY_O, MODIFIERKEY_RIGHT_ALT, MODIFIERKEY_SHIFT +// 211 Ó O ACUTE +//ISO_8859_1_DA = KEY_U, MODIFIERKEY_RIGHT_ALT, MODIFIERKEY_SHIFT +// 218 Ú U ACUTE +//ISO_8859_1_E1 = KEY_A, MODIFIERKEY_RIGHT_ALT +// 225 á a ACUTE +ISO_8859_1_E9 = KEY_E, MODIFIERKEY_RIGHT_ALT +// 233 é e ACUTE +ISO_8859_1_ED = KEY_I, MODIFIERKEY_RIGHT_ALT +// 237 í i ACUTE +ISO_8859_1_F3 = KEY_O, MODIFIERKEY_RIGHT_ALT +// 243 ó o ACUTE +ISO_8859_1_FA = KEY_U, MODIFIERKEY_RIGHT_ALT +// 250 ú u ACUTE +UNICODE_20AC = KEY_4, MODIFIERKEY_RIGHT_ALT +// € Euro Sign + diff --git a/resources/hr.properties b/resources/hr.properties new file mode 100644 index 0000000..c28b2cb --- /dev/null +++ b/resources/hr.properties @@ -0,0 +1,137 @@ +//LAYOUT_CROATIAN +//Translated by ziolity on (03/08/2014) +KEY_NON_US_100 = 100 + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + +// Nonbreakng Space +// a b c č d e f g h i j k l m n o p r s š t u v z ž x y q w ć đ +ASCII_20 = KEY_SPACE +ASCII_61 = KEY_A +ASCII_62 = KEY_B +ASCII_63 = KEY_C +UNICODE_10D = KEY_SEMICOLON +ASCII_64 = KEY_D +ASCII_65 = KEY_E +ASCII_66 = KEY_F +ASCII_67 = KEY_G +ASCII_68 = KEY_H +ASCII_69 = KEY_I +ASCII_6A = KEY_J +ASCII_6B = KEY_K +ASCII_6C = KEY_L +ASCII_6D = KEY_M +ASCII_6E = KEY_N +ASCII_6F = KEY_O +ASCII_70 = KEY_P +ASCII_72 = KEY_R +ASCII_73 = KEY_S +UNICODE_161 = KEY_LEFT_BRACE +ASCII_74 = KEY_T +ASCII_75 = KEY_U +ASCII_76 = KEY_V +ASCII_7A = KEY_Y +UNICODE_17E = KEY_BACKSLASH +ASCII_78 = KEY_X +ASCII_79 = KEY_Z +ASCII_71 = KEY_Q +ASCII_77 = KEY_W +UNICODE_107 = KEY_QUOTE +UNICODE_111 = KEY_RIGHT_BRACE +// A B C Č D E F G H I J K L M N O P R S Š T U V Z Ž X Y Q W Ć Đ +ASCII_41 = KEY_A, MODIFIERKEY_SHIFT +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +UNICODE_10C = KEY_SEMICOLON, MODIFIERKEY_SHIFT +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +ASCII_4D = KEY_M, MODIFIERKEY_SHIFT +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +UNICODE_160 = KEY_LEFT_BRACE, MODIFIERKEY_SHIFT +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +ASCII_5A = KEY_Y, MODIFIERKEY_SHIFT +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +ASCII_59 = KEY_Z, MODIFIERKEY_SHIFT +UNICODE_17D = KEY_BACKSLASH, MODIFIERKEY_SHIFT +ASCII_51 = KEY_Q, MODIFIERKEY_SHIFT +ASCII_57 = KEY_W, MODIFIERKEY_SHIFT +UNICODE_106 = KEY_QUOTE, MODIFIERKEY_SHIFT +UNICODE_110 = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT +// Symbols // ! " # $ % & / ( ) = ? * < > , ; . : - _ [ ] ~ ` \ | € ÷ × ł Ł ß ¤ { } § @ +ASCII_21 = KEY_1, MODIFIERKEY_SHIFT +ASCII_22 = KEY_2, MODIFIERKEY_SHIFT +ASCII_23 = KEY_3, MODIFIERKEY_SHIFT +ASCII_24 = KEY_4, MODIFIERKEY_SHIFT +ASCII_25 = KEY_5, MODIFIERKEY_SHIFT +ASCII_26 = KEY_6, MODIFIERKEY_SHIFT +ASCII_2F = KEY_7, MODIFIERKEY_SHIFT +ASCII_28 = KEY_8, MODIFIERKEY_SHIFT +ASCII_29 = KEY_9, MODIFIERKEY_SHIFT +ASCII_3D = KEY_0, MODIFIERKEY_SHIFT +ASCII_3F = KEY_MINUS, MODIFIERKEY_SHIFT +ASCII_2A = KEY_EQUAL, MODIFIERKEY_SHIFT +ASCII_27 = KEY_MINUS +ASCII_2B = KEY_EQUAL +ASCII_7E = KEY_1, MODIFIERKEY_RIGHT_ALT +ASCII_60 = KEY_7, MODIFIERKEY_RIGHT_ALT +ASCII_5C = KEY_Q, MODIFIERKEY_RIGHT_ALT +ASCII_7C = KEY_W, MODIFIERKEY_RIGHT_ALT +UNICODE_20AC = KEY_E, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_F7 = KEY_LEFT_BRACE, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_D7 = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT +ASCII_5B = KEY_F, MODIFIERKEY_RIGHT_ALT +ASCII_5D = KEY_G, MODIFIERKEY_RIGHT_ALT +UNICODE_142 = KEY_K, MODIFIERKEY_RIGHT_ALT +UNICODE_141 = KEY_L, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_DF = KEY_QUOTE, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_A4 = KEY_BACKSLASH, MODIFIERKEY_RIGHT_ALT +ASCII_3C = KEY_NON_US_100 +ASCII_3E = KEY_NON_US_100, MODIFIERKEY_SHIFT +ASCII_40 = KEY_V, MODIFIERKEY_RIGHT_ALT +ASCII_7B = KEY_B, MODIFIERKEY_RIGHT_ALT +ASCII_7D = KEY_N, MODIFIERKEY_RIGHT_ALT +ASCII_2E = KEY_PERIOD +ASCII_2D = KEY_SLASH +ASCII_3A = KEY_PERIOD, MODIFIERKEY_SHIFT +ASCII_5F = KEY_SLASH, MODIFIERKEY_SHIFT +ASCII_2C = KEY_COMMA +ASCII_3B = KEY_COMMA, MODIFIERKEY_SHIFT +ISO_8859_1_A7 = KEY_M, MODIFIERKEY_RIGHT_ALT +// Not needed chars // input: ¸ ¨ ˇ ^ ˘ ° ˛ ˙ ´ ˝ ¨ ¸ output: ¸¨ˇ^˘°˛˙´˝¨¸ (notice no space!) +ISO_8859_1_B8 = KEY_TILDE +ISO_8859_1_A8 = KEY_TILDE, MODIFIERKEY_SHIFT +UNICODE_2C7 = KEY_2, MODIFIERKEY_RIGHT_ALT +ASCII_5E = KEY_3, MODIFIERKEY_RIGHT_ALT +UNICODE_2D8 = KEY_4, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_B0 = KEY_5, MODIFIERKEY_RIGHT_ALT +UNICODE_2DB = KEY_6, MODIFIERKEY_RIGHT_ALT +UNICODE_2D9 = KEY_8, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_B4 = KEY_9, MODIFIERKEY_RIGHT_ALT +UNICODE_2DD = KEY_0, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_A8 = KEY_MINUS, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_B8 = KEY_EQUAL, MODIFIERKEY_RIGHT_ALT +// Numbers: 0 1 2 3 4 5 6 7 8 9 +ASCII_30 = KEY_0 +ASCII_31 = KEY_1 +ASCII_32 = KEY_2 +ASCII_33 = KEY_3 +ASCII_34 = KEY_4 +ASCII_35 = KEY_5 +ASCII_36 = KEY_6 +ASCII_37 = KEY_7 +ASCII_38 = KEY_8 +ASCII_39 = KEY_9 diff --git a/resources/it.properties b/resources/it.properties new file mode 100644 index 0000000..a8297da --- /dev/null +++ b/resources/it.properties @@ -0,0 +1,212 @@ +// Author: Armyofangels +// 01-16-2013 +// LAYOUT_ITALIAN +KEY_NON_US_100 = 100 + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + + +ASCII_20 = KEY_SPACE +// 32 +ASCII_21 = KEY_1, MODIFIERKEY_SHIFT +// 33 ! +ASCII_22 = KEY_2, MODIFIERKEY_SHIFT +// 34 “ +ASCII_23 = KEY_QUOTE, MODIFIERKEY_RIGHT_ALT +// 35 # +ASCII_24 = KEY_4, MODIFIERKEY_SHIFT +// 36 $ +ASCII_25 = KEY_5, MODIFIERKEY_SHIFT +// 37 % +ASCII_26 = KEY_6, MODIFIERKEY_SHIFT +// 38 & +ASCII_27 = KEY_MINUS +// 39 ‘ +ASCII_28 = KEY_8, MODIFIERKEY_SHIFT +// 40 ( +ASCII_29 = KEY_9, MODIFIERKEY_SHIFT +// 41 ) +ASCII_2A = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT +// 42 * +ASCII_2B = KEY_RIGHT_BRACE +// 43 + +ASCII_2C = KEY_COMMA +// 44 , +ASCII_2D = KEY_SLASH +// 45 – +ASCII_2E = KEY_PERIOD +// 46 . +ASCII_2F = KEY_7, MODIFIERKEY_SHIFT +// 47 / +ASCII_30 = KEY_0 +// 48 0 +ASCII_31 = KEY_1 +// 49 1 +ASCII_32 = KEY_2 +// 50 2 +ASCII_33 = KEY_3 +// 51 3 +ASCII_34 = KEY_4 +// 52 4 +ASCII_35 = KEY_5 +// 53 5 +ASCII_36 = KEY_6 +// 54 6 +ASCII_37 = KEY_7 +// 55 7 +ASCII_38 = KEY_8 +// 56 8 +ASCII_39 = KEY_9 +// 57 9 +ASCII_3A = KEY_PERIOD, MODIFIERKEY_SHIFT +// 58 : +ASCII_3B = KEY_COMMA, MODIFIERKEY_SHIFT +// 59 ; +ASCII_3C = KEY_NON_US_100 +// 60 < +ASCII_3D = KEY_0, MODIFIERKEY_SHIFT +// 61 = +ASCII_3E = KEY_NON_US_100, MODIFIERKEY_SHIFT +// 62 > +ASCII_3F = KEY_MINUS, MODIFIERKEY_SHIFT +// 63 ? +ASCII_40 = KEY_SEMICOLON, MODIFIERKEY_RIGHT_ALT +// 64 @ +ASCII_41 = KEY_A, MODIFIERKEY_SHIFT +// 65 A +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +// 66 B +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +// 67 C +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +// 68 D +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +// 69 E +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +// 70 F +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +// 71 G +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +// 72 H +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +// 73 I +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +// 74 J +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +// 75 K +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +// 76 L +ASCII_4D = KEY_M, MODIFIERKEY_SHIFT +// 77 M +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +// 78 N +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +// 79 O +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +// 80 P +ASCII_51 = KEY_Q, MODIFIERKEY_SHIFT +// 81 Q +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +// 82 R +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +// 83 S +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +// 84 T +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +// 85 U +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +// 86 V +ASCII_57 = KEY_W, MODIFIERKEY_SHIFT +// 87 W +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +// 88 X +ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT +// 89 Y +ASCII_5A = KEY_Z, MODIFIERKEY_SHIFT +// 90 Z +ASCII_5B = KEY_LEFT_BRACE, MODIFIERKEY_RIGHT_ALT +// 91 [ +ASCII_5C = KEY_TILDE +// 92 \ + +ASCII_5D = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT +// 93 ] +ASCII_5E = KEY_EQUAL, MODIFIERKEY_SHIFT +// 94 ^ +ASCII_5F = KEY_SLASH, MODIFIERKEY_SHIFT +// 95 _ + +// ascii 60, 96: accento grave, non mappato +ASCII_61 = KEY_A +// 97 a +ASCII_62 = KEY_B +// 98 b +ASCII_63 = KEY_C +// 99 c +ASCII_64 = KEY_D +// 100 d +ASCII_65 = KEY_E +// 101 e +ASCII_66 = KEY_F +// 102 f +ASCII_67 = KEY_G +// 103 g +ASCII_68 = KEY_H +// 104 h +ASCII_69 = KEY_I +// 105 i +ASCII_6A = KEY_J +// 106 j +ASCII_6B = KEY_K +// 107 k +ASCII_6C = KEY_L +// 108 l +ASCII_6D = KEY_M +// 109 m +ASCII_6E = KEY_N +// 110 n +ASCII_6F = KEY_O +// 111 o +ASCII_70 = KEY_P +// 112 p +ASCII_71 = KEY_Q +// 113 q +ASCII_72 = KEY_R +// 114 r +ASCII_73 = KEY_S +// 115 s +ASCII_74 = KEY_T +// 116 t +ASCII_75 = KEY_U +// 117 u +ASCII_76 = KEY_V +// 118 v +ASCII_77 = KEY_W +// 119 w +ASCII_78 = KEY_X +// 120 x +ASCII_79 = KEY_Y +// 121 y +ASCII_7A = KEY_Z +// 122 z +ASCII_7B = KEY_LEFT_BRACE, MODIFIERKEY_RIGHT_ALT_AND_LEFT_SHIFT +// 123 { +ASCII_7C = KEY_TILDE, MODIFIERKEY_SHIFT +// 124 | +ASCII_7D = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT_AND_LEFT_SHIFT +// 125 } + +// ascii 7E, 126: tilde, non mappato +ISO_8859_1_E0 = KEY_QUOTE +// 192 a grave +ISO_8859_1_E8 = KEY_LEFT_BRACE +// 232 e grave +ISO_8859_1_E9 = KEY_LEFT_BRACE, MODIFIERKEY_SHIFT +// 233 e acuta +ISO_8859_1_EC = KEY_EQUAL +// 236 i grave +ISO_8859_1_F2 = KEY_SEMICOLON +// 242 o grave +ISO_8859_1_F9 = KEY_BACKSLASH +// 249 u grave diff --git a/resources/keyboard.properties b/resources/keyboard.properties new file mode 100644 index 0000000..7254176 --- /dev/null +++ b/resources/keyboard.properties @@ -0,0 +1,150 @@ +//default keys +MODIFIERKEY_CTRL = 0x01 +MODIFIERKEY_SHIFT = 0x02 +MODIFIERKEY_ALT = 0x04 +MODIFIERKEY_GUI = 0x08 +MODIFIERKEY_LEFT_CTRL = 0x01 +MODIFIERKEY_LEFT_SHIFT = 0x02 +MODIFIERKEY_LEFT_ALT = 0x04 +MODIFIERKEY_LEFT_GUI = 0x08 +MODIFIERKEY_RIGHT_CTRL = 0x10 +MODIFIERKEY_RIGHT_SHIFT= 0x20 +MODIFIERKEY_RIGHT_ALT = 0x40 +MODIFIERKEY_RIGHT_GUI = 0x80 +MODIFIERKEY_RIGHT_ALT_AND_LEFT_SHIFT = 0x42 +KEY_MEDIA_VOLUME_INC = 0x80 +KEY_MEDIA_VOLUME_DEC = 0x81 +KEY_MEDIA_MUTE = 0x7F +KEY_MEDIA_PLAY_PAUSE = 0x08 +KEY_MEDIA_NEXT_TRACK = 0x10 +KEY_MEDIA_PREV_TRACK = 0x20 +//KEY_MEDIA_STOP = 0x40 +//KEY_MEDIA_EJECT = 0x80 + +KEY_A = 4 +KEY_B = 5 +KEY_C = 6 +KEY_D = 7 +KEY_E = 8 +KEY_F = 9 +KEY_G = 10 +KEY_H = 11 +KEY_I = 12 +KEY_J = 13 +KEY_K = 14 +KEY_L = 15 +KEY_M = 16 +KEY_N = 17 +KEY_O = 18 +KEY_P = 19 +KEY_Q = 20 +KEY_R = 21 +KEY_S = 22 +KEY_T = 23 +KEY_U = 24 +KEY_V = 25 +KEY_W = 26 +KEY_X = 27 +KEY_Y = 28 +KEY_Z = 29 +KEY_1 = 30 +KEY_2 = 31 +KEY_3 = 32 +KEY_4 = 33 +KEY_5 = 34 +KEY_6 = 35 +KEY_7 = 36 +KEY_8 = 37 +KEY_9 = 38 +KEY_0 = 39 +KEY_ENTER = 40 +KEY_ESC = 41 +KEY_BACKSPACE = 42 +KEY_TAB = 43 +KEY_SPACE = 44 +KEY_MINUS = 45 +KEY_EQUAL = 46 +KEY_LEFT_BRACE = 47 +KEY_RIGHT_BRACE = 48 +KEY_BACKSLASH = 49 +KEY_NON_US_NUM = 50 +KEY_SEMICOLON = 51 +KEY_QUOTE = 52 +KEY_TILDE = 53 +KEY_COMMA = 54 +KEY_PERIOD = 55 +KEY_SLASH = 56 +KEY_CAPS_LOCK = 57 +KEY_F1 = 58 +KEY_F2 = 59 +KEY_F3 = 60 +KEY_F4 = 61 +KEY_F5 = 62 +KEY_F6 = 63 +KEY_F7 = 64 +KEY_F8 = 65 +KEY_F9 = 66 +KEY_F10 = 67 +KEY_F11 = 68 +KEY_F12 = 69 +KEY_PRINTSCREEN = 70 +KEY_SCROLL_LOCK = 71 +KEY_PAUSE = 72 +KEY_INSERT = 73 +KEY_HOME = 74 +KEY_PAGEUP = 75 +KEY_DELETE = 76 +KEY_END = 77 +KEY_PAGEDOWN = 78 +KEY_RIGHT = 79 +KEY_LEFT = 80 +KEY_DOWN = 81 +KEY_UP = 82 +KEY_NUM_LOCK = 83 +KEYPAD_SLASH = 84 +KEYPAD_ASTERIX = 85 +KEYPAD_MINUS = 86 +KEYPAD_PLUS = 87 +KEYPAD_ENTER = 88 +KEYPAD_EQUALS = 103 +KEYPAD_1 = 89 +KEYPAD_2 = 90 +KEYPAD_3 = 91 +KEYPAD_4 = 92 +KEYPAD_5 = 93 +KEYPAD_6 = 94 +KEYPAD_7 = 95 +KEYPAD_8 = 96 +KEYPAD_9 = 97 +KEYPAD_0 = 98 +KEYPAD_PERIOD = 99 + +KEY_APP = 0x65 +KEY_POWER = 0x66 +KEY_EXE = 0x74 +KEY_HELP = 0x75 +KEY_MENU = 0x76 +KEY_SELECT = 0x77 +KEY_STOP = 0x78 +KEY_AGAIN = 0x79 +KEY_UNDO = 0x7A +KEY_CUT = 0x7B +KEY_COPY = 0x7C +KEY_PASTE = 0x7D +KEY_FIND = 0x7E + +KEY_SYSTEM_POWER = 0x81 +KEY_SYSTEM_SLEEP = 0x82 +KEY_SYSTEM_WAKE = 0x83 + +KEYPAD_PIPE = 0xC9 + +KEY_LEFT_CTRL = 0xE0 +KEY_LEFT_SHIFT = 0xE1 +KEY_LEFT_ALT = 0xE2 +KEY_LEFT_GUI = 0xE3 +KEY_COMMAND = 0xE3 +KEY_RIGHT_CTRL = 0xE4 +KEY_RIGHT_SHIFT= 0xE5 +KEY_RIGHT_ALT = 0xE6 +KEY_RIGHT_GUI = 0xE7 diff --git a/resources/no.properties b/resources/no.properties new file mode 100644 index 0000000..d455f79 --- /dev/null +++ b/resources/no.properties @@ -0,0 +1,339 @@ +KEY_NON_US_100 = 100 + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + +ASCII_20 = KEY_SPACE +// 32 +ASCII_21 = KEY_1, MODIFIERKEY_SHIFT +// 33 ! +ASCII_22 = KEY_2, MODIFIERKEY_SHIFT +// 34 " +ASCII_23 = KEY_3, MODIFIERKEY_SHIFT +// 35 # +ASCII_24 = KEY_4, MODIFIERKEY_RIGHT_ALT +// 36 $ +ASCII_25 = KEY_5, MODIFIERKEY_SHIFT +// 37 % +ASCII_26 = KEY_6, MODIFIERKEY_SHIFT +// 38 & +ASCII_27 = KEY_BACKSLASH +// 39 ' +ASCII_28 = KEY_8, MODIFIERKEY_SHIFT +// 40 ( +ASCII_29 = KEY_9, MODIFIERKEY_SHIFT +// 41 ) +ASCII_2A = KEY_BACKSLASH, MODIFIERKEY_SHIFT +// 42 * +ASCII_2B = KEY_MINUS +// 43 + +ASCII_2C = KEY_COMMA +// 44 , +ASCII_2D = KEY_SLASH +// 45 - +ASCII_2E = KEY_PERIOD +// 46 . +ASCII_2F = KEY_7, MODIFIERKEY_SHIFT +// 47 / +ASCII_30 = KEY_0 +// 48 0 +ASCII_31 = KEY_1 +// 49 1 +ASCII_32 = KEY_2 +// 50 2 +ASCII_33 = KEY_3 +// 51 3 +ASCII_34 = KEY_4 +// 52 4 +ASCII_35 = KEY_5 +// 53 5 +ASCII_36 = KEY_6 +// 54 6 +ASCII_37 = KEY_7 +// 55 7 +ASCII_38 = KEY_8 +// 55 8 +ASCII_39 = KEY_9 +// 57 9 +ASCII_3A = KEY_PERIOD, MODIFIERKEY_SHIFT +// 58 : +ASCII_3B = KEY_COMMA, MODIFIERKEY_SHIFT +// 59 ; +ASCII_3C = KEY_NON_US_100 +// 60 < +ASCII_3D = KEY_0, MODIFIERKEY_SHIFT +// 61 = +ASCII_3E = KEY_NON_US_100, MODIFIERKEY_SHIFT +// 62 > +ASCII_3F = KEY_MINUS, MODIFIERKEY_SHIFT +// 63 ? +ASCII_40 = KEY_2, MODIFIERKEY_RIGHT_ALT +// 64 @ +ASCII_41 = KEY_A, MODIFIERKEY_SHIFT +// 65 A +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +// 66 B +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +// 67 C +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +// 68 D +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +// 69 E +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +// 70 F +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +// 71 G +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +// 72 H +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +// 73 I +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +// 74 J +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +// 75 K +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +// 76 L +ASCII_4D = KEY_M, MODIFIERKEY_SHIFT +// 77 M +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +// 78 N +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +// 79 O +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +// 80 P +ASCII_51 = KEY_Q, MODIFIERKEY_SHIFT +// 81 Q +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +// 82 R +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +// 83 S +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +// 84 T +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +// 85 U +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +// 86 V +ASCII_57 = KEY_W, MODIFIERKEY_SHIFT +// 87 W +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +// 88 X +ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT +// 89 Y +ASCII_5A = KEY_Z, MODIFIERKEY_SHIFT +// 90 Z +ASCII_5B = KEY_8, MODIFIERKEY_RIGHT_ALT +// 91 [ +ASCII_5C = KEY_EQUAL +// 92 +ASCII_5D = KEY_9, MODIFIERKEY_RIGHT_ALT +// 93 ] +ASCII_5E = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT +// 94 ^ +ASCII_5F = KEY_SLASH, MODIFIERKEY_SHIFT +// 95 _ +ASCII_60 = KEY_EQUAL, MODIFIERKEY_SHIFT +// 96 ` +ASCII_61 = KEY_A +// 97 a +ASCII_62 = KEY_B +// 98 b +ASCII_63 = KEY_C +// 99 c +ASCII_64 = KEY_D +// 100 d +ASCII_65 = KEY_E +// 101 e +ASCII_66 = KEY_F +// 102 f +ASCII_67 = KEY_G +// 103 g +ASCII_68 = KEY_H +// 104 h +ASCII_69 = KEY_I +// 105 i +ASCII_6A = KEY_J +// 106 j +ASCII_6B = KEY_K +// 107 k +ASCII_6C = KEY_L +// 108 l +ASCII_6D = KEY_M +// 109 m +ASCII_6E = KEY_N +// 110 n +ASCII_6F = KEY_O +// 111 o +ASCII_70 = KEY_P +// 112 p +ASCII_71 = KEY_Q +// 113 q +ASCII_72 = KEY_R +// 114 r +ASCII_73 = KEY_S +// 115 s +ASCII_74 = KEY_T +// 116 t +ASCII_75 = KEY_U +// 117 u +ASCII_76 = KEY_V +// 118 v +ASCII_77 = KEY_W +// 119 w +ASCII_78 = KEY_X +// 120 x +ASCII_79 = KEY_Y +// 121 y +ASCII_7A = KEY_Z +// 122 z +ASCII_7B = KEY_7, MODIFIERKEY_RIGHT_ALT +// 123 { +ASCII_7C = KEY_TILDE +// 124 | +ASCII_7D = KEY_0, MODIFIERKEY_RIGHT_ALT +// 125 } +ASCII_7E = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT +// 126 ~ (not tested) +ASCII_7F = KEY_BACKSPACE +// 127 + +ISO_8859_1_A0 = KEY_SPACE +// 160 Nonbreakng Space +ISO_8859_1_A3 = KEY_3, MODIFIERKEY_RIGHT_ALT +// 163 £ Pound Sign +ISO_8859_1_A4 = KEY_4, MODIFIERKEY_SHIFT +// 164 ¤ Currency Sign +ISO_8859_1_A7 = KEY_TILDE, MODIFIERKEY_SHIFT +// 167 § SECTION SIGN +//ISO_8859_1_A8 = DIAERESIS_BITS + KEY_SPACE +// 168 ¨ DIAERESIS +ISO_8859_1_AB = KEY_4 +// 171 « LEFT DOUBLE ANGLE QUOTE +//ISO_8859_1_B4 = ACUTE_ACCENT_BITS + KEY_SPACE +// 180 ´ ACUTE ACCENT +ISO_8859_1_B5 = KEY_M, MODIFIERKEY_RIGHT_ALT +// 181 µ MICRO SIGN +ISO_8859_1_BD = KEY_TILDE +// 189 ½ FRACTION ONE HALF +//ISO_8859_1_C0 = GRAVE_ACCENT_BITS + KEY_A, MODIFIERKEY_SHIFT = +// 192 À A GRAVE +//ISO_8859_1_C1 = ACUTE_ACCENT_BITS + KEY_A, MODIFIERKEY_SHIFT = +// 193 Á A ACUTE +//ISO_8859_1_C2 = CIRCUMFLEX_BITS + KEY_A, MODIFIERKEY_SHIFT = +// 194  A CIRCUMFLEX +//ISO_8859_1_C3 = TILDE_BITS + KEY_A, MODIFIERKEY_SHIFT +// 195 à A TILDE +//ISO_8859_1_C4 = DIAERESIS_BITS + KEY_A, MODIFIERKEY_SHIFT = +// 196 Ä A DIAERESIS +ISO_8859_1_C5 = KEY_LEFT_BRACE, MODIFIERKEY_SHIFT +// 197 Å A RING ABOVE +ISO_8859_1_C6 = KEY_QUOTE, MODIFIERKEY_SHIFT +// 198 Æ AE +//ISO_8859_1_C8 = GRAVE_ACCENT_BITS + KEY_E, MODIFIERKEY_SHIFT = +// 200 È E GRAVE +//ISO_8859_1_C9 = ACUTE_ACCENT_BITS + KEY_E, MODIFIERKEY_SHIFT = +// 201 É E ACUTE +//ISO_8859_1_CA = CIRCUMFLEX_BITS + KEY_E, MODIFIERKEY_SHIFT = +// 202 Ê E CIRCUMFLEX +//ISO_8859_1_CB = DIAERESIS_BITS + KEY_E, MODIFIERKEY_SHIFT = +// 203 Ë E DIAERESIS +//ISO_8859_1_CC = GRAVE_ACCENT_BITS + KEY_I, MODIFIERKEY_SHIFT = +// 204 Ì I GRAVE +//ISO_8859_1_CD = ACUTE_ACCENT_BITS + KEY_I, MODIFIERKEY_SHIFT = +// 205 Í I ACUTE +//ISO_8859_1_CE = CIRCUMFLEX_BITS + KEY_I, MODIFIERKEY_SHIFT = +// 206 Î I CIRCUMFLEX +//ISO_8859_1_CF = DIAERESIS_BITS + KEY_I, MODIFIERKEY_SHIFT = +// 207 Ï I DIAERESIS +//ISO_8859_1_D0 = KEY_D, MODIFIERKEY_RIGHT_ALT, MODIFIERKEY_SHIFT +// 208 Ð ETH +//ISO_8859_1_D1 = TILDE_BITS + KEY_N, MODIFIERKEY_SHIFT +// 209 Ñ N TILDE +//ISO_8859_1_D2 = GRAVE_ACCENT_BITS + KEY_O, MODIFIERKEY_SHIFT = +// 210 Ò O GRAVE +//ISO_8859_1_D3 = ACUTE_ACCENT_BITS + KEY_O, MODIFIERKEY_SHIFT = +// 211 Ó O ACUTE +//ISO_8859_1_D4 = CIRCUMFLEX_BITS + KEY_O, MODIFIERKEY_SHIFT = +// 212 Ô O CIRCUMFLEX +//ISO_8859_1_D5 = TILDE_BITS + KEY_O, MODIFIERKEY_SHIFT +// 213 Õ O TILDE +//ISO_8859_1_D6 = DIAERESIS_BITS + KEY_O, MODIFIERKEY_SHIFT = +// 214 Ö O DIAERESIS +ISO_8859_1_D8 = KEY_SEMICOLON, MODIFIERKEY_SHIFT +// 216 Ø O STROKE +//ISO_8859_1_D9 = GRAVE_ACCENT_BITS + KEY_U, MODIFIERKEY_SHIFT = +// 217 Ù U GRAVE +//ISO_8859_1_DA = ACUTE_ACCENT_BITS + KEY_U, MODIFIERKEY_SHIFT = +// 218 Ú U ACUTE +//ISO_8859_1_DB = CIRCUMFLEX_BITS + KEY_U, MODIFIERKEY_SHIFT = +// 219 Û U CIRCUMFLEX +//ISO_8859_1_DC = DIAERESIS_BITS + KEY_U, MODIFIERKEY_SHIFT = +// 220 Ü U DIAERESIS +//ISO_8859_1_DD = ACUTE_ACCENT_BITS + KEY_Y, MODIFIERKEY_SHIFT = +// 221 Ý Y ACUTE +//ISO_8859_1_DE = KEY_T, MODIFIERKEY_RIGHT_ALT, MODIFIERKEY_SHIFT +// 222 Þ THORN +ISO_8859_1_DF = KEY_S, MODIFIERKEY_RIGHT_ALT +// 223 ß SHARP S +//ISO_8859_1_E0 = GRAVE_ACCENT_BITS + KEY_A +// 224 à a GRAVE +//ISO_8859_1_E1 = ACUTE_ACCENT_BITS + KEY_A +// 225 á a ACUTE +//ISO_8859_1_E2 = CIRCUMFLEX_BITS + KEY_A +// 226 â a CIRCUMFLEX +//ISO_8859_1_E3 = TILDE_BITS + KEY_A +// 227 ã a TILDE +//ISO_8859_1_E4 = DIAERESIS_BITS + KEY_A +// 228 ä a DIAERESIS +ISO_8859_1_E5 = KEY_LEFT_BRACE +// 229 å a RING ABOVE +ISO_8859_1_E6 = KEY_QUOTE +// 230 æ ae +//ISO_8859_1_E8 = GRAVE_ACCENT_BITS + KEY_E +// 232 è e GRAVE +//ISO_8859_1_E9 = ACUTE_ACCENT_BITS + KEY_E +// 233 é e ACUTE +//ISO_8859_1_EA = CIRCUMFLEX_BITS + KEY_E +// 234 ê e CIRCUMFLEX +//ISO_8859_1_EB = DIAERESIS_BITS + KEY_E +// 235 ë e DIAERESIS +//ISO_8859_1_EC = GRAVE_ACCENT_BITS + KEY_I +// 236 ì i GRAVE +//ISO_8859_1_ED = ACUTE_ACCENT_BITS + KEY_I +// 237 í i ACUTE +//ISO_8859_1_EE = CIRCUMFLEX_BITS + KEY_I +// 238 î i CIRCUMFLEX +//ISO_8859_1_EF = DIAERESIS_BITS + KEY_I +// 239 ï i DIAERESIS +ISO_8859_1_F0 = KEY_D, MODIFIERKEY_RIGHT_ALT +// 240 ð ETH +//ISO_8859_1_F1 = TILDE_BITS + KEY_N +// 241 ñ n TILDE +//ISO_8859_1_F2 = GRAVE_ACCENT_BITS + KEY_O +// 242 ò o GRAVE +//ISO_8859_1_F3 = ACUTE_ACCENT_BITS + KEY_O +// 243 ó o ACUTE +//ISO_8859_1_F4 = CIRCUMFLEX_BITS + KEY_O +// 244 ô o CIRCUMFLEX +//ISO_8859_1_F5 = TILDE_BITS + KEY_O +// 245 õ o TILDE +//ISO_8859_1_F6 = DIAERESIS_BITS + KEY_O +// 246 ö o DIAERESIS +ISO_8859_1_F8 = KEY_SEMICOLON +// 248 ø o STROKE +//ISO_8859_1_F9 = GRAVE_ACCENT_BITS + KEY_U +// 249 ù u GRAVE +//ISO_8859_1_FA = ACUTE_ACCENT_BITS + KEY_U +// 250 ú u ACUTE +//ISO_8859_1_FB = CIRCUMFLEX_BITS + KEY_U +// 251 û u CIRCUMFLEX +//ISO_8859_1_FC = DIAERESIS_BITS + KEY_U +// 252 ü u DIAERESIS +//ISO_8859_1_FD = ACUTE_ACCENT_BITS + KEY_Y +// 253 ý y ACUTE +ISO_8859_1_FE = KEY_T, MODIFIERKEY_RIGHT_ALT +// 254 þ THORN +//ISO_8859_1_FF = DIAERESIS_BITS + KEY_Y +// 255 ÿ y DIAERESIS +UNICODE_20AC = KEY_E, MODIFIERKEY_RIGHT_ALT +// € Euro Sign + diff --git a/resources/pt.properties b/resources/pt.properties new file mode 100644 index 0000000..1bf5e35 --- /dev/null +++ b/resources/pt.properties @@ -0,0 +1,200 @@ +// Portuguese keyboard 102-keys layout + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + + +// Keyboard Non-US# and ~ +// Typical language mappings: US: \| Belg: μ`£ FrCa: <}> Dan:’* Dutch: <> Fren:*μ Ger: #’ Ital: ù§ LatAm: }`] Nor:,* Span:}Ç Swed: ,* Swiss: $£ UK: #~ Port: ~^ . +KEY_NON_US_NUM = 50 +// Keyboard Non-US\ and | +// Typical language mappings: Belg:<\> FrCa:«°» Dan:<\> Dutch:]|[ Fren:<> Ger:<|> Ital:<> LatAm:<> Nor:<> Span:<> Swed:<|> Swiss:<\> UK:\| Brazil: \| Portuguese: <> . +KEY_NON_US_100 = 100 + +// 32 +ASCII_20 = KEY_SPACE +// 33 ! 49 1 +ASCII_21 = KEY_1, MODIFIERKEY_SHIFT +ASCII_31 = KEY_1 +// 34 " 50 2 +ASCII_22 = KEY_2, MODIFIERKEY_SHIFT +ASCII_32 = KEY_2 +// 35 # 51 3 +ASCII_23 = KEY_3, MODIFIERKEY_SHIFT +ASCII_33 = KEY_3 +// 36 $ 52 4 +ASCII_24 = KEY_4, MODIFIERKEY_SHIFT +ASCII_34 = KEY_4 +// 37 % 53 5 +ASCII_25 = KEY_5, MODIFIERKEY_SHIFT +ASCII_35 = KEY_5 +// 38 & 35 6 +ASCII_26 = KEY_6, MODIFIERKEY_SHIFT +ASCII_36 = KEY_6 +// 47 SLASH 55 7 +ASCII_2F = KEY_7, MODIFIERKEY_SHIFT +ASCII_37 = KEY_7 +// 40 ( 55 8 +ASCII_28 = KEY_8, MODIFIERKEY_SHIFT +ASCII_38 = KEY_8 +// 41 ) 57 9 +ASCII_29 = KEY_9, MODIFIERKEY_SHIFT +ASCII_39 = KEY_9 +// 61 = 48 0 +ASCII_3D = KEY_0, MODIFIERKEY_SHIFT +ASCII_30 = KEY_0 +// 39 ' 63 ? +ASCII_3F = KEY_MINUS, MODIFIERKEY_SHIFT +ASCII_27 = KEY_MINUS +// 42 * 43 + +ASCII_2A = KEY_LEFT_BRACE, MODIFIERKEY_SHIFT +ASCII_2B = KEY_LEFT_BRACE +// 44 , 59 ; +ASCII_2C = KEY_COMMA +ASCII_3B = KEY_COMMA, MODIFIERKEY_SHIFT +// 45 - 95 _ +ASCII_2D = KEY_SLASH +ASCII_5F = KEY_SLASH, MODIFIERKEY_SHIFT +// 46 . 58 : +ASCII_2E = KEY_PERIOD +ASCII_3A = KEY_PERIOD, MODIFIERKEY_SHIFT +// 60 < 62 > +ASCII_3C = KEY_NON_US_100 +ASCII_3E = KEY_NON_US_100, MODIFIERKEY_SHIFT +// 64 @ +ASCII_40 = KEY_2, MODIFIERKEY_RIGHT_ALT +// 65 A +ASCII_41 = KEY_A, MODIFIERKEY_SHIFT +// 66 B +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +// 67 C +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +// 68 D +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +// 69 E +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +// 70 F +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +// 71 G +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +// 72 H +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +// 73 I +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +// 74 J +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +// 75 K +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +// 76 L +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +// 77 M +ASCII_4D = KEY_M, MODIFIERKEY_SHIFT +// 78 N +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +// 79 O +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +// 80 P +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +// 81 Q +ASCII_51 = KEY_Q, MODIFIERKEY_SHIFT +// 82 R +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +// 83 S +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +// 84 T +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +// 85 U +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +// 86 V +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +// 87 W +ASCII_57 = KEY_W, MODIFIERKEY_SHIFT +// 88 X +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +// 89 Y +ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT +// 90 Z +ASCII_5A = KEY_Z, MODIFIERKEY_SHIFT +// 91 [ 93 ] +ASCII_5B = KEY_8, MODIFIERKEY_RIGHT_ALT +ASCII_5D = KEY_9, MODIFIERKEY_RIGHT_ALT +// 94 ^ 126 ~ +ASCII_5E = KEY_NON_US_NUM, MODIFIERKEY_SHIFT +ASCII_7E = KEY_NON_US_NUM +// 96 ` +ASCII_60 = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT +// 97 a +ASCII_61 = KEY_A +// 98 b +ASCII_62 = KEY_B +// 99 c +ASCII_63 = KEY_C +// 100 d +ASCII_64 = KEY_D +// 101 e +ASCII_65 = KEY_E +// 102 f +ASCII_66 = KEY_F +// 103 g +ASCII_67 = KEY_G +// 104 h +ASCII_68 = KEY_H +// 105 i +ASCII_69 = KEY_I +// 106 j +ASCII_6A = KEY_J +// 107 k +ASCII_6B = KEY_K +// 108 l +ASCII_6C = KEY_L +// 109 m +ASCII_6D = KEY_M +// 110 n +ASCII_6E = KEY_N +// 111 o +ASCII_6F = KEY_O +// 112 p +ASCII_70 = KEY_P +// 113 q +ASCII_71 = KEY_Q +// 114 r +ASCII_72 = KEY_R +// 115 s +ASCII_73 = KEY_S +// 116 t +ASCII_74 = KEY_T +// 117 u +ASCII_75 = KEY_U +// 118 v +ASCII_76 = KEY_V +// 119 w +ASCII_77 = KEY_W +// 120 x +ASCII_78 = KEY_X +// 121 y +ASCII_79 = KEY_Y +// 122 z +ASCII_7A = KEY_Z +// 123 { 125 } +ASCII_7B = KEY_7, MODIFIERKEY_RIGHT_ALT +ASCII_7D = KEY_0, MODIFIERKEY_RIGHT_ALT +// 124 | 92 +ASCII_7C = KEY_TILDE, MODIFIERKEY_SHIFT +ASCII_5C = KEY_TILDE +// 127 +ASCII_7F = KEY_BACKSPACE +//231 ç 199 Ç +ISO_8859_1_E7 = KEY_SEMICOLON +ISO_8859_1_C7 = KEY_SEMICOLON, MODIFIERKEY_SHIFT +//ºª +ISO_8859_1_BA = KEY_QUOTE +ISO_8859_1_AA = KEY_QUOTE, MODIFIERKEY_SHIFT +// 167 § SECTION SIGN +ISO_8859_1_A7 = KEY_4, MODIFIERKEY_RIGHT_ALT +// 163 £ +ISO_8859_1_A3 = KEY_3, MODIFIERKEY_RIGHT_ALT +// Euro Sign +UNICODE_20AC = KEY_E, MODIFIERKEY_RIGHT_ALT +// 171 « 187 » +ISO_8859_1_AB = KEY_EQUAL +ISO_8859_1_BB = KEY_EQUAL, MODIFIERKEY_SHIFT diff --git a/resources/ru.properties b/resources/ru.properties new file mode 100644 index 0000000..7170fc7 --- /dev/null +++ b/resources/ru.properties @@ -0,0 +1,118 @@ +//Russian Key Map +//http://www.charset.org/charactersets.php?charset=iso-8859-5 +// Needs work likely to contain errors +// +//Example mapping the Portugeuse charset +//ISO_8859_1_E7 = KEY_SEMICOLON + +// 32 +ASCII_20 = KEY_SPACE + +//numbers +//ё1234567890-ъ +//Ё!“£$%«»*()_Ъ +ISO_8859_5_F1 = KEY_TILDE +ISO_8859_5_A1 = KEY_TILDE, MODIFIERKEY_SHIFT +ISO_8859_5_31 = KEY_1 +ISO_8859_5_21 = KEY_1, MODIFIERKEY_SHIFT +ISO_8859_5_32 = KEY_2 +ISO_8859_5_22 = KEY_2, MODIFIERKEY_SHIFT +ISO_8859_5_33 = KEY_3 +ISO_8859_5_23 = KEY_3, MODIFIERKEY_SHIFT +ISO_8859_5_34 = KEY_4 +ISO_8859_5_24 = KEY_4, MODIFIERKEY_SHIFT +ISO_8859_5_35 = KEY_5 +ISO_8859_5_25 = KEY_5, MODIFIERKEY_SHIFT +ISO_8859_5_36 = KEY_6 +ISO_8859_5_26 = KEY_6, MODIFIERKEY_SHIFT +ISO_8859_5_37 = KEY_7 +ISO_8859_5_27 = KEY_7, MODIFIERKEY_SHIFT +ISO_8859_5_38 = KEY_8 +ISO_8859_5_2A = KEY_8, MODIFIERKEY_SHIFT +ISO_8859_5_39 = KEY_9 +ISO_8859_5_28 = KEY_9, MODIFIERKEY_SHIFT +ISO_8859_5_30 = KEY_0 +ISO_8859_5_29 = KEY_0, MODIFIERKEY_SHIFT +ISO_8859_5_2D = KEY_MINUS +ISO_8859_5_5F = KEY_MINUS, MODIFIERKEY_SHIFT +ISO_8859_5_CA = KEY_EQUALS +ISO_8859_5_EA = KEY_EQUALS, MODIFIERKEY_SHIFT + +//letters - 1st row +//яшертыуиопющ +//ЯШЕРТЫУИОПЮЩ +ISO_8859_5_CF = KEY_Q, MODIFIERKEY_SHIFT +ISO_8859_5_EF = KEY_Q +ISO_8859_5_C8 = KEY_W, MODIFIERKEY_SHIFT +ISO_8859_5_E8 = KEY_W +ISO_8859_5_B5 = KEY_E, MODIFIERKEY_SHIFT +ISO_8859_5_D5 = KEY_E +ISO_8859_5_C0 = KEY_R, MODIFIERKEY_SHIFT +ISO_8859_5_E0 = KEY_R +ISO_8859_5_C2 = KEY_Y, MODIFIERKEY_SHIFT +ISO_8859_5_E2 = KEY_Y +ISO_8859_5_CB = KEY_U, MODIFIERKEY_SHIFT +ISO_8859_5_EB = KEY_U +ISO_8859_5_C3 = KEY_I, MODIFIERKEY_SHIFT +ISO_8859_5_E3 = KEY_I +ISO_8859_5_B8 = KEY_O, MODIFIERKEY_SHIFT +ISO_8859_5_D8 = KEY_O +ISO_8859_5_BE = KEY_P, MODIFIERKEY_SHIFT +ISO_8859_5_DE = KEY_P +ISO_8859_5_CE = KEY_LEFT_BRACE, MODIFIERKEY_SHIFT +ISO_8859_5_EE = KEY_LEFT_BRACE +ISO_8859_5_C9 = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT +ISO_8859_5_E9 = KEY_RIGHT_BRACE + +//2nd row +//асдфгчйкльж№ +//АСДФГЧЙКЛЬЖ~ +ISO_8859_5_B0 = KEY_A, MODIFIERKEY_SHIFT +ISO_8859_5_D0 = KEY_A +ISO_8859_5_C1 = KEY_S, MODIFIERKEY_SHIFT +ISO_8859_5_E1 = KEY_S +ISO_8859_5_B4 = KEY_D, MODIFIERKEY_SHIFT +ISO_8859_5_D4 = KEY_D +ISO_8859_5_C0 = KEY_F, MODIFIERKEY_SHIFT +ISO_8859_5_D0 = KEY_F +ISO_8859_5_B3 = KEY_G, MODIFIERKEY_SHIFT +ISO_8859_5_D3 = KEY_G +ISO_8859_5_C3 = KEY_H, MODIFIERKEY_SHIFT +ISO_8859_5_E3 = KEY_H +ISO_8859_5_B9 = KEY_J, MODIFIERKEY_SHIFT +ISO_8859_5_D9 = KEY_J +ISO_8859_5_BA = KEY_K, MODIFIERKEY_SHIFT +ISO_8859_5_DA = KEY_K +ISO_8859_5_BB = KEY_L, MODIFIERKEY_SHIFT +ISO_8859_5_DB = KEY_L +ISO_8859_5_CC = KEY_COLON, MODIFIERKEY_SHIFT +ISO_8859_5_EC = KEY_COLON +ISO_8859_5_B6 = KEY_QUOTE, MODIFIERKEY_SHIFT +ISO_8859_5_D6 = KEY_QUOTE +ISO_8859_5_F0 = KEY_BACKSLASH, MODIFIERKEY_SHIFT +ISO_8859_5_7E = KEY_BACKSLASH + +//3rd row +//зхцвбнм,./ +//ЗХЦВБНМ;:? +ISO_8859_5_B7 = KEY_Z, MODIFIERKEY_SHIFT +ISO_8859_5_D7 = KEY_Z +ISO_8859_5_C5 = KEY_X, MODIFIERKEY_SHIFT +ISO_8859_5_E5 = KEY_X +ISO_8859_5_C6 = KEY_C, MODIFIERKEY_SHIFT +ISO_8859_5_E6 = KEY_C +ISO_8859_5_B2 = KEY_V, MODIFIERKEY_SHIFT +ISO_8859_5_D2 = KEY_V +ISO_8859_5_B1 = KEY_B, MODIFIERKEY_SHIFT +ISO_8859_5_D1 = KEY_B +ISO_8859_5_BD = KEY_N, MODIFIERKEY_SHIFT +ISO_8859_5_DD = KEY_N +ISO_8859_5_BC = KEY_M, MODIFIERKEY_SHIFT +ISO_8859_5_DC = KEY_M +ISO_8859_5_2C = KEY_COMMA, MODIFIERKEY_SHIFT +ISO_8859_5_3B = KEY_COMMA +ISO_8859_5_2E = KEY_PERIOD, MODIFIERKEY_SHIFT +ISO_8859_5_3A = KEY_PERIOD +ISO_8859_5_2F = KEY_SLASH, MODIFIERKEY_SHIFT +ISO_8859_5_3F = KEY_SLASH + diff --git a/resources/si.properties b/resources/si.properties new file mode 100644 index 0000000..ffb33af --- /dev/null +++ b/resources/si.properties @@ -0,0 +1,139 @@ +//LAYOUT_SLOVENIAN +//Translation by ziolity (01/08/2014) +//Updated by ziolity on (03/08/2014) (small fix) +KEY_NON_US_100 = 100 + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + + +// Nonbreakng Space +// a b c č d e f g h i j k l m n o p r s š t u v z ž x y q w ć đ +ASCII_20 = KEY_SPACE +ASCII_61 = KEY_A +ASCII_62 = KEY_B +ASCII_63 = KEY_C +UNICODE_10D = KEY_SEMICOLON +ASCII_64 = KEY_D +ASCII_65 = KEY_E +ASCII_66 = KEY_F +ASCII_67 = KEY_G +ASCII_68 = KEY_H +ASCII_69 = KEY_I +ASCII_6A = KEY_J +ASCII_6B = KEY_K +ASCII_6C = KEY_L +ASCII_6D = KEY_M +ASCII_6E = KEY_N +ASCII_6F = KEY_O +ASCII_70 = KEY_P +ASCII_72 = KEY_R +ASCII_73 = KEY_S +UNICODE_161 = KEY_LEFT_BRACE +ASCII_74 = KEY_T +ASCII_75 = KEY_U +ASCII_76 = KEY_V +ASCII_7A = KEY_Y +UNICODE_17E = KEY_BACKSLASH +ASCII_78 = KEY_X +ASCII_79 = KEY_Z +ASCII_71 = KEY_Q +ASCII_77 = KEY_W +UNICODE_107 = KEY_QUOTE +UNICODE_111 = KEY_RIGHT_BRACE +// A B C Č D E F G H I J K L M N O P R S Š T U V Z Ž X Y Q W Ć Đ +ASCII_41 = KEY_A, MODIFIERKEY_SHIFT +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +UNICODE_10C = KEY_SEMICOLON, MODIFIERKEY_SHIFT +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +ASCII_4D = KEY_M, MODIFIERKEY_SHIFT +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +UNICODE_160 = KEY_LEFT_BRACE, MODIFIERKEY_SHIFT +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +ASCII_5A = KEY_Y, MODIFIERKEY_SHIFT +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +ASCII_59 = KEY_Z, MODIFIERKEY_SHIFT +UNICODE_17D = KEY_BACKSLASH, MODIFIERKEY_SHIFT +ASCII_51 = KEY_Q, MODIFIERKEY_SHIFT +ASCII_57 = KEY_W, MODIFIERKEY_SHIFT +UNICODE_106 = KEY_QUOTE, MODIFIERKEY_SHIFT +UNICODE_110 = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT +// Symbols // ! " # $ % & / ( ) = ? * < > , ; . : - _ [ ] ~ ` \ | € ÷ × ł Ł ß ¤ { } § @ +ASCII_21 = KEY_1, MODIFIERKEY_SHIFT +ASCII_22 = KEY_2, MODIFIERKEY_SHIFT +ASCII_23 = KEY_3, MODIFIERKEY_SHIFT +ASCII_24 = KEY_4, MODIFIERKEY_SHIFT +ASCII_25 = KEY_5, MODIFIERKEY_SHIFT +ASCII_26 = KEY_6, MODIFIERKEY_SHIFT +ASCII_2F = KEY_7, MODIFIERKEY_SHIFT +ASCII_28 = KEY_8, MODIFIERKEY_SHIFT +ASCII_29 = KEY_9, MODIFIERKEY_SHIFT +ASCII_3D = KEY_0, MODIFIERKEY_SHIFT +ASCII_3F = KEY_MINUS, MODIFIERKEY_SHIFT +ASCII_2A = KEY_EQUAL, MODIFIERKEY_SHIFT +ASCII_27 = KEY_MINUS +ASCII_2B = KEY_EQUAL +ASCII_7E = KEY_1, MODIFIERKEY_RIGHT_ALT +ASCII_60 = KEY_7, MODIFIERKEY_RIGHT_ALT +ASCII_5C = KEY_Q, MODIFIERKEY_RIGHT_ALT +ASCII_7C = KEY_W, MODIFIERKEY_RIGHT_ALT +UNICODE_20AC = KEY_E, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_F7 = KEY_LEFT_BRACE, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_D7 = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT +ASCII_5B = KEY_F, MODIFIERKEY_RIGHT_ALT +ASCII_5D = KEY_G, MODIFIERKEY_RIGHT_ALT +UNICODE_142 = KEY_K, MODIFIERKEY_RIGHT_ALT +UNICODE_141 = KEY_L, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_DF = KEY_QUOTE, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_A4 = KEY_BACKSLASH, MODIFIERKEY_RIGHT_ALT +ASCII_3C = KEY_NON_US_100 +ASCII_3E = KEY_NON_US_100, MODIFIERKEY_SHIFT +ASCII_40 = KEY_V, MODIFIERKEY_RIGHT_ALT +ASCII_7B = KEY_B, MODIFIERKEY_RIGHT_ALT +ASCII_7D = KEY_N, MODIFIERKEY_RIGHT_ALT +ASCII_2E = KEY_PERIOD +ASCII_2D = KEY_SLASH +ASCII_3A = KEY_PERIOD, MODIFIERKEY_SHIFT +ASCII_5F = KEY_SLASH, MODIFIERKEY_SHIFT +ASCII_2C = KEY_COMMA +ASCII_3B = KEY_COMMA, MODIFIERKEY_SHIFT +ISO_8859_1_A7 = KEY_M, MODIFIERKEY_RIGHT_ALT +// Not needed chars // input: ¸ ¨ ˇ ^ ˘ ° ˛ ˙ ´ ˝ ¨ ¸ output: ¸¨ˇ^˘°˛˙´˝¨¸ (notice no space!) +ISO_8859_1_B8 = KEY_TILDE +ISO_8859_1_A8 = KEY_TILDE, MODIFIERKEY_SHIFT +UNICODE_2C7 = KEY_2, MODIFIERKEY_RIGHT_ALT +ASCII_5E = KEY_3, MODIFIERKEY_RIGHT_ALT +UNICODE_2D8 = KEY_4, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_B0 = KEY_5, MODIFIERKEY_RIGHT_ALT +UNICODE_2DB = KEY_6, MODIFIERKEY_RIGHT_ALT +UNICODE_2D9 = KEY_8, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_B4 = KEY_9, MODIFIERKEY_RIGHT_ALT +UNICODE_2DD = KEY_0, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_A8 = KEY_MINUS, MODIFIERKEY_RIGHT_ALT +ISO_8859_1_B8 = KEY_EQUAL, MODIFIERKEY_RIGHT_ALT +// Numbers: 0 1 2 3 4 5 6 7 8 9 +ASCII_30 = KEY_0 +ASCII_31 = KEY_1 +ASCII_32 = KEY_2 +ASCII_33 = KEY_3 +ASCII_34 = KEY_4 +ASCII_35 = KEY_5 +ASCII_36 = KEY_6 +ASCII_37 = KEY_7 +ASCII_38 = KEY_8 +ASCII_39 = KEY_9 diff --git a/resources/sv.properties b/resources/sv.properties new file mode 100644 index 0000000..2fc36c5 --- /dev/null +++ b/resources/sv.properties @@ -0,0 +1,334 @@ +//LAYOUT_SWEDISH +//Credits go to r.hegazi & shalafi for patch (11/09/2013) +KEY_NON_US_100 = 100 + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + + +ASCII_20 = KEY_SPACE +// 32 +ASCII_21 = KEY_1, MODIFIERKEY_SHIFT +// 33 ! +ASCII_22 = KEY_2, MODIFIERKEY_SHIFT +// 34 " +ASCII_23 = KEY_3, MODIFIERKEY_SHIFT +// 35 # +ASCII_24 = KEY_4, MODIFIERKEY_RIGHT_ALT +// 36 $ +ASCII_25 = KEY_5, MODIFIERKEY_SHIFT +// 37 % +ASCII_26 = KEY_6, MODIFIERKEY_SHIFT +// 38 & +ASCII_27 = KEY_BACKSLASH +// 39 ' +ASCII_28 = KEY_8, MODIFIERKEY_SHIFT +// 40 ( +ASCII_29 = KEY_9, MODIFIERKEY_SHIFT +// 41 ) +ASCII_2A = KEY_BACKSLASH, MODIFIERKEY_SHIFT +// 42 * +ASCII_2B = KEY_MINUS +// 43 + +ASCII_2C = KEY_COMMA +// 44 , +ASCII_2D = KEY_SLASH +// 45 - +ASCII_2E = KEY_PERIOD +// 46 . +ASCII_2F = KEY_7, MODIFIERKEY_SHIFT +// 47 / +ASCII_30 = KEY_0 +// 48 0 +ASCII_31 = KEY_1 +// 49 1 +ASCII_32 = KEY_2 +// 50 2 +ASCII_33 = KEY_3 +// 51 3 +ASCII_34 = KEY_4 +// 52 4 +ASCII_35 = KEY_5 +// 53 5 +ASCII_36 = KEY_6 +// 54 6 +ASCII_37 = KEY_7 +// 55 7 +ASCII_38 = KEY_8 +// 55 8 +ASCII_39 = KEY_9 +// 57 9 +ASCII_3A = KEY_PERIOD, MODIFIERKEY_SHIFT +// 58 : +ASCII_3B = KEY_COMMA, MODIFIERKEY_SHIFT +// 59 ; +ASCII_3C = KEY_NON_US_100 +// 60 < +ASCII_3D = KEY_0, MODIFIERKEY_SHIFT +// 61 = +ASCII_3E = KEY_NON_US_100, MODIFIERKEY_SHIFT +// 62 > +ASCII_3F = KEY_MINUS, MODIFIERKEY_SHIFT +// 63 ? +ASCII_40 = KEY_2, MODIFIERKEY_RIGHT_ALT +// 64 @ +ASCII_41 = KEY_A, MODIFIERKEY_SHIFT +// 65 A +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +// 66 B +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +// 67 C +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +// 68 D +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +// 69 E +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +// 70 F +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +// 71 G +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +// 72 H +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +// 73 I +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +// 74 J +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +// 75 K +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +// 76 L +ASCII_4D = KEY_M, MODIFIERKEY_SHIFT +// 77 M +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +// 78 N +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +// 79 O +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +// 80 P +ASCII_51 = KEY_Q, MODIFIERKEY_SHIFT +// 81 Q +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +// 82 R +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +// 83 S +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +// 84 T +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +// 85 U +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +// 86 V +ASCII_57 = KEY_W, MODIFIERKEY_SHIFT +// 87 W +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +// 88 X +ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT +// 89 Y +ASCII_5A = KEY_Z, MODIFIERKEY_SHIFT +// 90 Z +ASCII_5B = KEY_8, MODIFIERKEY_RIGHT_ALT +// 91 [ +ASCII_5C = KEY_MINUS, MODIFIERKEY_RIGHT_ALT +// 92 +ASCII_5D = KEY_9, MODIFIERKEY_RIGHT_ALT +// 93 ] +ASCII_5E = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT +// 94 ^ +ASCII_5F = KEY_SLASH, MODIFIERKEY_SHIFT +// 95 _ +ASCII_60 = KEY_EQUAL, MODIFIERKEY_SHIFT +// 96 ` +ASCII_61 = KEY_A +// 97 a +ASCII_62 = KEY_B +// 98 b +ASCII_63 = KEY_C +// 99 c +ASCII_64 = KEY_D +// 100 d +ASCII_65 = KEY_E +// 101 e +ASCII_66 = KEY_F +// 102 f +ASCII_67 = KEY_G +// 103 g +ASCII_68 = KEY_H +// 104 h +ASCII_69 = KEY_I +// 105 i +ASCII_6A = KEY_J +// 106 j +ASCII_6B = KEY_K +// 107 k +ASCII_6C = KEY_L +// 108 l +ASCII_6D = KEY_M +// 109 m +ASCII_6E = KEY_N +// 110 n +ASCII_6F = KEY_O +// 111 o +ASCII_70 = KEY_P +// 112 p +ASCII_71 = KEY_Q +// 113 q +ASCII_72 = KEY_R +// 114 r +ASCII_73 = KEY_S +// 115 s +ASCII_74 = KEY_T +// 116 t +ASCII_75 = KEY_U +// 117 u +ASCII_76 = KEY_V +// 118 v +ASCII_77 = KEY_W +// 119 w +ASCII_78 = KEY_X +// 120 x +ASCII_79 = KEY_Y +// 121 y +ASCII_7A = KEY_Z +// 122 z +ASCII_7B = KEY_7, MODIFIERKEY_RIGHT_ALT +// 123 { +ASCII_7C = KEY_NON_US_100, MODIFIERKEY_RIGHT_ALT +// 124 | +ASCII_7D = KEY_0, MODIFIERKEY_RIGHT_ALT +// 125 } +//ASCII_7E = TILDE_BITS + KEY_SPACE +// 126 ~ +ASCII_7F = KEY_BACKSPACE +// 127 + +ISO_8859_1_A0 = KEY_SPACE +// 160 Nonbreakng Space +ISO_8859_1_A3 = KEY_3, MODIFIERKEY_RIGHT_ALT +// 163 £ Pound Sign +ISO_8859_1_A4 = KEY_4, MODIFIERKEY_SHIFT +// 164 ¤ Currency Sign +ISO_8859_1_A7 = KEY_TILDE +// 167 § SECTION SIGN +//ISO_8859_1_A8 = DIAERESIS_BITS + KEY_SPACE +// 168 ¨ DIAERESIS +ISO_8859_1_AB = KEY_4 +// 171 « LEFT DOUBLE ANGLE QUOTE +//ISO_8859_1_B4 = ACUTE_ACCENT_BITS + KEY_SPACE +// 180 ´ ACUTE ACCENT +ISO_8859_1_B5 = KEY_M, MODIFIERKEY_RIGHT_ALT +// 181 µ MICRO SIGN +ISO_8859_1_BD = KEY_TILDE, MODIFIERKEY_SHIFT +// 189 ½ FRACTION ONE HALF +//ISO_8859_1_C0 = GRAVE_ACCENT_BITS + KEY_A, MODIFIERKEY_SHIFT +// 192 À A GRAVE +//ISO_8859_1_C1 = ACUTE_ACCENT_BITS + KEY_A, MODIFIERKEY_SHIFT +// 193 Á A ACUTE +//ISO_8859_1_C2 = CIRCUMFLEX_BITS + KEY_A, MODIFIERKEY_SHIFT +// 194  A CIRCUMFLEX +//ISO_8859_1_C3 = TILDE_BITS + KEY_A, MODIFIERKEY_SHIFT +// 195 à A TILDE +ISO_8859_1_C4 = KEY_QUOTE, MODIFIERKEY_SHIFT +// 196 Ä A DIAERESIS +ISO_8859_1_C5 = KEY_LEFT_BRACE, MODIFIERKEY_SHIFT +// 197 Å A RING ABOVE +//ISO_8859_1_C8 = GRAVE_ACCENT_BITS + KEY_E, MODIFIERKEY_SHIFT +// 200 È E GRAVE +//ISO_8859_1_C9 = ACUTE_ACCENT_BITS + KEY_E, MODIFIERKEY_SHIFT +// 201 É E ACUTE +//ISO_8859_1_CA = CIRCUMFLEX_BITS + KEY_E, MODIFIERKEY_SHIFT +// 202 Ê E CIRCUMFLEX +//ISO_8859_1_CB = DIAERESIS_BITS + KEY_E, MODIFIERKEY_SHIFT +// 203 Ë E DIAERESIS +//ISO_8859_1_CC = GRAVE_ACCENT_BITS + KEY_I, MODIFIERKEY_SHIFT +// 204 Ì I GRAVE +//ISO_8859_1_CD = ACUTE_ACCENT_BITS + KEY_I, MODIFIERKEY_SHIFT +// 205 Í I ACUTE +//ISO_8859_1_CE = CIRCUMFLEX_BITS + KEY_I, MODIFIERKEY_SHIFT +// 206 Î I CIRCUMFLEX +//ISO_8859_1_CF = DIAERESIS_BITS + KEY_I, MODIFIERKEY_SHIFT +// 207 Ï I DIAERESIS +//ISO_8859_1_D0 = KEY_D, MODIFIERKEY_RIGHT_ALT, MODIFIERKEY_SHIFT +// 208 Ð ETH +//ISO_8859_1_D1 = TILDE_BITS + KEY_N, MODIFIERKEY_SHIFT +// 209 Ñ N TILDE +//ISO_8859_1_D2 = GRAVE_ACCENT_BITS + KEY_O, MODIFIERKEY_SHIFT +// 210 Ò O GRAVE +//ISO_8859_1_D3 = ACUTE_ACCENT_BITS + KEY_O, MODIFIERKEY_SHIFT +// 211 Ó O ACUTE +//ISO_8859_1_D4 = CIRCUMFLEX_BITS + KEY_O, MODIFIERKEY_SHIFT +// 212 Ô O CIRCUMFLEX +//ISO_8859_1_D5 = TILDE_BITS + KEY_O, MODIFIERKEY_SHIFT +// 213 Õ O TILDE +ISO_8859_1_D6 = KEY_SEMICOLON, MODIFIERKEY_SHIFT +// 214 Ö O DIAERESIS +//ISO_8859_1_D9 = GRAVE_ACCENT_BITS + KEY_U, MODIFIERKEY_SHIFT +// 217 Ù U GRAVE +//ISO_8859_1_DA = ACUTE_ACCENT_BITS + KEY_U, MODIFIERKEY_SHIFT +// 218 Ú U ACUTE +//ISO_8859_1_DB = CIRCUMFLEX_BITS + KEY_U, MODIFIERKEY_SHIFT +// 219 Û U CIRCUMFLEX +//ISO_8859_1_DC = DIAERESIS_BITS + KEY_U, MODIFIERKEY_SHIFT +// 220 Ü U DIAERESIS +//ISO_8859_1_DD = ACUTE_ACCENT_BITS + KEY_Y, MODIFIERKEY_SHIFT +// 221 Ý Y ACUTE +//ISO_8859_1_DE = KEY_T, MODIFIERKEY_RIGHT_ALT, MODIFIERKEY_SHIFT +// 222 Þ THORN +ISO_8859_1_DF = KEY_S, MODIFIERKEY_RIGHT_ALT +// 223 ß SHARP S +//ISO_8859_1_E0 = GRAVE_ACCENT_BITS + KEY_A +// 224 à a GRAVE +//ISO_8859_1_E1 = ACUTE_ACCENT_BITS + KEY_A +// 225 á a ACUTE +//ISO_8859_1_E2 = CIRCUMFLEX_BITS + KEY_A +// 226 â a CIRCUMFLEX +//ISO_8859_1_E3 = TILDE_BITS + KEY_A +// 227 ã a TILDE +ISO_8859_1_E4 = KEY_QUOTE +// 228 ä a DIAERESIS +ISO_8859_1_E5 = KEY_LEFT_BRACE +// 229 å a RING ABOVE +//ISO_8859_1_E8 = GRAVE_ACCENT_BITS + KEY_E +// 232 è e GRAVE +//ISO_8859_1_E9 = ACUTE_ACCENT_BITS + KEY_E +// 233 é e ACUTE +//ISO_8859_1_EA = CIRCUMFLEX_BITS + KEY_E +// 234 ê e CIRCUMFLEX +//ISO_8859_1_EB = DIAERESIS_BITS + KEY_E +// 235 ë e DIAERESIS +//ISO_8859_1_EC = GRAVE_ACCENT_BITS + KEY_I +// 236 ì i GRAVE +//ISO_8859_1_ED = ACUTE_ACCENT_BITS + KEY_I +// 237 í i ACUTE +//ISO_8859_1_EE = CIRCUMFLEX_BITS + KEY_I +// 238 î i CIRCUMFLEX +//ISO_8859_1_EF = DIAERESIS_BITS + KEY_I +// 239 ï i DIAERESIS +ISO_8859_1_F0 = KEY_D, MODIFIERKEY_RIGHT_ALT +// 240 ð ETH +//ISO_8859_1_F1 = TILDE_BITS + KEY_N +// 241 ñ n TILDE +//ISO_8859_1_F2 = GRAVE_ACCENT_BITS + KEY_O +// 242 ò o GRAVE +//ISO_8859_1_F3 = ACUTE_ACCENT_BITS + KEY_O +// 243 ó o ACUTE +//ISO_8859_1_F4 = CIRCUMFLEX_BITS + KEY_O +// 244 ô o CIRCUMFLEX +//ISO_8859_1_F5 = TILDE_BITS + KEY_O +// 245 õ o TILDE +ISO_8859_1_F6 = KEY_SEMICOLON +// 246 ö o DIAERESIS +//ISO_8859_1_F9 = GRAVE_ACCENT_BITS + KEY_U +// 249 ù u GRAVE +//ISO_8859_1_FA = ACUTE_ACCENT_BITS + KEY_U +// 250 ú u ACUTE +//ISO_8859_1_FB = CIRCUMFLEX_BITS + KEY_U +// 251 û u CIRCUMFLEX +//ISO_8859_1_FC = DIAERESIS_BITS + KEY_U +// 252 ü u DIAERESIS +//ISO_8859_1_FD = ACUTE_ACCENT_BITS + KEY_Y +// 253 ý y ACUTE +ISO_8859_1_FE = KEY_T, MODIFIERKEY_RIGHT_ALT +// 254 þ THORN +//ISO_8859_1_FF = DIAERESIS_BITS + KEY_Y +// 255 ÿ y DIAERESIS +UNICODE_20AC = KEY_E, MODIFIERKEY_RIGHT_ALT +// € Euro Sign + diff --git a/resources/tr.properties b/resources/tr.properties new file mode 100644 index 0000000..50a85d1 --- /dev/null +++ b/resources/tr.properties @@ -0,0 +1,198 @@ +// Turkish Layout +// By gokhanokur44 + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + +// 32 +ASCII_20 = KEY_SPACE + // 33 ! +ASCII_21 = KEY_1, MODIFIERKEY_SHIFT +// 34 " +ASCII_22 = KEY_TILDE +// 35 # +ASCII_23 = KEY_3, MODIFIERKEY_RIGHT_ALT +// 36 $ +ASCII_24 = KEY_4, MODIFIERKEY_RIGHT_ALT +// 37 % +ASCII_25 = KEY_5, MODIFIERKEY_SHIFT +// 38 & +ASCII_26 = KEY_7, MODIFIERKEY_SHIFT +// 39 ' +ASCII_27 = KEY_2, MODIFIERKEY_SHIFT +// 40 ( +ASCII_28 = KEY_8, MODIFIERKEY_SHIFT +// 41 ) +ASCII_29 = KEY_9, MODIFIERKEY_SHIFT +// 42 * +ASCII_2A = KEY_MINUS +// 43 + +ASCII_2B = KEY_4, MODIFIERKEY_SHIFT +// 44 , +ASCII_2C = KEY_BACKSLASH +// 45 - +ASCII_2D = KEY_EQUAL +// 46 . +ASCII_2E = KEY_SLASH +// 47 / +ASCII_2F = KEY_7, MODIFIERKEY_SHIFT +// 48 0 +ASCII_30 = KEY_0 +// 49 1 +ASCII_31 = KEY_1 +// 50 2 +ASCII_32 = KEY_2 +// 51 3 +ASCII_33 = KEY_3 +// 52 4 +ASCII_34 = KEY_4 +// 53 5 +ASCII_35 = KEY_5 +// 54 6 +ASCII_36 = KEY_6 +// 55 7 +ASCII_37 = KEY_7 +// 55 8 +ASCII_38 = KEY_8 +// 57 9 +ASCII_39 = KEY_9 +// 58 : +ASCII_3A = KEY_SLASH, MODIFIERKEY_SHIFT +// 59 ; +ASCII_3B = KEY_BACKSLASH, MODIFIERKEY_SHIFT +// 60 < +ASCII_3C = KEY_COMMA, MODIFIERKEY_SHIFT +// 61 = +ASCII_3D = KEY_0, MODIFIERKEY_SHIFT +// 62 > +ASCII_3E = KEY_PERIOD, MODIFIERKEY_SHIFT +// 63 ? +ASCII_3F = KEY_MINUS, MODIFIERKEY_SHIFT +// 64 @ +ASCII_40 = KEY_Q, MODIFIERKEY_RIGHT_ALT +// 65 A +ASCII_41 = KEY_A, MODIFIERKEY_SHIFT +// 66 B +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +// 67 C +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +// 68 D +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +// 69 E +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +// 70 F +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +// 71 G +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +// 72 H +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +// 73 I +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +// 74 J +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +// 75 K +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +// 76 L +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +// 77 M +ASCII_4D = KEY_M, MODIFIERKEY_SHIFT +// 78 N +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +// 79 O +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +// 80 P +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +// 81 Q +ASCII_51 = KEY_Q, MODIFIERKEY_SHIFT +// 82 R +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +// 83 S +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +// 84 T +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +// 85 U +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +// 86 V +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +// 87 W +ASCII_57 = KEY_W, MODIFIERKEY_SHIFT +// 88 X +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +// 89 Y +ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT +// 90 Z +ASCII_5A = KEY_Z, MODIFIERKEY_SHIFT +// 91 [ +ASCII_5B = KEY_8, MODIFIERKEY_RIGHT_ALT +// 92 +ASCII_5C = KEY_MINUS, MODIFIERKEY_RIGHT_ALT +// 93 ] +ASCII_5D = KEY_9, MODIFIERKEY_RIGHT_ALT +// 94 ^ +ASCII_5E = KEY_3, MODIFIERKEY_SHIFT +// 95 _ +ASCII_5F = KEY_EQUAL, MODIFIERKEY_SHIFT +// 96 ` +ASCII_60 = KEY_BACKSLASH, MODIFIERKEY_RIGHT_ALT +// 97 a +ASCII_61 = KEY_A +// 98 b +ASCII_62 = KEY_B +// 99 c +ASCII_63 = KEY_C +// 100 d +ASCII_64 = KEY_D +// 101 e +ASCII_65 = KEY_E +// 102 f +ASCII_66 = KEY_F +// 103 g +ASCII_67 = KEY_G +// 104 h +ASCII_68 = KEY_H +// 105 i +ASCII_69 = KEY_QUOTE +// 106 j +ASCII_6A = KEY_J +// 107 k +ASCII_6B = KEY_K +// 108 l +ASCII_6C = KEY_L +// 109 m +ASCII_6D = KEY_M +// 110 n +ASCII_6E = KEY_N +// 111 o +ASCII_6F = KEY_O +// 112 p +ASCII_70 = KEY_P +// 113 q +ASCII_71 = KEY_Q +// 114 r +ASCII_72 = KEY_R +// 115 s +ASCII_73 = KEY_S +// 116 t +ASCII_74 = KEY_T +// 117 u +ASCII_75 = KEY_U +// 118 v +ASCII_76 = KEY_V +// 119 w +ASCII_77 = KEY_W +// 120 x +ASCII_78 = KEY_X +// 121 y +ASCII_79 = KEY_Y +// 122 z +ASCII_7A = KEY_Z +// 123 { +ASCII_7B = KEY_7, MODIFIERKEY_RIGHT_ALT +// 124 | +ASCII_7C = KEY_BACKSLASH, MODIFIERKEY_SHIFT +// 125 } +ASCII_7D = KEY_0, MODIFIERKEY_RIGHT_ALT +// 126 ~ +ASCII_7E = KEY_RIGHT_BRACE, MODIFIERKEY_RIGHT_ALT +// 127 +ASCII_7F = KEY_BACKSPACE diff --git a/resources/us.properties b/resources/us.properties new file mode 100644 index 0000000..c117bfc --- /dev/null +++ b/resources/us.properties @@ -0,0 +1,197 @@ +// US layout + +ASCII_09 = KEY_TAB +ASCII_0A = KEY_ENTER + +// 32 +ASCII_20 = KEY_SPACE + // 33 ! +ASCII_21 = KEY_1, MODIFIERKEY_SHIFT +// 34 " +ASCII_22 = KEY_QUOTE, MODIFIERKEY_SHIFT +// 35 # +ASCII_23 = KEY_3, MODIFIERKEY_SHIFT +// 36 $ +ASCII_24 = KEY_4, MODIFIERKEY_SHIFT +// 37 % +ASCII_25 = KEY_5, MODIFIERKEY_SHIFT +// 38 & +ASCII_26 = KEY_7, MODIFIERKEY_SHIFT +// 39 ' +ASCII_27 = KEY_QUOTE +// 40 ( +ASCII_28 = KEY_9, MODIFIERKEY_SHIFT +// 41 ) +ASCII_29 = KEY_0, MODIFIERKEY_SHIFT +// 42 * +ASCII_2A = KEY_8, MODIFIERKEY_SHIFT +// 43 + +ASCII_2B = KEY_EQUAL, MODIFIERKEY_SHIFT +// 44 , +ASCII_2C = KEY_COMMA +// 45 - +ASCII_2D = KEY_MINUS +// 46 . +ASCII_2E = KEY_PERIOD +// 47 / +ASCII_2F = KEY_SLASH +// 48 0 +ASCII_30 = KEY_0 +// 49 1 +ASCII_31 = KEY_1 +// 50 2 +ASCII_32 = KEY_2 +// 51 3 +ASCII_33 = KEY_3 +// 52 4 +ASCII_34 = KEY_4 +// 53 5 +ASCII_35 = KEY_5 +// 54 6 +ASCII_36 = KEY_6 +// 55 7 +ASCII_37 = KEY_7 +// 55 8 +ASCII_38 = KEY_8 +// 57 9 +ASCII_39 = KEY_9 +// 58 : +ASCII_3A = KEY_SEMICOLON, MODIFIERKEY_SHIFT +// 59 ; +ASCII_3B = KEY_SEMICOLON +// 60 < +ASCII_3C = KEY_COMMA, MODIFIERKEY_SHIFT +// 61 = +ASCII_3D = KEY_EQUAL +// 62 > +ASCII_3E = KEY_PERIOD, MODIFIERKEY_SHIFT +// 63 ? +ASCII_3F = KEY_SLASH, MODIFIERKEY_SHIFT +// 64 @ +ASCII_40 = KEY_2, MODIFIERKEY_SHIFT +// 65 A +ASCII_41 = KEY_A, MODIFIERKEY_SHIFT +// 66 B +ASCII_42 = KEY_B, MODIFIERKEY_SHIFT +// 67 C +ASCII_43 = KEY_C, MODIFIERKEY_SHIFT +// 68 D +ASCII_44 = KEY_D, MODIFIERKEY_SHIFT +// 69 E +ASCII_45 = KEY_E, MODIFIERKEY_SHIFT +// 70 F +ASCII_46 = KEY_F, MODIFIERKEY_SHIFT +// 71 G +ASCII_47 = KEY_G, MODIFIERKEY_SHIFT +// 72 H +ASCII_48 = KEY_H, MODIFIERKEY_SHIFT +// 73 I +ASCII_49 = KEY_I, MODIFIERKEY_SHIFT +// 74 J +ASCII_4A = KEY_J, MODIFIERKEY_SHIFT +// 75 K +ASCII_4B = KEY_K, MODIFIERKEY_SHIFT +// 76 L +ASCII_4C = KEY_L, MODIFIERKEY_SHIFT +// 77 M +ASCII_4D = KEY_M, MODIFIERKEY_SHIFT +// 78 N +ASCII_4E = KEY_N, MODIFIERKEY_SHIFT +// 79 O +ASCII_4F = KEY_O, MODIFIERKEY_SHIFT +// 80 P +ASCII_50 = KEY_P, MODIFIERKEY_SHIFT +// 81 Q +ASCII_51 = KEY_Q, MODIFIERKEY_SHIFT +// 82 R +ASCII_52 = KEY_R, MODIFIERKEY_SHIFT +// 83 S +ASCII_53 = KEY_S, MODIFIERKEY_SHIFT +// 84 T +ASCII_54 = KEY_T, MODIFIERKEY_SHIFT +// 85 U +ASCII_55 = KEY_U, MODIFIERKEY_SHIFT +// 86 V +ASCII_56 = KEY_V, MODIFIERKEY_SHIFT +// 87 W +ASCII_57 = KEY_W, MODIFIERKEY_SHIFT +// 88 X +ASCII_58 = KEY_X, MODIFIERKEY_SHIFT +// 89 Y +ASCII_59 = KEY_Y, MODIFIERKEY_SHIFT +// 90 Z +ASCII_5A = KEY_Z, MODIFIERKEY_SHIFT +// 91 [ +ASCII_5B = KEY_LEFT_BRACE +// 92 +ASCII_5C = KEY_BACKSLASH +// 93 ] +ASCII_5D = KEY_RIGHT_BRACE +// 94 ^ +ASCII_5E = KEY_6, MODIFIERKEY_SHIFT +// 95 _ +ASCII_5F = KEY_MINUS, MODIFIERKEY_SHIFT +// 96 ` +ASCII_60 = KEY_TILDE +// 97 a +ASCII_61 = KEY_A +// 98 b +ASCII_62 = KEY_B +// 99 c +ASCII_63 = KEY_C +// 100 d +ASCII_64 = KEY_D +// 101 e +ASCII_65 = KEY_E +// 102 f +ASCII_66 = KEY_F +// 103 g +ASCII_67 = KEY_G +// 104 h +ASCII_68 = KEY_H +// 105 i +ASCII_69 = KEY_I +// 106 j +ASCII_6A = KEY_J +// 107 k +ASCII_6B = KEY_K +// 108 l +ASCII_6C = KEY_L +// 109 m +ASCII_6D = KEY_M +// 110 n +ASCII_6E = KEY_N +// 111 o +ASCII_6F = KEY_O +// 112 p +ASCII_70 = KEY_P +// 113 q +ASCII_71 = KEY_Q +// 114 r +ASCII_72 = KEY_R +// 115 s +ASCII_73 = KEY_S +// 116 t +ASCII_74 = KEY_T +// 117 u +ASCII_75 = KEY_U +// 118 v +ASCII_76 = KEY_V +// 119 w +ASCII_77 = KEY_W +// 120 x +ASCII_78 = KEY_X +// 121 y +ASCII_79 = KEY_Y +// 122 z +ASCII_7A = KEY_Z +// 123 { +ASCII_7B = KEY_LEFT_BRACE, MODIFIERKEY_SHIFT +// 124 | +ASCII_7C = KEY_BACKSLASH, MODIFIERKEY_SHIFT +// 125 } +ASCII_7D = KEY_RIGHT_BRACE, MODIFIERKEY_SHIFT +// 126 ~ +ASCII_7E = KEY_TILDE, MODIFIERKEY_SHIFT +// 127 +ASCII_7F = KEY_BACKSPACE