c ---------------------------------------------- c German Extended Unicode Keyboard c By Lukas Pietsch c ---------------------------------------------- c ---------------------------------------------- c I thank David Perry (perryd@telocity.com) for c a lot of useful ideas I stole from him in designing c this keyboard. c ---------------------------------------------- c Note: this is designed to be used in conjunction with c a German system keyboard driver, and it is for people c used to a German layout. If you want a keyboard c based on an English layout, I recommend using c David Perry's at http://members.telocity.com/~perryd VERSION 5.0 LANGUAGE x07, x01 BITMAP "Umlaut.bmp" c If you should decide to modify this keyboard, c please change the following four lines, c and use a different filename to save and distribute it. NAME "German Extended Unicode" LAYOUT x03 COPYRIGHT "Made by Lukas Pietsch (pietsch@mail.uni-freiburg.de), 2001. Freely distributable/modifiable." MESSAGE "This Latin-Extended Unicode keyboard is designed for use with a German system keyboard. You may not find it very useful if you are used to a different base keyboard." begin Unicode > use(UMain) begin Ansi > use(AMain) store(HasAcuteA) " AEIOUYaeiouy" store(CmbAcuteA) "´ÁÉÍÓÚÝáéíóúý" store(HasAcute) " AÆCEGIKL" "MNOPRSUW" "YZØ" "aæcegikl" "mnoprsuw" "yzø" store(CmbAcute) "´" \ U+00C1 U+01FC U+0106 U+00C9 U+01F4 U+00CD U+1E30 U+0139 \ U+1E3E U+0143 U+00D3 U+1E54 U+0154 U+015A U+00DA U+1E82 \ U+00DD U+0179 U+01FE \ U+00E1 U+01FD U+0107 U+00E9 U+01F5 U+00ED U+1E31 U+013A \ U+1E3F U+0144 U+00F3 U+1E55 U+0155 U+015B U+00FA U+1E83 \ U+00FD U+017A U+01FF store(HasGraveA) " AEIOUaeiou" store(CmbGraveA) "`ÀÈÌÒÙàèìòù" store(HasGrave) " AEINOUWY" "aeinouwy" store(CmbGrave) "`" \ U+00C0 U+00C8 U+00CC U+01F8 U+00D2 U+00D9 U+1E80 U+1EF2 \ U+00E0 U+00E8 U+00EC U+01F9 U+00F2 U+00F9 U+1E81 U+1EF3 store(HasDoubleAcute) " OUou" store(CmbDoubleAcute) U+02DD U+0150 U+0170 U+0151 U+0171 store(HasDoubleGrave) "AEIORUaeioru" store(CmbDoubleGrave) U+0200 U+0204 U+0208 U+020C U+0210 U+0214 U+0201 U+0205 U+0209 U+020D U+0211 U+0215 store(HasCaronA) " Ss" store(CmbCaronA) "ˆŠš" store(HasCaron) " ACDEGHIK" "LNORSTUZ" "acdeghijk" "lnorstuz" U+01B7 U+0292 c Ezh store(CmbCaron) U+02C7 \ U+01CD U+010C U+010E U+011A U+01E6 U+021E U+01CF U+01E8 \ U+013D U+0147 U+01D1 U+0158 U+0160 U+0164 U+01D3 U+017D \ U+01CE U+010D U+010F U+011B U+01E7 U+021F U+01D0 U+01F0 U+01E9 \ U+013E U+0148 U+01D2 U+0159 U+0161 U+0165 U+01D4 U+017E \ U+01EE U+01EF store(HasCircumflexA) " ^AEIOUaeiou" store(CmbCircumflexA) "^ˆÂÊÎÔÛâêîôû" store(HasCircumflex) " ^ACEGHIJO" "SUWYZ" "aceghijo" "suwyz" store(CmbCircumflex) "^" U+02C6 \ U+00C2 U+0108 U+00CA U+011C U+0124 U+00CE U+0134 U+00D4 \ U+015C U+00DB U+0174 U+0176 U+1E90 \ U+00E2 U+0109 U+00EA U+011D U+0125 U+00EE U+0135 U+00F4 \ U+015D U+00FB U+0175 U+0177 U+1E91 store(HasTildeA) " ANOano" store(CmbTildeA) "˜ÃÑÕãñõ" store(HasTilde) " AEINOUVY" "aeinouvy" store(CmbTilde) U+02D2 \ U+00C3 U+1EBC U+0128 U+00D1 U+00D5 U+0168 U+1E7C U+1EF8 \ U+00E3 U+1EBD U+0129 U+00F1 U+00F5 U+0169 U+1E7D U+1EF9 store(HasBreve) " AEGIOUH" "aegiouh" c H has Breve below store(CmbBreve) U+02D8 \ U+0102 U+0114 U+011E U+012C U+014E U+016C U+1E2A \ U+0103 U+0115 U+011F U+012D U+014F U+016D U+1E2B store(HasMacron) " AÆEGIOUY" "aæegiouy" store(CmbMacron) U+00AF \ U+0100 U+01E2 U+0112 U+1E20 U+012A U+014C U+016A U+0232 \ U+0101 U+01E3 U+0113 U+1E21 U+012B U+014D U+016B U+0233 c heterogeneous combination of all sorts of diacritics: c CEDILLA (CEGHKNRSTceghknrst, DdLl omitted) c RING (AUauwy) c STROKE ("DILOTZbdilotz, GgHh omitted) store(HasCedillaRingStrokeA) " ACDOacdo" store(CmbCedillaRingStrokeA) "°ÅÇÐØåçðø" C Tt occurs double here, so T with stroke won't work! store(HasCedillaRingStroke) " CEGHKN" "RST" "ceghkn" "rst" "AUauwy" "DILOTZ" "bdilotz" store(CmbCedillaRingStroke) "°" \ U+00C7 U+0228 U+0122 U+1E28 U+0136 U+0145 \ U+0156 U+015E U+0162 \ U+00E7 U+0229 U+0123 U+1E29 U+0137 U+0146 \ U+0157 U+015F U+0163 \ U+00C5 U+016E U+00E5 U+016F U+1E98 U+1E99 \ U+0110 U+0197 U+0141 U+00D8 U+0166 U+01B5 \ U+0180 U+0111 U+0268 U+0142 U+00F8 U+0167 U+01B6 store(HasOgonekComma) " AEIOUaeiouSTst" c s and t are comma below. store(CmbOgonekComma) "," \ U+0104 U+0118 U+012E U+01EA U+0172 \ U+0105 U+0119 U+012F U+01EB U+0173 \ U+0218 U+021A U+0219 U+021B store(HasDiaeresisA) " AEIOUYaeiouy" store(CmbDiaeresisA) "¨ÄËÏÖÜŸäëïöüÿ" store(HasDiaeresis) " AEHIOUWXY" "aehiotuwxy" store(CmbDiaeresis) "¨" \ U+00C4 U+00CB U+1E26 U+00CF U+00D6 U+00DC U+1E84 U+1E8C U+0178 \ U+00E4 U+00EB U+1E27 U+00EF U+00F6 U+1E97 U+00FC U+1E85 U+1E8D U+00FF c DOT ABOVE, Middle Dot (and dotless i) store(HasDotAbove) " ABCDEFGH" "IMNOPRST" "WXYZ" "abcdefgh" "imnoprst" "wxyzLl" U+017F c Long s store(CmbDotAbove) "·" \ U+0226 U+1E02 U+010A U+1E0A U+0116 U+1E1E U+0120 U+1E22 \ U+0130 U+1E40 U+1E44 U+022E U+1E56 U+1E58 U+1E60 U+1E6A \ U+1E86 U+1E8A U+1E8E U+017B \ U+0227 U+1E03 U+010B U+1E0B U+0117 U+1E1F U+0121 U+1E23 \ U+0131 U+1E41 U+1E45 U+022F U+1E57 U+1E59 U+1E61 U+1E6B \ U+1E87 U+1E8B U+1E8F U+017C U+013F U+0140 \ U+1E9B store(HasInvBreve) " AEIORU" "aeioru" store(CmbInvBreve) U+02C6 \ U+0202 U+0206 U+020A U+020E U+0212 U+0216 \ U+0203 U+0207 U+020B U+020F U+0213 U+0217 c CIRCUMFLEX BELOW store(HasCircumBelow) " DELNTU" "delntu" store(CmbCircumBelow) U+02C6 \ U+1E12 U+1E18 U+1E3C U+1E4A U+1E70 U+1E76 \ U+1E13 U+1E19 U+1E3D U+1E4B U+1E71 U+1E77 c LINE BELOW store(HasLineBelow) " BDKLNRTZ" "bdhklnrtz" store(CmbLineBelow) "_" \ U+1E06 U+1E0E U+1E34 U+1E3A U+1E48 U+1E5E U+1E6E U+1E94 \ U+1E07 U+1E0F U+1E96 U+1E35 U+1E3B U+1E49 U+1E5F U+1E6F U+1E95 c TILDE BELOW store(HasTildeBelow) " EIUeiu" store(CmbTildeBelow) U+02D2 \ U+1E1A U+1E2C U+1E74 U+1E1B U+1E2D U+1E75 c DOT BELOW store(HasDotBelow) " ABDEHIKL" "MNORSTUV" "WYZ" "abdehikl" "mnorstuv" "wyz" store(CmbDotBelow) U+2026 \ U+1EA0 U+1E04 U+1E0C U+1EB8 U+1E24 U+1ECA U+1E32 U+1E36 \ U+1E42 U+1E46 U+1ECC U+1E5A U+1E62 U+1E6C U+1EE4 U+1E7E \ U+1E88 U+1EF4 U+1E92 \ U+1EA1 U+1E05 U+1E0D U+1EB9 U+1E25 U+1ECB U+1E33 U+1E37 \ U+1E43 U+1E47 U+1ECD U+1E5B U+1E63 U+1E6D U+1EE5 U+1E7F \ U+1E89 U+1EF5 U+1E93 store(QuoteNumbersA) " 1234567890" store(QuoteSignsA) '"„“”‚‘’‹«»›' store(QuoteNumbers) " 1234567890" store(QuoteSigns) '"' U+201E U+201C U+201D U+201A U+2018 U+2019 U+2039 U+00AB U+00BB U+203A store(HasSuperscriptA) "123 ao" store(SuperscriptA) "¹²³°ªº" store(HasSuperscript) " 1234567890+-=()nao" store(Superscript) "°¹²³" U+2074 U+2075 U+2076 U+2077 U+2078 U+2079 U+2070 \ U+207A U+207B U+207C U+207D U+207E U+207F \ "ªº" store(HasSubscript) "0123456789+-=()" store(Subscript) U+2080 U+2081 U+2082 U+2083 U+2084 U+2085 U+2086 U+2087 \ U+2088 U+2089 U+208A U+208B U+208C U+208D U+208E U+208F c HOOK ABOVE (not necessary) c store(HasHookAbove) "AEIOUY" "aeiouy" c store(CmbHookAbove) U+1EA2 U+1EBA U+1EC8 U+1ECE U+1EE6 U+1EF6 \ c U+1EA3 U+1EBB U+1EC9 U+1ECF U+1EE7 U+1EF7 c HOOK (used only for African languages) c store(HasHook) "BCDFGKPT" "VYZ" "bcdfgkpt" "vyz" c store(CmbHook) U+0181 U+0187 U+018A U+0191 U+0193 U+0198 U+01A4 U+01AC \ c U+01B2 U+01B3 U+0224 \ c U+0253 U+0188 U+0257 U+0192 U+0260 U+0199 U+01A5 U+01AD \ c U+028B U+01B4 U+0225 c HORN/TOPBAR (not necessary) c store(HasHornOrTopbar) "OUouBDbd" c store(CmbHornOrTopbar) U+01A0 U+01AF U+01A1 U+01B0 U+0182 U+018B U+0183 U+018C store(VKeys) " \1234567890[]" "qwertzuiop=" "asdfghjkl/" "yxcvbnm,.-" \ '|!@#$%^&*(){}' 'QWERTZUIOP+' 'ASDFGHJKL?' 'YXCVBNM<>_' store(GermanChars) \ " ^1234567890ß´" "qwertzuiop+" "asdfghjkl#" "yxcvbnm,.-" \ '°!"§$%&/()=?`' "QWERTZUIOP*" "ASDFGHJKL'" "YXCVBNM;:_" group(UMain) using keys + [K_COLON] > "ü" + [SHIFT K_COLON] > "Ü" + [CAPS K_COLON] > "Ü" + [SHIFT CAPS K_COLON] > "ü" + [K_BKQUOTE] > "ö" + [SHIFT K_BKQUOTE] > "Ö" + [CAPS K_BKQUOTE] > "Ö" + [SHIFT CAPS K_BKQUOTE] > "ö" + [K_QUOTE] > "ä" + [SHIFT K_QUOTE] > "Ä" + [CAPS K_QUOTE] > "Ä" + [SHIFT CAPS K_QUOTE] > "ä" + [ALT CTRL K_7] > "{" + [SHIFT ALT CTRL K_7] > "{" + [CAPS ALT CTRL K_7] > "{" + [SHIFT CAPS ALT CTRL K_7] > "{" + [ALT CTRL K_8] > "[" + [CAPS ALT CTRL K_8] > "[" + [ALT CTRL K_9] > "]" + [CAPS ALT CTRL K_9] > "]" + [ALT CTRL K_0] > "}" + [SHIFT ALT CTRL K_0] > "}" + [CAPS ALT CTRL K_0] > "}" + [SHIFT CAPS ALT CTRL K_0] > "}" + [ALT CTRL K_LBRKT] > "\" + [SHIFT ALT CTRL K_LBRKT] > "\" + [CAPS ALT CTRL K_LBRKT] > "\" + [SHIFT CAPS ALT CTRL K_LBRKT] > "\" + [ALT CTRL K_Q] > "@" + [SHIFT ALT CTRL K_Q] > "@" + [CAPS ALT CTRL K_Q] > "@" + [SHIFT CAPS ALT CTRL K_Q] > "@" + [ALT CTRL K_EQUAL] > "~" + [SHIFT ALT CTRL K_EQUAL] > "±" + [CAPS ALT CTRL K_EQUAL] > "~" + [SHIFT CAPS ALT CTRL K_EQUAL] > "±" +"\" > deadkey(DKCircumflex) +"|" > deadkey(DKSuperscript) +[ALT CTRL K_BKSLASH] > deadkey(DKTilde) +[CAPS ALT CTRL K_BKSLASH] > deadkey(DKTilde) +[SHIFT ALT CTRL K_BKSLASH] > deadkey(DKCaron) +[SHIFT CAPS ALT CTRL K_BKSLASH] > deadkey(DKCaron) +[ALT CTRL K_1] > U+2020 c dagger +[CAPS ALT CTRL K_1] > U+2020 +[SHIFT ALT CTRL K_1] > "¡" +[SHIFT CAPS ALT CTRL K_1] > "¡" +[ALT CTRL K_2] > deadkey(DKQuote) +[CAPS ALT CTRL K_2] > deadkey(DKQuote) +[ALT CTRL K_3] > U+2021 c double dagger +[CAPS ALT CTRL K_3] > u+2021 +[SHIFT ALT CTRL K_3] > "¾" +[SHIFT CAPS ALT CTRL K_3] > "¾" +[ALT CTRL K_4] > U+203B c reference mark +[CAPS ALT CTRL K_4] > U+203B +[SHIFT ALT CTRL K_4] > "¼" +[SHIFT CAPS ALT CTRL K_4] > "¼" +[ALT CTRL K_5] > U+2030 c per mille sign +[CAPS ALT CTRL K_5] > U+2030 +[SHIFT ALT CTRL K_5] > U+2031 c per ten thousands sign +[SHIFT CAPS ALT CTRL K_5] > U+2031 +[ALT CTRL K_6] > U+204A c Tironian et +[CAPS ALT CTRL K_6] > U+204A +[SHIFT ALT CTRL K_6] > U+2042 c asterism +[SHIFT CAPS ALT CTRL K_6] > U+2042 +[SHIFT ALT CTRL K_8] > U+02BF c Arabic ain transliteration +[SHIFT CAPS ALT CTRL K_8] > U+02BF +[SHIFT ALT CTRL K_9] > U+02BE c Arabic hamza transliteration +[SHIFT CAPS ALT CTRL K_9] > U+02BE c Arabic hamza transliteration +[SHIFT ALT CTRL K_LBRKT] > "¿" +[SHIFT CAPS ALT CTRL K_LBRKT] > "¿" +"]" > deadkey(DKAcute) +"}" > deadkey(DKGrave) +[ALT CTRL K_RBRKT] > deadkey(DKDiaeresis) +[CAPS ALT CTRL K_RBRKT] > deadkey(DKDiaeresis) +[SHIFT ALT CTRL K_RBRKT] > deadkey(DKCombine) +[SHIFT CAPS ALT CTRL K_RBRKT] > deadkey(DKCombine) +[ALT CTRL K_W] > U+01BF c wynn +[SHIFT CAPS ALT CTRL K_W] > U+01BF c wynn +[SHIFT ALT CTRL K_W] > U+01F7 +[CAPS ALT CTRL K_W] > U+01F7 + [ALT CTRL K_E] > U+20AC c Euro + [CAPS ALT CTRL K_E] > U+20AC + [SHIFT ALT CTRL K_E] > "¤" + [CAPS ALT CTRL K_E] > "¤" +[ALT CTRL K_R] > U+00AE c Registered +[SHIFT CAPS ALT CTRL K_R] > U+00AE c Registered +[SHIFT ALT CTRL K_R] > U+211F c Response symbol +[CAPS ALT CTRL K_R] > U+211F c Response symbol +[ALT CTRL K_T] > "þ" +[SHIFT ALT CTRL K_T] > "Þ" +[SHIFT CAPS ALT CTRL K_T] > "þ" +[CAPS ALT CTRL K_T] > "Þ" +[ALT CTRL K_Z] > U+0292 c Ezh +[SHIFT ALT CTRL K_Z] > U+01B7 +[SHIFT CAPS ALT CTRL K_Z] > U+0292 c Ezh +[CAPS ALT CTRL K_Z] > U+01B7 c the following can both also be produced with the dot deadkey, c but this may be more convenient for Turkish: +[ALT CTRL K_I] > U+0131 c dotless i +[SHIFT ALT CTRL K_I] > U+0130 c dotted capital I +[SHIFT CAPS ALT CTRL K_I] > U+0131 c dotless i +[CAPS ALT CTRL K_I] > U+0130 c dotted capital I +[ALT CTRL K_O] > "ø" +[SHIFT ALT CTRL K_O] > "Ø" +[SHIFT CAPS ALT CTRL K_O] > "ø" +[CAPS ALT CTRL K_O] > "Ø" +[ALT CTRL K_P] > U+00B6 c pilcrow sign +[SHIFT ALT CTRL K_P] > U+204B c reversed pilcrow +[SHIFT CAPS ALT CTRL K_P] > U+00B6 c pilcrow sign +[CAPS ALT CTRL K_P] > U+204B c reversed pilcrow +[ALT CTRL K_COLON] > U+2032 c prime. Same position as keraia on Greek keyboard. +[SHIFT CAPS ALT CTRL K_COLON] > u+2032 +[ALT CTRL K_EQUAL] > "~" +[SHIFT ALT CTRL K_EQUAL] > "±" +[CAPS ALT CTRL K_EQUAL] > "~" +[SHIFT CAPS ALT CTRL K_EQUAL] > "±" +[ALT CTRL K_A] > "æ" c This is the same position as on the phonetic keyboard. +[SHIFT ALT CTRL K_A] > "Æ" c However, these are also on AltGr-Ä. I couldn't make up my mind. +[SHIFT CAPSALT CTRL K_A] > "æ" c This is the same position as on the phonetic keyboard. +[CAPS ALT CTRL K_A] > "Æ" c However, these are also on AltGr-Ä. I couldn't make up my mind. +[ALT CTRL K_S] > U+017F c long s +[SHIFT CAPS ALT CTRL K_S] > U+017F c long s +[ALT CTRL K_D] > "ð" +[SHIFT ALT CTRL K_D] > "Ð" +[SHIFT CAPS ALT CTRL K_D] > "ð" +[CAPS ALT CTRL K_D] > "Ð" +[ALT CTRL K_F] > U+0192 c f with hook +[SHIFT ALT CTRL K_F] > U+0191 +[SHIFT CAPS ALT CTRL K_F] > U+0192 c f with hook +[CAPS ALT CTRL K_F] > U+0191 +[ALT CTRL K_G] > U+021D c yogh +[SHIFT ALT CTRL K_G] > U+021C +[SHIFT CAPS ALT CTRL K_G] > U+021D c yogh +[CAPS ALT CTRL K_G] > U+021C +[ALT CTRL K_H] > U+0195 c hwair digraph +[SHIFT ALT CTRL K_H] > U+01F6 +[SHIFT CAPS ALT CTRL K_H] > U+0195 c hwair digraph +[CAPS ALT CTRL K_H] > U+01F6 +[ALT CTRL K_K] > U+0138 c smallcaps k (Greenlandic kra) +[SHIFT CAPS ALT CTRL K_K] > U+0138 +[ALT CTRL K_L] > "£" +[SHIFT ALT CTRL K_L] > "£" +[CAPS ALT CTRL K_L] > "£" +[SHIFT CAPS ALT CTRL K_L] > "£" +[ALT CTRL K_BKQUOTE] > U+0153 c oe digraph +[SHIFT ALT CTRL K_BKQUOTE] > U+0152 +[SHIFT CAPS ALT CTRL K_BKQUOTE] > U+0153 c oe digraph +[CAPS ALT CTRL K_BKQUOTE] > U+0152 +[ALT CTRL K_QUOTE] > "æ" +[SHIFT ALT CTRL K_QUOTE] > "Æ" +[SHIFT CAPS ALT CTRL K_QUOTE] > "æ" +[CAPS ALT CTRL K_QUOTE] > "Æ" +[ALT CTRL K_SLASH] > "×" +[SHIFT ALT CTRL K_SLASH] > "÷" +[CAPS ALT CTRL K_SLASH] > "×" +[CAPS SHIFT ALT CTRL K_SLASH] > "÷" +[K_oE2] > "<" +[CAPS K_oE2] > "<" +[SHIFT K_oE2] > ">" +[CAPS SHIFT K_oE2] > ">" +[ALT CTRL K_oE2] > "|" +[SHIFT ALT CTRL K_oE2] > "¬" +[CAPS ALT CTRL K_oE2] > "|" +[SHIFT CAPS ALT CTRL K_oE2] > "¬" +[ALT CTRL K_Y] > U+01A6 c Yr +[CAPS SHIFT ALT CTRL K_Y] > U+01A6 c Yr +[ALT CTRL K_C] > U+00A9 c Copyright +[SHIFT ALT CTRL K_C] > U+00A2 c cent sign +[CAPS SHIFT ALT CTRL K_C] > U+00A9 c Copyright +[CAPS ALT CTRL K_C] > U+00A2 c cent sign +[SHIFT ALT CTRL K_V] > U+2123 c Versicle sign +[CAPS ALT CTRL K_V] > u+2123 c the following doesn't work well in Word97, but it seems to work in Richedit 3.0: c +[SHIFT ALT CTRL K_B] > U+00AD c soft hyphen +[ALT CTRL K_B] > U+2011 c non-breaking hyphen c +[CAPS ALT CTRL K_B] > U+00AD c soft hyphen +[SHIFT CAPS ALT CTRL K_B] > U+2011 c non-breaking hyphen +[ALT CTRL K_N] > U+2013 c En dash +[SHIFT CAPS ALT CTRL K_N] > U+2013 c En dash +[ALT CTRL K_M] > U+2014 c Em dash +[SHIFT ALT CTRL K_M] > "µ" +[SHIFT CAPS ALT CTRL K_M] > U+2014 c Em dash +[CAPS ALT CTRL K_M] > "µ" +[ALT CTRL K_COMMA] > deadkey(DKCedilla) +[SHIFT ALT CTRL K_COMMA] > deadkey(DKOgonek) +[CAPS ALT CTRL K_COMMA] > deadkey(DKCedilla) +[CAPS SHIFT ALT CTRL K_COMMA] > deadkey(DKOgonek) +[ALT CTRL K_PERIOD] > deadkey(DKDot) +[SHIFT ALT CTRL K_PERIOD] > deadkey(DKDotBelow) +[CAPS ALT CTRL K_PERIOD] > deadkey(DKDot) +[CAPS SHIFT ALT CTRL K_PERIOD] > deadkey(DKDotBelow) +[ALT CTRL K_HYPHEN] > deadkey(DKBreve) +[SHIFT ALT CTRL K_HYPHEN] > deadkey(DKMacron) +[CAPS ALT CTRL K_HYPHEN] > deadkey(DKBreve) +[CAPS SHIFT ALT CTRL K_HYPHEN] > deadkey(DKMacron) +[ALT CTRL K_SPACE] > U+00A0 c non-breaking space +[SHIFT ALT CTRL K_SPACE] > U+2003 c Em space +[CAPS ALT CTRL K_SPACE] > U+00A0 c non-breaking space +[CAPS SHIFT ALT CTRL K_SPACE] > U+2003 c Em space + any(VKeys) > index(GermanChars, 1) match > use(FixDeadkeys) group(FixDeadkeys) deadkey(DKSuperscript) deadkey(DKSuperscript) > deadkey(DKSubscript) deadkey(DKSuperscript) deadkey(DKMacron) > deadkey(DKLineBelow) deadkey(DKSuperscript) deadkey(DKTilde) > deadkey(DKTildeBelow) c deadkey(DKSuperscript) deadkey(DKDot) > deadkey(DKDotBelow) deadkey(DKAcute) deadkey(DKAcute) > deadkey(DKDoubleAcute) deadkey(DKGrave) deadkey(DKGrave) > deadkey(DKDoubleGrave) deadkey(DKCircumflex) deadkey(DKCircumflex) > deadkey(DKInvBreve) deadkey(DKCombine) deadkey(DKGrave) > U+0300 deadkey(DKCombine) deadkey(DKAcute) > U+0301 deadkey(DKCombine) deadkey(DKCircumflex) > U+0302 deadkey(DKCombine) deadkey(DKTilde) > U+0303 deadkey(DKCombine) deadkey(DKMacron) > U+0304 deadkey(DKCombine) deadkey(DKBreve) > U+0306 deadkey(DKCombine) deadkey(DKDot) > U+0307 deadkey(DKCombine) deadkey(DKDiaeresis) > U+0308 deadkey(DKCombine) deadkey(DKRing) > U+030A deadkey(DKCombine) deadkey(DKDoubleAcute)> U+030B deadkey(DKCombine) deadkey(DKCaron) > U+030C deadkey(DKCombine) deadkey(DKDoubleGrave)> U+030F deadkey(DKCombine) deadkey(DKInvBreve) > U+0311 deadkey(DKCombine) deadkey(DKDotBelow) > U+0323 "i" deadkey(DKCombine) "j" > U+0133 "I" deadkey(DKCombine) "J" > U+0132 "I" deadkey(DKCombine) "j" > U+0132 "d" deadkey(DKCombine) "z" > U+01f3 "D" deadkey(DKCombine) "z" > U+01F2 "D" deadkey(DKCombine) "Z" > U+01F1 "A" deadkey(DKCombine) "E" > "Æ" "A" deadkey(DKCombine) "e" > "æ" "a" deadkey(DKCombine) "e" > "æ" "O" deadkey(DKCombine) "E" > U+0152 "O" deadkey(DKCombine) "e" > U+0152 "o" deadkey(DKCombine) "e" > U+0153 "f" deadkey(DKCombine) "f" > U+FB00 "f" deadkey(DKCombine) "i" > U+FB01 "f" deadkey(DKCombine) "l" > U+FB02 "s" deadkey(DKCombine) "t" > U+FB06 U+FB00 deadkey(DKCombine) "i" > U+FB03 U+FB00 deadkey(DKCombine) "l" > U+FB04 U+017F deadkey(DKCombine) "t" > U+FB05 "!" deadkey(DKCombine) "!" > U+203C "!" deadkey(DKCombine) "?" > U+2049 "?" deadkey(DKCombine) "!" > U+2048 "?" deadkey(DKCombine) "?" > U+203D "t" deadkey(DKCombine) "m" > U+2122 c trademark sign ":" deadkey(DKCombine) ")" > U+263A c smiley ":" deadkey(DKCombine) "(" > U+2639 c sad emoticon "1" deadkey(DKCombine) "2" > "½" "1" deadkey(DKCombine) "4" > "¼" "3" deadkey(DKCombine) "4" > "¾" "1" deadkey(DKCombine) "3" > U+2153 "2" deadkey(DKCombine) "3" > U+2154 "1" deadkey(DKCombine) "5" > U+2155 "2" deadkey(DKCombine) "5" > U+2156 "3" deadkey(DKCombine) "5" > U+2157 "4" deadkey(DKCombine) "5" > U+2158 "1" deadkey(DKCombine) "6" > U+2159 "5" deadkey(DKCombine) "6" > U+215A "1" deadkey(DKCombine) "8" > U+215B "3" deadkey(DKCombine) "8" > U+215C "5" deadkey(DKCombine) "8" > U+215D "7" deadkey(DKCombine) "8" > U+215E deadkey(DKDiaeresis) deadkey(DKMacron) "U" > U+01D5 deadkey(DKMacron) deadkey(DKDiaeresis) "U" > U+01D5 deadkey(DKDiaeresis) deadkey(DKMacron) "u" > U+01D6 deadkey(DKMacron) deadkey(DKDiaeresis) "u" > U+01D6 deadkey(DKDiaeresis) deadkey(DKAcute) "U" > U+01D7 deadkey(DKAcute) deadkey(DKDiaeresis) "U" > U+01D7 deadkey(DKDiaeresis) deadkey(DKAcute) "u" > U+01D8 deadkey(DKAcute) deadkey(DKDiaeresis) "u" > U+01D8 deadkey(DKDiaeresis) deadkey(DKCaron) "U" > U+01D9 deadkey(DKCaron) deadkey(DKDiaeresis) "U" > U+01D9 deadkey(DKDiaeresis) deadkey(DKCaron) "u" > U+01DA deadkey(DKCaron) deadkey(DKDiaeresis) "u" > U+01DA deadkey(DKDiaeresis) deadkey(DKGrave) "U" > U+01DB deadkey(DKGrave) deadkey(DKDiaeresis) "U" > U+01DB deadkey(DKDiaeresis) deadkey(DKGrave) "u" > U+01DC deadkey(DKGrave) deadkey(DKDiaeresis) "u" > U+01DC deadkey(DKDiaeresis) deadkey(DKMacron) "A" > U+01DE deadkey(DKMacron) deadkey(DKDiaeresis) "A" > U+01DE deadkey(DKDiaeresis) deadkey(DKMacron) "a" > U+01DF deadkey(DKMacron) deadkey(DKDiaeresis) "a" > U+01DF deadkey(DKDot) deadkey(DKMacron) "A" > U+01E0 deadkey(DKMacron) deadkey(DKDot) "A" > U+01E0 deadkey(DKDot) deadkey(DKMacron) "a" > U+01E1 deadkey(DKMacron) deadkey(DKDot) "a" > U+01E1 deadkey(DKMacron) any(HasMacron) > index(CmbMacron, 2) deadkey(DKBreve) any(HasBreve) > index(CmbBreve, 2) deadkey(DKAcute) any(HasAcute) > index(CmbAcute, 2) deadkey(DKGrave) any(HasGrave) > index(CmbGrave, 2) deadkey(DKCircumflex) any(HasCircumflex) > index(CmbCircumflex, 2) deadkey(DKTilde) any(HasTilde) > index(CmbTilde, 2) deadkey(DKDot) any(HasDotAbove) > index(CmbDotAbove, 2) deadkey(DKCedilla) any(HasCedillaRingStroke) > index(CmbCedillaRingStroke, 2) deadkey(DKOgonek) any(HasOgonekComma) > index(CmbOgonekComma, 2) deadkey(DKCaron) any(HasCaron) > index(CmbCaron, 2) deadkey(DKDiaeresis) any(HasDiaeresis) > index(CmbDiaeresis, 2) deadkey(DKQuote) any(QuoteNumbers) > index(QuoteSigns, 2) deadkey(DKSuperscript) any(HasSuperscript) > index(Superscript, 2) deadkey(DKDoubleAcute) any(HasDoubleAcute) > index(CmbDoubleAcute, 2) deadkey(DKDoubleGrave) any(HasDoubleGrave) > index(CmbDoubleGrave, 2) deadkey(DKSubscript) any(HasSubscript) > index(Subscript, 2) deadkey(DKLineBelow) any(HasLineBelow) > index(CmbLineBelow, 2) deadkey(DKTildeBelow) any(HasTildeBelow) > index(CmbTildeBelow, 2) deadkey(DKDotBelow) any(HasDotBelow) > index(CmbDotBelow, 2) deadkey(DKInvBreve) any(HasInvBreve) > index(CmbInvBreve, 2) group(AMain) using keys + [K_COLON] > "ü" + [SHIFT K_COLON] > "Ü" + [CAPS K_COLON] > "Ü" + [SHIFT CAPS K_COLON] > "ü" + [K_BKQUOTE] > "ö" + [SHIFT K_BKQUOTE] > "Ö" + [CAPS K_BKQUOTE] > "Ö" + [SHIFT CAPS K_BKQUOTE] > "ö" + [K_QUOTE] > "ä" + [SHIFT K_QUOTE] > "Ä" + [CAPS K_QUOTE] > "Ä" + [SHIFT CAPS K_QUOTE] > "ä" + [ALT CTRL K_7] > "{" + [SHIFT ALT CTRL K_7] > "{" + [CAPS ALT CTRL K_7] > "{" + [SHIFT CAPS ALT CTRL K_7] > "{" + [ALT CTRL K_8] > "[" + [SHIFT ALT CTRL K_8] > "[" + [CAPS ALT CTRL K_8] > "[" + [SHIFT CAPS ALT CTRL K_8] > "[" + [ALT CTRL K_9] > "]" + [SHIFT ALT CTRL K_9] > "]" + [CAPS ALT CTRL K_9] > "]" + [SHIFT CAPS ALT CTRL K_9] > "]" + [ALT CTRL K_0] > "}" + [SHIFT ALT CTRL K_0] > "}" + [CAPS ALT CTRL K_0] > "}" + [SHIFT CAPS ALT CTRL K_0] > "}" + [ALT CTRL K_LBRKT] > "\" + [SHIFT ALT CTRL K_LBRKT] > "\" + [CAPS ALT CTRL K_LBRKT] > "\" + [SHIFT CAPS ALT CTRL K_LBRKT] > "\" + [ALT CTRL K_Q] > "@" + [SHIFT ALT CTRL K_Q] > "@" + [CAPS ALT CTRL K_Q] > "@" + [SHIFT CAPS ALT CTRL K_Q] > "@" + [ALT CTRL K_E] > "€" + [SHIFT ALT CTRL K_E] > "¤" + [CAPS ALT CTRL K_E] > "€" + [SHIFT CAPS ALT CTRL K_E] > "¤" + [ALT CTRL K_EQUAL] > "~" + [SHIFT ALT CTRL K_EQUAL] > "±" + [CAPS ALT CTRL K_EQUAL] > "~" + [SHIFT CAPS ALT CTRL K_EQUAL] > "±" +"\" > deadkey(DKCircumflexA) +"|" > deadkey(DKSuperscriptA) +[ALT CTRL K_BKSLASH] > deadkey(DKTildeA) +[CAPS ALT CTRL K_BKSLASH] > deadkey(DKTildeA) +[SHIFT ALT CTRL K_BKSLASH] > deadkey(DKCaronA) +[SHIFT CAPS ALT CTRL K_BKSLASH] > deadkey(DKCaronA) +[ALT CTRL K_1] > "†" +[CAPS ALT CTRL K_1] > "†" +[SHIFT ALT CTRL K_1] > "¡" +[SHIFT CAPS ALT CTRL K_1] > "¡" +[ALT CTRL K_2] > deadkey(DKQuoteA) +[CAPS ALT CTRL K_2] > deadkey(DKQuoteA) +[ALT CTRL K_3] > "‡" +[CAPS ALT CTRL K_3] > "‡" +[SHIFT ALT CTRL K_3] > "¾" +[SHIFT CAPS ALT CTRL K_3] > "¾" +[SHIFT ALT CTRL K_4] > "¼" +[SHIFT CAPS ALT CTRL K_4] > "¼" +[ALT CTRL K_5] > "‰" +[CAPS ALT CTRL K_5] > "‰" +[SHIFT ALT CTRL K_LBRKT] > "¿" +[SHIFT CAPS ALT CTRL K_LBRKT] > "¿" +"]" > deadkey(DKAcuteA) +"}" > deadkey(DKGraveA) +[ALT CTRL K_RBRKT] > deadkey(DKDiaeresisA) +[CAPS ALT CTRL K_RBRKT] > deadkey(DKDiaeresisA) +[SHIFT ALT CTRL K_RBRKT] > deadkey(DKCombineA) +[SHIFT CAPS ALT CTRL K_RBRKT] > deadkey(DKCombineA) +[ALT CTRL K_R] > "®" +[SHIFT CAPS ALT CTRL K_R] > "®" +[ALT CTRL K_T] > "þ" +[SHIFT ALT CTRL K_T] > "Þ" +[SHIFT CAPS ALT CTRL K_T] > "þ" +[CAPS ALT CTRL K_T] > "Þ" +[ALT CTRL K_O] > "ø" +[SHIFT ALT CTRL K_O] > "Ø" +[SHIFT CAPS ALT CTRL K_O] > "ø" +[CAPS ALT CTRL K_O] > "Ø" +[ALT CTRL K_P] > "¶" +[SHIFT CAPS ALT CTRL K_P] > "¶" +[ALT CTRL K_A] > "æ" c This is the same position as on the phonetic keyboard. +[SHIFT ALT CTRL K_A] > "Æ" c However, these are also on AltGr-Ä. I couldn't make up my mind. +[SHIFT CAPSALT CTRL K_A] > "æ" +[CAPS ALT CTRL K_A] > "Æ" +[ALT CTRL K_D] > "ð" +[SHIFT ALT CTRL K_D] > "Ð" +[SHIFT CAPS ALT CTRL K_D] > "ð" +[CAPS ALT CTRL K_D] > "Ð" +[ALT CTRL K_F] > "ƒ" +[SHIFT CAPS ALT CTRL K_F] > "ƒ" +[ALT CTRL K_L] > "£" +[SHIFT ALT CTRL K_L] > "£" +[CAPS ALT CTRL K_L] > "£" +[SHIFT CAPS ALT CTRL K_L] > "£" +[ALT CTRL K_BKQUOTE] > "œ" +[SHIFT ALT CTRL K_BKQUOTE] > "Œ" +[SHIFT CAPS ALT CTRL K_BKQUOTE] > "œ" +[CAPS ALT CTRL K_BKQUOTE] > "Œ" +[ALT CTRL K_QUOTE] > "æ" +[SHIFT ALT CTRL K_QUOTE] > "Æ" +[SHIFT CAPS ALT CTRL K_QUOTE] > "æ" +[CAPS ALT CTRL K_QUOTE] > "Æ" +[ALT CTRL K_SLASH] > "×" +[SHIFT ALT CTRL K_SLASH] > "÷" +[CAPS ALT CTRL K_SLASH] > "×" +[CAPS SHIFT ALT CTRL K_SLASH] > "÷" +[K_oE2] > "<" +[CAPS K_oE2] > "<" +[SHIFT K_oE2] > ">" +[CAPS SHIFT K_oE2] > ">" +[ALT CTRL K_oE2] > "|" +[SHIFT ALT CTRL K_oE2] > "¬" +[CAPS ALT CTRL K_oE2] > "|" +[SHIFT CAPS ALT CTRL K_oE2] > "¬" +[ALT CTRL K_C] > "©" +[SHIFT ALT CTRL K_C] > "¢" +[CAPS SHIFT ALT CTRL K_C] > "©" +[CAPS ALT CTRL K_C] > "¢" +[ALT CTRL K_N] > "–" c En dash +[SHIFT CAPS ALT CTRL K_N] > "–" +[ALT CTRL K_M] > "—" c Em dash +[SHIFT ALT CTRL K_M] > "µ" +[SHIFT CAPS ALT CTRL K_M] > "—" c Em dash +[CAPS ALT CTRL K_M] > "µ" +[ALT CTRL K_COMMA] > deadkey(DKCedillaA) +[CAPS ALT CTRL K_COMMA] > deadkey(DKCedillaA) +[ALT CTRL K_PERIOD] > "·" +[SHIFT ALT CTRL K_PERIOD] > "…" +[CAPS ALT CTRL K_PERIOD] > "·" +[CAPS SHIFT ALT CTRL K_PERIOD] > "…" +[SHIFT ALT CTRL K_HYPHEN] > "¯" +[CAPS SHIFT ALT CTRL K_HYPHEN] > "¯" + [ALT CTRL K_SPACE] > xA0 c non-breaking space + [CAPS ALT CTRL K_SPACE] > xA0 c non-breaking space + any(VKeys) > index(GermanChars, 1) match > use(FixDeadkeysA) group(FixDeadkeysA) "t" deadkey(DKCombineA) "m" > "™" c trademark sign "A" deadkey(DKCombine) "E" > "Æ" "A" deadkey(DKCombine) "e" > "æ" "a" deadkey(DKCombine) "e" > "æ" "O" deadkey(DKCombine) "E" > "Œ" "O" deadkey(DKCombine) "e" > "Œ" "o" deadkey(DKCombine) "e" > "œ" "1" deadkey(DKCombine) "2" > "½" "1" deadkey(DKCombine) "4" > "¼" "3" deadkey(DKCombine) "4" > "¾" deadkey(DKAcuteA) any(HasAcuteA) > index(CmbAcuteA, 2) deadkey(DKGraveA) any(HasGraveA) > index(CmbGraveA, 2) deadkey(DKCircumflexA) any(HasCircumflexA) > index(CmbCircumflexA, 2) deadkey(DKTildeA) any(HasTildeA) > index(CmbTildeA, 2) deadkey(DKCedillaA) any(HasCedillaRingStrokeA) > index(CmbCedillaRingStrokeA, 2) deadkey(DKCaronA) any(HasCaronA) > index(CmbCaronA, 2) deadkey(DKDiaeresisA) any(HasDiaeresisA) > index(CmbDiaeresisA, 2) deadkey(DKQuoteA) any(QuoteNumbersA) > index(QuoteSignsA, 2) deadkey(DKSuperscriptA) any(HasSuperscriptA) > index(SuperscriptA, 2)