From f394cebc570b0f01f3666f8c99c9fc366e1f21a0 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Tue, 5 May 2020 19:25:14 +0200 Subject: [PATCH] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The comments in the AHK files have been updated with hexadecimal Unicode values (see 'u+xxxx') for all characters. The letters ɽ/Ɽ (r/R with tail) have been added. --- UltimateKEYS - 2020-05-05.ahk | 1237 ++++++++++++++++++++++++++++ UltimateKEYS - 2020-05-05.klc | Bin 0 -> 74440 bytes UltimateKEYS SW - 2020-05-05.ahk | 1307 ++++++++++++++++++++++++++++++ UltimateKEYS SW - 2020-05-05.klc | Bin 0 -> 77370 bytes 4 files changed, 2544 insertions(+) create mode 100644 UltimateKEYS - 2020-05-05.ahk create mode 100644 UltimateKEYS - 2020-05-05.klc create mode 100644 UltimateKEYS SW - 2020-05-05.ahk create mode 100644 UltimateKEYS SW - 2020-05-05.klc diff --git a/UltimateKEYS - 2020-05-05.ahk b/UltimateKEYS - 2020-05-05.ahk new file mode 100644 index 0000000..837c96f --- /dev/null +++ b/UltimateKEYS - 2020-05-05.ahk @@ -0,0 +1,1237 @@ +; UltimateKEYS - 2020-05-05.ahk + +; Created by : Pieter Degroote + +; License : GNU General Public License Version 3 + +; Website : https://github.com/pieter-degroote/UltimateKEYS + + +; Requirements : + +; Keyboard layout (on Windows OS) : US QWERTY + +; AutoHotkey v1.1 (https://www.autohotkey.com/) + + + +; Dead Key : Circumflex Accent + +dkCircumflex := ComObjCreate("Scripting.Dictionary") +dkCircumflex.item("a") := "â" ; (u+00e2) a with circumflex +dkCircumflex.item("A") := "Â" ; (u+00c2) A with circumflex +dkCircumflex.item("c") := "ĉ" ; (u+0109) c with circumflex +dkCircumflex.item("C") := "Ĉ" ; (u+0108) C with circumflex +dkCircumflex.item("e") := "ê" ; (u+00ea) e with circumflex +dkCircumflex.item("E") := "Ê" ; (u+00ca) E with circumflex +dkCircumflex.item("g") := "ĝ" ; (u+011d) g with circumflex +dkCircumflex.item("G") := "Ĝ" ; (u+011c) G with circumflex +dkCircumflex.item("h") := "Ä¥" ; (u+0125) h with circumflex +dkCircumflex.item("H") := "Ĥ" ; (u+0124) H with circumflex +dkCircumflex.item("i") := "î" ; (u+00ee) i with circumflex +dkCircumflex.item("I") := "Î" ; (u+00ce) I with circumflex +dkCircumflex.item("j") := "ĵ" ; (u+0135) j with circumflex +dkCircumflex.item("J") := "Ä´" ; (u+0134) J with circumflex +dkCircumflex.item("o") := "ô" ; (u+00f4) o with circumflex +dkCircumflex.item("O") := "Ô" ; (u+00d4) O with circumflex +dkCircumflex.item("s") := "ŝ" ; (u+015d) s with circumflex +dkCircumflex.item("S") := "Ŝ" ; (u+015c) S with circumflex +dkCircumflex.item("u") := "û" ; (u+00fb) u with circumflex +dkCircumflex.item("U") := "Û" ; (u+00db) U with circumflex +dkCircumflex.item("w") := "ŵ" ; (u+0175) w with circumflex +dkCircumflex.item("W") := "Å´" ; (u+0174) W with circumflex +dkCircumflex.item("y") := "Å·" ; (u+0177) y with circumflex +dkCircumflex.item("Y") := "Ŷ" ; (u+0176) Y with circumflex +dkCircumflex.item("z") := "ẑ" ; (u+1e91) z with circumflex +dkCircumflex.item("Z") := "Ẑ" ; (u+1e90) Z with circumflex +dkCircumflex.item("n") := "₦" ; (u+20a6) Nigerian naira +dkCircumflex.item("N") := "₦" ; (u+20a6) Nigerian naira +dkCircumflex.item("^") := "{^}" ; (u+005e) circumflex accent +dkCircumflex.item(" ") := "{^}" ; (u+005e) circumflex accent + + +; Dead Key : Caron + +dkCaron := ComObjCreate("Scripting.Dictionary") +dkCaron.item("a") := "ǎ" ; (u+01ce) a with caron +dkCaron.item("A") := "Ǎ" ; (u+01cd) A with caron +dkCaron.item("c") := "č" ; (u+010d) c with caron +dkCaron.item("C") := "Č" ; (u+010c) C with caron +dkCaron.item("d") := "ď" ; (u+010f) d with caron +dkCaron.item("D") := "Ď" ; (u+010e) D with caron +dkCaron.item("e") := "ě" ; (u+011b) e with caron +dkCaron.item("E") := "Ě" ; (u+011a) E with caron +dkCaron.item("g") := "ǧ" ; (u+01e7) g with caron +dkCaron.item("G") := "Ǧ" ; (u+01e6) G with caron +dkCaron.item("h") := "ȟ" ; (u+021f) h with caron +dkCaron.item("H") := "Ȟ" ; (u+021e) H with caron +dkCaron.item("i") := "ǐ" ; (u+01d0) i with caron +dkCaron.item("I") := "Ǐ" ; (u+01cf) I with caron +dkCaron.item("j") := "ǰ" ; (u+01f0) j with caron +dkCaron.item("k") := "Ç©" ; (u+01e9) k with caron +dkCaron.item("K") := "Ǩ" ; (u+01e8) K with caron +dkCaron.item("l") := "ľ" ; (u+013e) l with caron +dkCaron.item("L") := "Ľ" ; (u+013d) L with caron +dkCaron.item("n") := "ň" ; (u+0148) n with caron +dkCaron.item("N") := "Ň" ; (u+0147) N with caron +dkCaron.item("o") := "ǒ" ; (u+01d2) o with caron +dkCaron.item("O") := "Ǒ" ; (u+01d1) O with caron +dkCaron.item("r") := "ř" ; (u+0159) r with caron +dkCaron.item("R") := "Ř" ; (u+0158) R with caron +dkCaron.item("s") := "Å¡" ; (u+0161) s with caron +dkCaron.item("S") := "Å " ; (u+0160) S with caron +dkCaron.item("t") := "Å¥" ; (u+0165) t with caron +dkCaron.item("T") := "Ť" ; (u+0164) T with caron +dkCaron.item("u") := "ǔ" ; (u+01d4) u with caron +dkCaron.item("U") := "Ǔ" ; (u+01d3) U with caron +dkCaron.item("ü") := "ǚ" ; (u+01da) u with diaeresis and caron +dkCaron.item("Ü") := "Ǚ" ; (u+01d9) U with diaeresis and caron +dkCaron.item("z") := "ž" ; (u+017e) z with caron +dkCaron.item("Z") := "Ž" ; (u+017d) Z with caron +dkCaron.item("3") := "ǯ" ; (u+01ef) small letter ezh with caron +dkCaron.item("#") := "Ç®" ; (u+01ee) capital letter ezh with caron +dkCaron.item(" ") := "ˇ" ; (u+02c7) caron + + +; Dead Key : Ring/Dot Above + +dkRingDotAbove := ComObjCreate("Scripting.Dictionary") +dkRingDotAbove.item("a") := "Ã¥" ; (u+00e5) a with ring above +dkRingDotAbove.item("A") := "Å" ; (u+00c5) A with ring above +dkRingDotAbove.item("ä") := "ȧ" ; (u+0227) a with dot above +dkRingDotAbove.item("Ä") := "Ȧ" ; (u+0226) A with dot above +dkRingDotAbove.item("b") := "ḃ" ; (u+1e03) b with dot above +dkRingDotAbove.item("B") := "Ḃ" ; (u+1e02) B with dot above +dkRingDotAbove.item("c") := "ċ" ; (u+010b) c with dot above +dkRingDotAbove.item("C") := "Ċ" ; (u+010a) C with dot above +dkRingDotAbove.item("d") := "ḋ" ; (u+1e0b) d with dot above +dkRingDotAbove.item("D") := "Ḋ" ; (u+1e0a) D with dot above +dkRingDotAbove.item("e") := "ė" ; (u+0117) e with dot above +dkRingDotAbove.item("E") := "Ė" ; (u+0116) E with dot above +dkRingDotAbove.item("f") := "ḟ" ; (u+1e1f) f with dot above +dkRingDotAbove.item("F") := "Ḟ" ; (u+1e1e) F with dot above +dkRingDotAbove.item("g") := "Ä¡" ; (u+0121) g with dot above +dkRingDotAbove.item("G") := "Ä " ; (u+0120) G with dot above +dkRingDotAbove.item("h") := "ḣ" ; (u+1e23) h with dot above +dkRingDotAbove.item("H") := "Ḣ" ; (u+1e22) H with dot above +dkRingDotAbove.item("i") := "ı" ; (u+0131) dotless i (Turkish, Azerbaijani) +dkRingDotAbove.item("I") := "İ" ; (u+0130) I with dot above (Turkish, Azerbaijani) +dkRingDotAbove.item("j") := "È·" ; (u+0237) dotless j +dkRingDotAbove.item("l") := "ŀ" ; (u+0140) l with middle dot +dkRingDotAbove.item("L") := "Ä¿" ; (u+013f) L with middle dot +dkRingDotAbove.item("m") := "ṁ" ; (u+1e41) m with dot above +dkRingDotAbove.item("M") := "Ṁ" ; (u+1e40) M with dot above +dkRingDotAbove.item("n") := "ṅ" ; (u+1e45) n with dot above +dkRingDotAbove.item("N") := "Ṅ" ; (u+1e44) N with dot above +dkRingDotAbove.item("o") := "ȯ" ; (u+022f) o with dot above +dkRingDotAbove.item("O") := "È®" ; (u+022e) O with dot above +dkRingDotAbove.item("p") := "ṗ" ; (u+1e57) p with dot above +dkRingDotAbove.item("P") := "Ṗ" ; (u+1e56) P with dot above +dkRingDotAbove.item("r") := "ṙ" ; (u+1e59) r with dot above +dkRingDotAbove.item("R") := "Ṙ" ; (u+1e58) R with dot above +dkRingDotAbove.item("s") := "ṡ" ; (u+1e61) s with dot above +dkRingDotAbove.item("S") := "á¹ " ; (u+1e60) S with dot above +dkRingDotAbove.item("t") := "ṫ" ; (u+1e6b) t with dot above +dkRingDotAbove.item("T") := "Ṫ" ; (u+1e6a) T with dot above +dkRingDotAbove.item("u") := "ů" ; (u+016f) u with ring above +dkRingDotAbove.item("U") := "Å®" ; (u+016e) U with ring above +dkRingDotAbove.item("w") := "ẇ" ; (u+1e87) w with dot above +dkRingDotAbove.item("W") := "Ẇ" ; (u+1e86) W with dot above +dkRingDotAbove.item("Ã¥") := "ẘ" ; (u+1e98) w with ring above +dkRingDotAbove.item("x") := "ẋ" ; (u+1e8b) x with dot above +dkRingDotAbove.item("X") := "Ẋ" ; (u+1e8a) X with dot above +dkRingDotAbove.item("y") := "ẏ" ; (u+1e8f) y with dot above +dkRingDotAbove.item("Y") := "Ẏ" ; (u+1e8e) Y with dot above +dkRingDotAbove.item("ÿ") := "ẙ" ; (u+1e99) y with ring above +dkRingDotAbove.item("z") := "ż" ; (u+017c) z with dot above +dkRingDotAbove.item("Z") := "Å»" ; (u+017b) Z with dot above +dkRingDotAbove.item(" ") := "˙" ; (u+02d9) dot above + + +; Dead Key : Macron/Stroke + +dkMacronStroke := ComObjCreate("Scripting.Dictionary") +dkMacronStroke.item("a") := "ā" ; (u+0101) a with macron +dkMacronStroke.item("A") := "Ā" ; (u+0100) A with macron +dkMacronStroke.item("æ") := "Ç£" ; (u+01e3) ae with macron +dkMacronStroke.item("Æ") := "Ç¢" ; (u+01e2) AE with macron +dkMacronStroke.item("b") := "ƀ" ; (u+0180) b with stroke +dkMacronStroke.item("B") := "Ƀ" ; (u+0243) B with stroke +dkMacronStroke.item("d") := "đ" ; (u+0111) d with stroke +dkMacronStroke.item("D") := "Đ" ; (u+0110) D with stroke +dkMacronStroke.item("e") := "ē" ; (u+0113) e with macron +dkMacronStroke.item("E") := "Ē" ; (u+0112) E with macron +dkMacronStroke.item("g") := "Ç¥" ; (u+01e5) g with stroke (Skolt Sami) +dkMacronStroke.item("G") := "Ǥ" ; (u+01e4) G with stroke (Skolt Sami) +dkMacronStroke.item("é") := "ḡ" ; (u+1e21) g with macron +dkMacronStroke.item("É") := "Ḡ" ; (u+1e20) G with macron +dkMacronStroke.item("h") := "ħ" ; (u+0127) h with stroke (Maltese) +dkMacronStroke.item("H") := "Ħ" ; (u+0126) H with stroke (Maltese) +dkMacronStroke.item("i") := "Ä«" ; (u+012b) i with macron +dkMacronStroke.item("I") := "Ī" ; (u+012a) I with macron +dkMacronStroke.item("ï") := "ɨ" ; (u+0268) i with stroke +dkMacronStroke.item("Ï") := "Ɨ" ; (u+0197) I with stroke +dkMacronStroke.item("j") := "ɉ" ; (u+0249) j with stroke +dkMacronStroke.item("J") := "Ɉ" ; (u+0248) J with stroke +dkMacronStroke.item("l") := "ł" ; (u+0142) l with stroke +dkMacronStroke.item("L") := "Ł" ; (u+0141) L with stroke +dkMacronStroke.item("ø") := "ḻ" ; (u+1e3b) l with line below +dkMacronStroke.item("Ø") := "Ḻ" ; (u+1e3a) L with line below +dkMacronStroke.item("o") := "ō" ; (u+014d) o with macron +dkMacronStroke.item("O") := "Ō" ; (u+014c) O with macron +dkMacronStroke.item("ö") := "Ç­" ; (u+01ed) o with ogonek and macron +dkMacronStroke.item("Ö") := "Ǭ" ; (u+01ec) O with ogonek and macron +dkMacronStroke.item("p") := "áµ½" ; (u+1d7d) p with stroke +dkMacronStroke.item("P") := "â±£" ; (u+2c63) P with stroke +dkMacronStroke.item("r") := "ɍ" ; (u+024d) r with stroke +dkMacronStroke.item("R") := "Ɍ" ; (u+024c) R with stroke +dkMacronStroke.item("t") := "ŧ" ; (u+0167) t with stroke +dkMacronStroke.item("T") := "Ŧ" ; (u+0166) T with stroke +dkMacronStroke.item("u") := "Å«" ; (u+016b) u with macron +dkMacronStroke.item("U") := "Ū" ; (u+016a) U with macron +dkMacronStroke.item("ü") := "ʉ" ; (u+0289) u with bar +dkMacronStroke.item("Ü") := "Ʉ" ; (u+0244) U with bar +dkMacronStroke.item("y") := "ȳ" ; (u+0233) y with macron +dkMacronStroke.item("Y") := "Ȳ" ; (u+0232) Y with macron +dkMacronStroke.item("ÿ") := "ɏ" ; (u+024f) y with stroke +dkMacronStroke.item("Ÿ") := "Ɏ" ; (u+024c) Y with stroke +dkMacronStroke.item("z") := "ƶ" ; (u+01b6) z with stroke +dkMacronStroke.item("Z") := "Ƶ" ; (u+01b5) Z with stroke +dkMacronStroke.item(" ") := "¯" ; (u+00af) macron + + +; Dead Key : Cedilla/Ogonek + +dkCedillaOgonek := ComObjCreate("Scripting.Dictionary") +dkCedillaOgonek.item("a") := "ą" ; (u+0105) a with ogonek +dkCedillaOgonek.item("A") := "Ą" ; (u+0104) A with ogonek +dkCedillaOgonek.item("c") := "ç" ; (u+00e7) c with cedilla +dkCedillaOgonek.item("C") := "Ç" ; (u+00c7) C with cedilla +dkCedillaOgonek.item("d") := "ḑ" ; (u+1e11) d with cedilla +dkCedillaOgonek.item("D") := "Ḑ" ; (u+1e10) D with cedilla +dkCedillaOgonek.item("e") := "ę" ; (u+0119) e with ogonek +dkCedillaOgonek.item("E") := "Ę" ; (u+0118) E with ogonek +dkCedillaOgonek.item("ë") := "È©" ; (u+0229) e with cedilla +dkCedillaOgonek.item("Ë") := "Ȩ" ; (u+0228) E with cedilla +dkCedillaOgonek.item("g") := "Ä£" ; (u+0123) g with cedilla +dkCedillaOgonek.item("G") := "Ä¢" ; (u+0122) G with cedilla +dkCedillaOgonek.item("h") := "ḩ" ; (u+1e29) h with cedilla +dkCedillaOgonek.item("H") := "Ḩ" ; (u+1e28) H with cedilla +dkCedillaOgonek.item("i") := "į" ; (u+012f) i with ogonek +dkCedillaOgonek.item("I") := "Ä®" ; (u+012e) I with ogonek +dkCedillaOgonek.item("k") := "Ä·" ; (u+0137) k with cedilla +dkCedillaOgonek.item("K") := "Ķ" ; (u+0136) K with cedilla +dkCedillaOgonek.item("l") := "ļ" ; (u+013c) l with cedilla +dkCedillaOgonek.item("L") := "Ä»" ; (u+013b) L with cedilla +dkCedillaOgonek.item("n") := "ņ" ; (u+0146) n with cedilla +dkCedillaOgonek.item("N") := "Ņ" ; (u+0145) N with cedilla +dkCedillaOgonek.item("o") := "Ç«" ; (u+01eb) o with ogonek +dkCedillaOgonek.item("O") := "Ǫ" ; (u+01ea) O with ogonek +dkCedillaOgonek.item("ö") := "Ç­" ; (u+01ed) o with ogonek and macron +dkCedillaOgonek.item("Ö") := "Ǭ" ; (u+01ec) O with ogonek and macron +dkCedillaOgonek.item("r") := "ŗ" ; (u+0157) r with cedilla +dkCedillaOgonek.item("R") := "Ŗ" ; (u+0156) R with cedilla +dkCedillaOgonek.item("s") := "ş" ; (u+015f) s with cedilla +dkCedillaOgonek.item("S") := "Ş" ; (u+015e) S with cedilla +dkCedillaOgonek.item("t") := "Å£" ; (u+0163) t with cedilla +dkCedillaOgonek.item("T") := "Å¢" ; (u+0162) T with cedilla +dkCedillaOgonek.item("u") := "ų" ; (u+0173) u with ogonek +dkCedillaOgonek.item("U") := "Ų" ; (u+0172) U with ogonek +dkCedillaOgonek.item("w") := "₩" ; (u+20a9) South Korean won +dkCedillaOgonek.item("W") := "₩" ; (u+20a9) South Korean won +dkCedillaOgonek.item("1") := "–" ; (u+2013) en dash +dkCedillaOgonek.item("2") := "—" ; (u+2014) em dash +dkCedillaOgonek.item("3") := "―" ; (u+2015) horizontal bar +dkCedillaOgonek.item("4") := "‐" ; (u+2010) hyphen +dkCedillaOgonek.item("9") := "‒" ; (u+2012) figure dash +dkCedillaOgonek.item("0") := "­" ; (u+00ad) soft hyphen +dkCedillaOgonek.item("-") := "‑" ; (u+2011) non-breaking hyphen +dkCedillaOgonek.item(".") := "˛" ; (u+02db) ogonek +dkCedillaOgonek.item(" ") := "¸" ; (u+00b8) cedilla + + +; Dead Key : Breve/Special + +dkBreveSpecial := ComObjCreate("Scripting.Dictionary") +dkBreveSpecial.item("a") := "ă" ; (u+0103) a with breve +dkBreveSpecial.item("A") := "Ă" ; (u+0102) A with breve +dkBreveSpecial.item("d") := "ɖ" ; (u+0256) small letter d with tail +dkBreveSpecial.item("D") := "Ɖ" ; (u+0189) capital letter African D +dkBreveSpecial.item("e") := "ĕ" ; (u+0115) e with breve +dkBreveSpecial.item("E") := "Ĕ" ; (u+0114) E with breve +dkBreveSpecial.item("ë") := "ǝ" ; (u+01dd) small turned e +dkBreveSpecial.item("Ë") := "Ǝ" ; (u+018e) capital reversed E +dkBreveSpecial.item("f") := "ə" ; (u+0259) small letter schwa (Azerbaijani) +dkBreveSpecial.item("F") := "Ə" ; (u+018f) capital letter schwa (Azerbaijani) +dkBreveSpecial.item("g") := "ğ" ; (u+011f) g with breve +dkBreveSpecial.item("G") := "Ğ" ; (u+011e) G with breve +dkBreveSpecial.item("é") := "ꬶ" ; (u+ab36) cross-tailed g +dkBreveSpecial.item("h") := "É£" ; (u+0263) latin small gamma +dkBreveSpecial.item("H") := "Ɣ" ; (u+0194) latin capital gamma +dkBreveSpecial.item("i") := "Ä­" ; (u+012d) i with breve +dkBreveSpecial.item("I") := "Ĭ" ; (u+012c) I with breve +dkBreveSpecial.item("j") := "ij" ; (u+0133) ligature ij +dkBreveSpecial.item("J") := "IJ" ; (u+0132) ligature IJ +dkBreveSpecial.item("k") := "ĸ" ; (u+0138) small letter kra +dkBreveSpecial.item("n") := "ŋ" ; (u+014b) small letter eng(ma) +dkBreveSpecial.item("N") := "Ŋ" ; (u+014a) capital letter eng(ma) +dkBreveSpecial.item("o") := "ŏ" ; (u+014f) o with breve +dkBreveSpecial.item("O") := "Ŏ" ; (u+014e) O with breve +dkBreveSpecial.item("ö") := "ɔ" ; (u+0254) small open o +dkBreveSpecial.item("Ö") := "Ɔ" ; (u+0186) capital open O +dkBreveSpecial.item("s") := "ș" ; (u+0219) s with comma below (Romanian) +dkBreveSpecial.item("S") := "Ș" ; (u+0218) S with comma below (Romanian) +dkBreveSpecial.item("t") := "ț" ; (u+021b) t with comma below (Romanian) +dkBreveSpecial.item("T") := "Ț" ; (u+021a) T with comma below (Romanian) +dkBreveSpecial.item("u") := "Å­" ; (u+016d) u with breve +dkBreveSpecial.item("U") := "Ŭ" ; (u+016c) U with breve +dkBreveSpecial.item("v") := "ʊ" ; (u+028a) latin small letter upsilon +dkBreveSpecial.item("V") := "Ʊ" ; (u+01b1) latin capital letter upsilon +dkBreveSpecial.item("w") := "Æ¿" ; (u+01bf) small letter wynn +dkBreveSpecial.item("W") := "Ç·" ; (u+01f7) capital letter wynn +dkBreveSpecial.item("y") := "ȝ" ; (u+021d) small letter yogh +dkBreveSpecial.item("Y") := "Ȝ" ; (u+021c) capital letter yogh +dkBreveSpecial.item("3") := "ʒ" ; (u+0292) small letter ezh +dkBreveSpecial.item("#") := "Æ·" ; (u+01b7) capital letter ezh +dkBreveSpecial.item(" ") := "˘" ; (u+02d8) breve + + +; Dead Key : Acute Accent + +dkAcuteAccent := ComObjCreate("Scripting.Dictionary") +dkAcuteAccent.item("a") := "á" ; (u+00e1) a with acute +dkAcuteAccent.item("A") := "Á" ; (u+00c1) A with acute +dkAcuteAccent.item("b") := "ɓ" ; (u+0253) b with hook +dkAcuteAccent.item("B") := "Ɓ" ; (u+0181) B with hook +dkAcuteAccent.item("c") := "ć" ; (u+0107) c with acute +dkAcuteAccent.item("C") := "Ć" ; (u+0106) C with acute +dkAcuteAccent.item("ç") := "ḉ" ; (u+1e09) c with cedilla and acute +dkAcuteAccent.item("Ç") := "Ḉ" ; (u+1e08) C with cedilla and acute +dkAcuteAccent.item("d") := "ɗ" ; (u+0257) d with hook +dkAcuteAccent.item("D") := "Ɗ" ; (u+018a) D with hook +dkAcuteAccent.item("e") := "é" ; (u+00e9) e with acute +dkAcuteAccent.item("E") := "É" ; (u+00c9) E with acute +dkAcuteAccent.item("f") := "ƒ" ; (u+0192) f with hook +dkAcuteAccent.item("F") := "Ƒ" ; (u+0191) F with hook +dkAcuteAccent.item("g") := "ǵ" ; (u+01f5) g with acute +dkAcuteAccent.item("G") := "Ç´" ; (u+01f4) G with acute +dkAcuteAccent.item("h") := "ɦ" ; (u+0266) h with hook +dkAcuteAccent.item("H") := "Ɦ" ; (u+a7aa) H with hook +dkAcuteAccent.item("i") := "í" ; (u+00ed) i with acute +dkAcuteAccent.item("I") := "Í" ; (u+00cd) I with acute +dkAcuteAccent.item("j") := "ij" ; (u+0133) ligature ij +dkAcuteAccent.item("J") := "IJ" ; (u+0132) ligature IJ +dkAcuteAccent.item("k") := "ƙ" ; (u+0199) k with hook +dkAcuteAccent.item("K") := "Ƙ" ; (u+0198) K with hook +dkAcuteAccent.item("l") := "ĺ" ; (u+013a) l with acute +dkAcuteAccent.item("L") := "Ĺ" ; (u+0139) L with acute +dkAcuteAccent.item("m") := "ḿ" ; (u+1e3f) m with acute +dkAcuteAccent.item("M") := "Ḿ" ; (u+1e3e) M with acute +dkAcuteAccent.item("n") := "ń" ; (u+0144) n with acute +dkAcuteAccent.item("N") := "Ń" ; (u+0143) N with acute +dkAcuteAccent.item("o") := "ó" ; (u+00f3) o with acute +dkAcuteAccent.item("O") := "Ó" ; (u+00d3) O with acute +dkAcuteAccent.item("ö") := "ő" ; (u+0151) o with double acute +dkAcuteAccent.item("Ö") := "Ő" ; (u+0150) O with double acute +dkAcuteAccent.item("p") := "Æ¥" ; (u+01a5) p with hook +dkAcuteAccent.item("P") := "Ƥ" ; (u+01a4) P with hook +dkAcuteAccent.item("q") := "ɋ" ; (u+024b) q with hook tail +dkAcuteAccent.item("Q") := "Ɋ" ; (u+024a) Q with hook tail +dkAcuteAccent.item("r") := "ŕ" ; (u+0155) r with acute +dkAcuteAccent.item("R") := "Ŕ" ; (u+0154) R with acute +dkAcuteAccent.item("s") := "ś" ; (u+015b) s with acute +dkAcuteAccent.item("S") := "Ś" ; (u+015a) S with acute +dkAcuteAccent.item("t") := "Æ­" ; (u+01ad) t with hook +dkAcuteAccent.item("T") := "Ƭ" ; (u+01ac) T with hook +dkAcuteAccent.item("u") := "ú" ; (u+00fa) u with acute +dkAcuteAccent.item("U") := "Ú" ; (u+00da) U with acute +dkAcuteAccent.item("ü") := "ű" ; (u+0171) u with double acute +dkAcuteAccent.item("Ü") := "Ű" ; (u+0170) U with double acute +dkAcuteAccent.item("v") := "ʋ" ; (u+028b) v with hook +dkAcuteAccent.item("V") := "Ʋ" ; (u+01b2) V with hook +dkAcuteAccent.item("w") := "ẃ" ; (u+1e83) w with acute +dkAcuteAccent.item("W") := "Ẃ" ; (u+1e82) W with acute +dkAcuteAccent.item("y") := "ý" ; (u+00fd) y with acute +dkAcuteAccent.item("Y") := "Ý" ; (u+00dd) Y with acute +dkAcuteAccent.item("z") := "ź" ; (u+017a) z with acute +dkAcuteAccent.item("Z") := "Ź" ; (u+0179) Z with acute +dkAcuteAccent.item("Ã¥") := "Ç»" ; (u+01fb) a with ring above and acute +dkAcuteAccent.item("Å") := "Ǻ" ; (u+01fa) A with ring above and acute +dkAcuteAccent.item("æ") := "ǽ" ; (u+01fd) ae with acute +dkAcuteAccent.item("Æ") := "Ǽ" ; (u+01fc) AE with acute +dkAcuteAccent.item("ø") := "Ç¿" ; (u+01ff) o with stroke and acute +dkAcuteAccent.item("Ø") := "Ǿ" ; (u+01fe) O with stroke and acute +dkAcuteAccent.item("2") := "♫" ; (u+266b) beamed eighth notes +dkAcuteAccent.item("3") := "⁂" ; (u+2042) asterism +dkAcuteAccent.item("4") := "★" ; (u+2605) black star +dkAcuteAccent.item("5") := "☆" ; (u+2606) white star +dkAcuteAccent.item("6") := "✽" ; (u+273d) heavy teardrop-spoked asterisk +dkAcuteAccent.item("7") := "✻" ; (u+273b) teardrop-spoked asterisk +dkAcuteAccent.item("8") := "♪" ; (u+266a) eighth note +dkAcuteAccent.item("'") := "´" ; (u+00b4) acute accent +dkAcuteAccent.item(" ") := "´" ; (u+00b4) acute accent + + +; Dead Key : Diaeresis + +dkDiaeresis := ComObjCreate("Scripting.Dictionary") +dkDiaeresis.item("a") := "ä" ; (u+00e4) a with diaeresis +dkDiaeresis.item("A") := "Ä" ; (u+00c4) A with diaeresis +dkDiaeresis.item("e") := "ë" ; (u+00eb) e with diaeresis +dkDiaeresis.item("E") := "Ë" ; (u+00cb) E with diaeresis +dkDiaeresis.item("h") := "ḧ" ; (u+1e27) h with diaeresis +dkDiaeresis.item("H") := "Ḧ" ; (u+1e26) H with diaeresis +dkDiaeresis.item("i") := "ï" ; (u+00ef) i with diaeresis +dkDiaeresis.item("I") := "Ï" ; (u+00cf) I with diaeresis +dkDiaeresis.item("o") := "ö" ; (u+00f6) o with diaeresis +dkDiaeresis.item("O") := "Ö" ; (u+00d6) O with diaeresis +dkDiaeresis.item("s") := "ß" ; (u+00df) small sharp s (Eszett) +dkDiaeresis.item("S") := "ẞ" ; (u+1e9e) capital sharp S (capital Eszett) +dkDiaeresis.item("t") := "ẗ" ; (u+1e97) t with diaeresis +dkDiaeresis.item("u") := "ü" ; (u+00fc) u with diaeresis +dkDiaeresis.item("U") := "Ü" ; (u+00dc) U with diaeresis +dkDiaeresis.item("w") := "ẅ" ; (u+1e85) w with diaeresis +dkDiaeresis.item("W") := "Ẅ" ; (u+1e84) W with diaeresis +dkDiaeresis.item("x") := "ẍ" ; (u+1e8d) x with diaeresis +dkDiaeresis.item("X") := "Ẍ" ; (u+1e8c) X with diaeresis +dkDiaeresis.item("y") := "ÿ" ; (u+00ff) y with diaeresis +dkDiaeresis.item("Y") := "Ÿ" ; (u+0178) Y with diaeresis +dkDiaeresis.item("""") := "¨" ; (u+00a8) diaeresis +dkDiaeresis.item(" ") := "¨" ; (u+00a8) diaeresis + + +; Dead Key : Grave Accent + +dkGraveAccent := ComObjCreate("Scripting.Dictionary") +dkGraveAccent.item("a") := "à" ; (u+00e0) a with grave +dkGraveAccent.item("A") := "À" ; (u+00c0) A with grave +dkGraveAccent.item("e") := "è" ; (u+00e8) e with grave +dkGraveAccent.item("E") := "È" ; (u+00c8) E with grave +dkGraveAccent.item("i") := "ì" ; (u+00ec) i with grave +dkGraveAccent.item("I") := "Ì" ; (u+00cc) I with grave +dkGraveAccent.item("n") := "ǹ" ; (u+01f9) n with grave +dkGraveAccent.item("N") := "Ǹ" ; (u+01f8) N with grave +dkGraveAccent.item("o") := "ò" ; (u+00f2) o with grave +dkGraveAccent.item("O") := "Ò" ; (u+00d2) O with grave +dkGraveAccent.item("u") := "ù" ; (u+00f9) u with grave +dkGraveAccent.item("U") := "Ù" ; (u+00d9) U with grave +dkGraveAccent.item("w") := "ẁ" ; (u+1e81) w with grave +dkGraveAccent.item("W") := "Ẁ" ; (u+1e80) W with grave +dkGraveAccent.item("y") := "ỳ" ; (u+1ef3) y with grave +dkGraveAccent.item("Y") := "Ỳ" ; (u+1ef2) Y with grave +dkGraveAccent.item("ä") := "₳" ; (u+20b3) Argentine austral +dkGraveAccent.item("Ä") := "₳" ; (u+20b3) Argentine austral +dkGraveAccent.item("b") := "₿" ; (u+20bf) bitcoin +dkGraveAccent.item("B") := "₿" ; (u+20bf) bitcoin +dkGraveAccent.item("c") := "₡" ; (u+20a1) Costa Rican colón +dkGraveAccent.item("C") := "₵" ; (u+20b5) Ghanaian cedi +dkGraveAccent.item("ç") := "₢" ; (u+20a2) Brazilian cruzeiro +dkGraveAccent.item("Ç") := "₢" ; (u+20a2) Brazilian cruzeiro +dkGraveAccent.item("d") := "₫" ; (u+20ab) Vietnamese dong +dkGraveAccent.item("D") := "₯" ; (u+20af) Greek drachma +dkGraveAccent.item("f") := "₣" ; (u+20a3) French franc +dkGraveAccent.item("F") := "₣" ; (u+20a3) French franc +dkGraveAccent.item("g") := "₲" ; (u+20b2) Paraguayan guaraní +dkGraveAccent.item("G") := "₲" ; (u+20b2) Paraguayan guaraní +dkGraveAccent.item("h") := "₴" ; (u+20b4) Ukrainian hryvnia +dkGraveAccent.item("H") := "₴" ; (u+20b4) Ukrainian hryvnia +dkGraveAccent.item("k") := "₭" ; (u+20ad) Laotian kip +dkGraveAccent.item("K") := "₭" ; (u+20ad) Laotian kip +dkGraveAccent.item("l") := "₺" ; (u+20ba) Turkish lira +dkGraveAccent.item("L") := "₾" ; (u+20be) Georgian lari +dkGraveAccent.item("ø") := "₤" ; (u+20a4) lira +dkGraveAccent.item("Ø") := "₤" ; (u+20a4) lira +dkGraveAccent.item("m") := "₼" ; (u+20bc) Azerbaijani manat +dkGraveAccent.item("M") := "₥" ; (u+20a5) mill sign +dkGraveAccent.item("ñ") := "₦" ; (u+20a6) Nigerian naira +dkGraveAccent.item("Ñ") := "₦" ; (u+20a6) Nigerian naira +dkGraveAccent.item("p") := "₱" ; (u+20b1) Philippine peso +dkGraveAccent.item("P") := "₱" ; (u+20b1) Philippine peso +dkGraveAccent.item("r") := "₹" ; (u+20b9) Indian rupee +dkGraveAccent.item("R") := "₽" ; (u+20bd) Russian ruble +dkGraveAccent.item("s") := "₪" ; (u+20aa) Israeli new shekel +dkGraveAccent.item("S") := "₪" ; (u+20aa) Israeli new shekel +dkGraveAccent.item("t") := "₮" ; (u+20ae) Mongolian tögrög (tugrik) +dkGraveAccent.item("T") := "₸" ; (u+20b8) Kazakh tenge +dkGraveAccent.item("Ã¥") := "₩" ; (u+20a9) South Korean won +dkGraveAccent.item("Å") := "₩" ; (u+20a9) South Korean won +dkGraveAccent.item("1") := " " ; (u+2002) en space +dkGraveAccent.item("2") := " " ; (u+2003) em space +dkGraveAccent.item("3") := " " ; (u+2004) three-per-em space +dkGraveAccent.item("4") := " " ; (u+2005) four-per-em space +dkGraveAccent.item("5") := " " ; (u+2008) punctuation space +dkGraveAccent.item("6") := " " ; (u+2006) six-per-em space +dkGraveAccent.item("7") := " " ; (u+2009) thin space +dkGraveAccent.item("8") := " " ; (u+200a) hair space +dkGraveAccent.item("9") := " " ; (u+2007) figure space +dkGraveAccent.item("0") := "​" ; (u+200b) zero-width space +dkGraveAccent.item("-") := " " ; (u+00a0) non-breaking space +dkGraveAccent.item("!") := " " ; (u+2000) en quad +dkGraveAccent.item("@") := " " ; (u+2001) em quad +dkGraveAccent.item("``") := "``" ; (u+0060) grave accent +dkGraveAccent.item(" ") := "``" ; (u+0060) grave accent + + +; Dead Key : Tilde + +dkTilde := ComObjCreate("Scripting.Dictionary") +dkTilde.item("a") := "ã" ; (u+00e3) a with tilde +dkTilde.item("A") := "Ã" ; (u+00c3) A with tilde +dkTilde.item("e") := "ẽ" ; (u+1ebd) e with tilde +dkTilde.item("E") := "Ẽ" ; (u+1ebc) E with tilde +dkTilde.item("i") := "Ä©" ; (u+0129) i with tilde +dkTilde.item("I") := "Ĩ" ; (u+0128) I with tilde +dkTilde.item("n") := "ñ" ; (u+00f1) n with tilde +dkTilde.item("N") := "Ñ" ; (u+00d1) N with tilde +dkTilde.item("o") := "õ" ; (u+00f5) o with tilde +dkTilde.item("O") := "Õ" ; (u+00d5) O with tilde +dkTilde.item("u") := "Å©" ; (u+0169) u with tilde +dkTilde.item("U") := "Ũ" ; (u+0168) U with tilde +dkTilde.item("v") := "á¹½" ; (u+1e7d) v with tilde +dkTilde.item("V") := "á¹¼" ; (u+1e7c) V with tilde +dkTilde.item("y") := "ỹ" ; (u+1ef9) y with tilde +dkTilde.item("Y") := "Ỹ" ; (u+1ef8) Y with tilde +dkTilde.item("~") := "~" ; (u+007e) tilde +dkTilde.item(" ") := "~" ; (u+007e) tilde + + +; Dead Key : Not Sign + +dkNotSign := ComObjCreate("Scripting.Dictionary") +dkNotSign.item("a") := "ª" ; (u+00aa) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("A") := "ª" ; (u+00aa) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("b") := "☐" ; (u+2610) ballot box +dkNotSign.item("B") := "☒" ; (u+2612) ballot box with x +dkNotSign.item("c") := "©" ; (u+00a9) copyright sign +dkNotSign.item("C") := "¤" ; (u+00a4) currency sign +dkNotSign.item("d") := "†" ; (u+2020) dagger +dkNotSign.item("D") := "‡" ; (u+2021) double dagger +dkNotSign.item("e") := "…" ; (u+2026) ellipsis +dkNotSign.item("E") := "℮" ; (u+212e) estimated symbol +dkNotSign.item("f") := "♀" ; (u+2640) Venus symbol (female) +dkNotSign.item("F") := "♀" ; (u+2640) Venus symbol (female) +dkNotSign.item("h") := "♡" ; (u+2661) white heart suit +dkNotSign.item("H") := "♥" ; (u+2665) black heart suit +dkNotSign.item("l") := "ℓ" ; (u+2113) script small l +dkNotSign.item("L") := "ℓ" ; (u+2113) script small l +dkNotSign.item("m") := "♂" ; (u+2642) Mars symbol (male) +dkNotSign.item("M") := "♂" ; (u+2642) Mars symbol (male) +dkNotSign.item("n") := "¬" ; (u+00ac) not sign +dkNotSign.item("N") := "¬" ; (u+00ac) not sign +dkNotSign.item("o") := "º" ; (u+00ba) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("O") := "º" ; (u+00ba) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("p") := "¶" ; (u+00b6) pilcrow sign +dkNotSign.item("P") := "℗" ; (u+2117) sound recording copyright +dkNotSign.item("r") := "®" ; (u+00ae) registered sign +dkNotSign.item("R") := "®" ; (u+00ae) registered sign +dkNotSign.item("s") := "§" ; (u+00a7) section sign +dkNotSign.item("S") := "℠" ; (u+2120) service mark +dkNotSign.item("t") := "™" ; (u+2122) trademark symbol +dkNotSign.item("T") := "™" ; (u+2122) trademark symbol +dkNotSign.item("v") := "✓" ; (u+2713) check mark +dkNotSign.item("V") := "✔" ; (u+2714) heavy check mark +dkNotSign.item("w") := "☑" ; (u+2611) ballot box with check +dkNotSign.item("W") := "☙" ; (u+2619) reversed rotated floral heart bullet +dkNotSign.item("x") := "✗" ; (u+2717) ballot x +dkNotSign.item("X") := "✘" ; (u+2718) heavy ballot x +dkNotSign.item("y") := "☺" ; (u+263a) white smiling face +dkNotSign.item("Y") := "☻" ; (u+263b) black smiling face +dkNotSign.item("1") := "←" ; (u+2190) leftwards arrow +dkNotSign.item("2") := "↓" ; (u+2193) downwards arrow +dkNotSign.item("3") := "↑" ; (u+2191) upwards arrow +dkNotSign.item("4") := "→" ; (u+2192) rightwards arrow +dkNotSign.item("5") := "↖" ; (u+2196) north west arrow +dkNotSign.item("6") := "↙" ; (u+2199) south west arrow +dkNotSign.item("7") := "↗" ; (u+2197) north east arrow +dkNotSign.item("8") := "↘" ; (u+2198) south east arrow +dkNotSign.item("9") := "↕" ; (u+2195) up down arrow +dkNotSign.item("0") := "↨" ; (u+21a8) up down arrow with base +dkNotSign.item("=") := "↔" ; (u+2194) left right arrow +dkNotSign.item("!") := "⇐" ; (u+21d0) leftwards double arrow +dkNotSign.item("@") := "⇓" ; (u+21d3) downwards double arrow +dkNotSign.item("#") := "⇑" ; (u+21d1) upwards double arrow +dkNotSign.item("$") := "⇒" ; (u+21d2) rightwards double arrow +dkNotSign.item("%") := "⇖" ; (u+21d6) north west double arrow +dkNotSign.item("^") := "⇙" ; (u+21d9) south west double arrow +dkNotSign.item("&") := "⇗" ; (u+21d7) north east double arrow +dkNotSign.item("*") := "⇘" ; (u+21d8) south east double arrow +dkNotSign.item("(") := "⇕" ; (u+21d5) up down double arrow +dkNotSign.item(")") := "↲" ; (u+21b2) downwards arrow with tip leftwards +dkNotSign.item("+") := "⇔" ; (u+21d4) left right double arrow +dkNotSign.item(".") := "•" ; (u+2022) bullet +dkNotSign.item("-") := "⁃" ; (u+2043) hyphen bullet +dkNotSign.item("/") := "‼" ; (u+203c) double exclamation mark +dkNotSign.item("?") := "‽" ; (u+203a) interrobang +dkNotSign.item("¿") := "⸘" ; (u+2e18) inverted interrobang +dkNotSign.item("¶") := "⸮" ; (u+2e2e) reversed question mark +dkNotSign.item("\") := "⁞" ; (u+205e) vertical four dots +dkNotSign.item("|") := "⁞" ; (u+205e) vertical four dots +dkNotSign.item(" ") := "¬" ; (u+00ac) not sign + + +; Dead Key : Broken Bar + +dkBrokenBar := ComObjCreate("Scripting.Dictionary") +dkBrokenBar.item("a") := "ɑ" ; (u+0251) latin small letter alpha +dkBrokenBar.item("A") := "â±­" ; (u+2c6d) latin capital letter alpha +dkBrokenBar.item("ä") := "ɒ" ; (u+0252) latin small letter turned alpha +dkBrokenBar.item("Ä") := "â±°" ; (u+2c70) latin capital letter turned alpha +dkBrokenBar.item("c") := "ƈ" ; (u+0188) c with hook +dkBrokenBar.item("C") := "Ƈ" ; (u+0187) C with hook +dkBrokenBar.item("e") := "ɛ" ; (u+025b) small open e (latin small epsilon) +dkBrokenBar.item("E") := "Ɛ" ; (u+0190) capital open E (latin capital epsilon) +dkBrokenBar.item("f") := "❦" ; (u+2766) floral heart +dkBrokenBar.item("F") := "❧" ; (u+2767) rotated floral heart bullet +dkBrokenBar.item("g") := "É " ; (u+0260) g with hook +dkBrokenBar.item("G") := "Ɠ" ; (u+0193) G with hook +dkBrokenBar.item("h") := "ꜧ" ; (u+a727) small letter heng +dkBrokenBar.item("H") := "Ꜧ" ; (u+a726) capital letter heng +dkBrokenBar.item("ù") := "ɧ" ; (u+0267) small letter heng with hook +dkBrokenBar.item("k") := "ḱ" ; (u+1e31) k with acute +dkBrokenBar.item("K") := "Ḱ" ; (u+1e30) K with acute +dkBrokenBar.item("m") := "ɱ" ; (u+0271) m with hook +dkBrokenBar.item("M") := "â±®" ; (u+2c6e) M with hook +dkBrokenBar.item("n") := "ɲ" ; (u+0272) n with left hook +dkBrokenBar.item("N") := "Ɲ" ; (u+019d) N with left hook +dkBrokenBar.item("o") := "Æ¡" ; (u+01a1) o with horn +dkBrokenBar.item("O") := "Æ " ; (u+01a0) O with horn +dkBrokenBar.item("p") := "ṕ" ; (u+1e55) p with acute +dkBrokenBar.item("P") := "Ṕ" ; (u+1e54) P with acute +dkBrokenBar.item("r") := "ɽ" ; (u+027d) r with tail +dkBrokenBar.item("R") := "Ɽ" ; (u+2c64) R with tail +dkBrokenBar.item("s") := "ʃ" ; (u+0283) small letter esh +dkBrokenBar.item("S") := "Æ©" ; (u+01a9) capital letter esh +dkBrokenBar.item("ß") := "Å¿" ; (u+017f) small long s +dkBrokenBar.item("u") := "ư" ; (u+01b0) u with horn +dkBrokenBar.item("U") := "Ư" ; (u+01af) U with horn +dkBrokenBar.item("v") := "ʌ" ; (u+028c) latin small letter turned v +dkBrokenBar.item("V") := "Ʌ" ; (u+0245) latin capital letter turned V +dkBrokenBar.item("w") := "â±³" ; (u+2c73) w with hook +dkBrokenBar.item("W") := "â±²" ; (u+2c72) W with hook +dkBrokenBar.item("y") := "Æ´" ; (u+01b4) y with hook +dkBrokenBar.item("Y") := "Ƴ" ; (u+01b3) Y with hook +dkBrokenBar.item("z") := "È¥" ; (u+0225) z with hook +dkBrokenBar.item("Z") := "Ȥ" ; (u+0224) Z with hook +dkBrokenBar.item("1") := "№" ; (u+2116) numero sign +dkBrokenBar.item("2") := "½" ; (u+00bd) vulgar fraction 1/2 +dkBrokenBar.item("3") := "⅓" ; (u+2153) vulgar fraction 1/3 +dkBrokenBar.item("4") := "¼" ; (u+00bc) vulgar fraction 1/4 +dkBrokenBar.item("5") := "⅔" ; (u+2154) vulgar fraction 2/3 +dkBrokenBar.item("6") := "¾" ; (u+00be) vulgar fraction 3/4 +dkBrokenBar.item("7") := "⅛" ; (u+215b) vulgar fraction 1/8 +dkBrokenBar.item("8") := "⅜" ; (u+215c) vulgar fraction 3/8 +dkBrokenBar.item("9") := "⅝" ; (u+215d) vulgar fraction 5/8 +dkBrokenBar.item("0") := "⅞" ; (u+215e) vulgar fraction 7/8 +dkBrokenBar.item("\") := "¦" ; (u+00a6) broken bar +dkBrokenBar.item("|") := "¦" ; (u+00a6) broken bar +dkBrokenBar.item(" ") := "¦" ; (u+00a6) broken bar + + +; Dead Key : Greek Alphabet + +dkGreekAlphabet := ComObjCreate("Scripting.Dictionary") +dkGreekAlphabet.item("a") := "α" ; (u+03b1) small alpha +dkGreekAlphabet.item("A") := "Α" ; (u+0391) capital alpha +dkGreekAlphabet.item("b") := "β" ; (u+03b2) small beta +dkGreekAlphabet.item("B") := "Β" ; (u+0392) capital beta +dkGreekAlphabet.item("v") := "β" ; (u+03b2) small beta +dkGreekAlphabet.item("V") := "Β" ; (u+0392) capital beta +dkGreekAlphabet.item("g") := "γ" ; (u+03b3) small gamma +dkGreekAlphabet.item("G") := "Γ" ; (u+0393) capital gamma +dkGreekAlphabet.item("d") := "δ" ; (u+03b4) small delta +dkGreekAlphabet.item("D") := "Δ" ; (u+0394) capital delta +dkGreekAlphabet.item("e") := "ε" ; (u+03b5) small epsilon +dkGreekAlphabet.item("E") := "Ε" ; (u+0395) capital epsilon +dkGreekAlphabet.item("z") := "ζ" ; (u+03b6) small zeta +dkGreekAlphabet.item("Z") := "Ζ" ; (u+0396) capital zeta +dkGreekAlphabet.item("h") := "η" ; (u+03b7) small eta +dkGreekAlphabet.item("H") := "Η" ; (u+0397) capital eta +dkGreekAlphabet.item("j") := "θ" ; (u+03b8) small theta +dkGreekAlphabet.item("J") := "Θ" ; (u+0398) capital theta +dkGreekAlphabet.item("i") := "ι" ; (u+03b9) small iota +dkGreekAlphabet.item("I") := "Ι" ; (u+0399) capital iota +dkGreekAlphabet.item("k") := "κ" ; (u+03ba) small kappa +dkGreekAlphabet.item("K") := "Κ" ; (u+039a) capital kappa +dkGreekAlphabet.item("l") := "λ" ; (u+03bb) small lambda +dkGreekAlphabet.item("L") := "Λ" ; (u+039b) capital lambda +dkGreekAlphabet.item("m") := "μ" ; (u+03bc) small mu +dkGreekAlphabet.item("M") := "Μ" ; (u+039c) capital mu +dkGreekAlphabet.item("n") := "ν" ; (u+03bd) small nu +dkGreekAlphabet.item("N") := "Ν" ; (u+039d) capital nu +dkGreekAlphabet.item("x") := "ξ" ; (u+03be) small xi +dkGreekAlphabet.item("X") := "Ξ" ; (u+039e) capital xi +dkGreekAlphabet.item("o") := "ο" ; (u+03bf) small omikron +dkGreekAlphabet.item("O") := "Ο" ; (u+039f) capital omikron +dkGreekAlphabet.item("p") := "π" ; (u+03c0) small pi +dkGreekAlphabet.item("P") := "Π" ; (u+03a0) capital pi +dkGreekAlphabet.item("r") := "ρ" ; (u+03c1) small rho +dkGreekAlphabet.item("R") := "Ρ" ; (u+03a1) capital rho +dkGreekAlphabet.item("s") := "σ" ; (u+03c3) small sigma +dkGreekAlphabet.item("S") := "Σ" ; (u+03a3) capital sigma +dkGreekAlphabet.item(",") := "ς" ; (u+03c2) small sigma, in word-final position +dkGreekAlphabet.item("ß") := "ς" ; (u+03c2) small sigma, in word-final position +dkGreekAlphabet.item("t") := "τ" ; (u+03c4) small tau +dkGreekAlphabet.item("T") := "Τ" ; (u+03a4) capital tau +dkGreekAlphabet.item("u") := "υ" ; (u+03c5) small upsilon +dkGreekAlphabet.item("U") := "Î¥" ; (u+03a5) capital upsilon +dkGreekAlphabet.item("y") := "υ" ; (u+03c5) small upsilon +dkGreekAlphabet.item("Y") := "Î¥" ; (u+03a5) capital upsilon +dkGreekAlphabet.item("f") := "φ" ; (u+03c6) small phi +dkGreekAlphabet.item("F") := "Φ" ; (u+03a6) capital phi +dkGreekAlphabet.item("c") := "χ" ; (u+03c7) small chi +dkGreekAlphabet.item("C") := "Χ" ; (u+03a7) capital chi +dkGreekAlphabet.item("w") := "ψ" ; (u+03c8) small psi +dkGreekAlphabet.item("W") := "Ψ" ; (u+03a8) capital psi +dkGreekAlphabet.item("q") := "ω" ; (u+03c9) small omega +dkGreekAlphabet.item("Q") := "Ω" ; (u+03a9) capital omega +dkGreekAlphabet.item("1") := "¹" ; (u+00b9) superscript 1 +dkGreekAlphabet.item("2") := "²" ; (u+00b2) superscript 2 +dkGreekAlphabet.item("3") := "³" ; (u+00b3) superscript 3 +dkGreekAlphabet.item("4") := "⁴" ; (u+2074) superscript 4 +dkGreekAlphabet.item("5") := "⁵" ; (u+2075) superscript 5 +dkGreekAlphabet.item("6") := "⁶" ; (u+2076) superscript 6 +dkGreekAlphabet.item("7") := "⁷" ; (u+2077) superscript 7 +dkGreekAlphabet.item("8") := "⁸" ; (u+2078) superscript 8 +dkGreekAlphabet.item("9") := "⁹" ; (u+2079) superscript 9 +dkGreekAlphabet.item("0") := "⁰" ; (u+2070) superscript 0 +dkGreekAlphabet.item("-") := "⁻" ; (u+207b) superscript - +dkGreekAlphabet.item("=") := "⁼" ; (u+207c) superscript = +dkGreekAlphabet.item("+") := "⁺" ; (u+207a) superscript + +dkGreekAlphabet.item("[") := "⁽" ; (u+207d) superscript ( +dkGreekAlphabet.item("]") := "⁾" ; (u+207e) superscript ) +dkGreekAlphabet.item("!") := "₁" ; (u+2081) subscript 1 +dkGreekAlphabet.item("@") := "₂" ; (u+2082) subscript 2 +dkGreekAlphabet.item("#") := "₃" ; (u+2083) subscript 3 +dkGreekAlphabet.item("$") := "₄" ; (u+2084) subscript 4 +dkGreekAlphabet.item("%") := "₅" ; (u+2085) subscript 5 +dkGreekAlphabet.item("^") := "₆" ; (u+2086) subscript 6 +dkGreekAlphabet.item("&") := "₇" ; (u+2087) subscript 7 +dkGreekAlphabet.item("*") := "₈" ; (u+2088) subscript 8 +dkGreekAlphabet.item("(") := "₉" ; (u+2089) subscript 9 +dkGreekAlphabet.item(")") := "₀" ; (u+2080) subscript 0 +dkGreekAlphabet.item(";") := "₋" ; (u+208b) subscript - +dkGreekAlphabet.item("'") := "₌" ; (u+208c) subscript = +dkGreekAlphabet.item("""") := "₊" ; (u+208a) subscript + +dkGreekAlphabet.item("{") := "₍" ; (u+208d) subscript ( +dkGreekAlphabet.item("}") := "₎" ; (u+208e) subscript ) +dkGreekAlphabet.item(".") := "µ" ; (u+00b5) micro sign +dkGreekAlphabet.item(" ") := "μ" ; (u+03bc) small mu + + +; Dead Key : Math Symbols + +dkMathSymbols := ComObjCreate("Scripting.Dictionary") +dkMathSymbols.item("a") := "∀" ; (u+2200) for all +dkMathSymbols.item("A") := "∀" ; (u+2200) for all +dkMathSymbols.item("b") := "⊆" ; (u+2286) subset of or equal to +dkMathSymbols.item("B") := "⊇" ; (u+2287) superset of or equal to +dkMathSymbols.item("c") := "∝" ; (u+221d) proportional to +dkMathSymbols.item("C") := "ℂ" ; (u+2102) complex numbers +dkMathSymbols.item("d") := "∆" ; (u+2206) increment operator +dkMathSymbols.item("D") := "∇" ; (u+2207) nable/del operator +dkMathSymbols.item("e") := "∃" ; (u+2203) there exists +dkMathSymbols.item("E") := "∄" ; (u+2204) there does not exist +dkMathSymbols.item("f") := "ƒ" ; (u+0192) f with hook +dkMathSymbols.item("F") := "∎" ; (u+220e) end of proof +dkMathSymbols.item("g") := "⊂" ; (u+2282) subset of +dkMathSymbols.item("G") := "⊄" ; (u+2284) not a subset of +dkMathSymbols.item("h") := "⊃" ; (u+2283) superset of +dkMathSymbols.item("H") := "⊅" ; (u+2285) not a superset of +dkMathSymbols.item("i") := "∞" ; (u+221e) infinity symbol +dkMathSymbols.item("I") := "∞" ; (u+221e) infinity symbol +dkMathSymbols.item("k") := "∋" ; (u+220b) contains as member +dkMathSymbols.item("K") := "∌" ; (u+220c) does not contain as member +dkMathSymbols.item("l") := "∥" ; (u+2225) parallel to +dkMathSymbols.item("L") := "∦" ; (u+2226) not parallel to +dkMathSymbols.item("m") := "∈" ; (u+2208) element of +dkMathSymbols.item("M") := "∉" ; (u+2209) not an element of +dkMathSymbols.item("n") := "ⁿ" ; (u+207f) superscript n +dkMathSymbols.item("N") := "ℕ" ; (u+2115) natural numbers +dkMathSymbols.item("o") := "∘" ; (u+2218) ring operator +dkMathSymbols.item("O") := "∅" ; (u+2205) empty set +dkMathSymbols.item("p") := "∂" ; (u+2202) partial differential +dkMathSymbols.item("P") := "ℙ" ; (u+2119) prime numbers +dkMathSymbols.item("q") := "ℚ" ; (u+211a) rational numbers +dkMathSymbols.item("Q") := "ℚ" ; (u+211a) rational numbers +dkMathSymbols.item("r") := "√" ; (u+221a) square root +dkMathSymbols.item("R") := "ℝ" ; (u+211d) real numbers +dkMathSymbols.item("s") := "∩" ; (u+2229) set intersection +dkMathSymbols.item("S") := "∫" ; (u+222b) integral symbol +dkMathSymbols.item("u") := "∪" ; (u+222a) set union +dkMathSymbols.item("U") := "∖" ; (u+2216) set minus +dkMathSymbols.item("w") := "℘" ; (u+2118) Weierstrass elliptic function +dkMathSymbols.item("W") := "℘" ; (u+2118) Weierstrass elliptic function +dkMathSymbols.item("z") := "↯" ; (u+21af) downwards zigzag arrow +dkMathSymbols.item("Z") := "ℤ" ; (u+2124) whole numbers +dkMathSymbols.item("1") := "≠" ; (u+2260) not equal to +dkMathSymbols.item("!") := "≠" ; (u+2260) not equal to +dkMathSymbols.item("2") := "√" ; (u+221a) square root +dkMathSymbols.item("3") := "∛" ; (u+221b) cube root +dkMathSymbols.item("4") := "∜" ; (u+221c) fourth root +dkMathSymbols.item("5") := "‰" ; (u+2030) per mille sign +dkMathSymbols.item("%") := "‱" ; (u+2031) per ten thousand sign +dkMathSymbols.item("6") := "∠" ; (u+2220) angle symbol +dkMathSymbols.item("7") := "∧" ; (u+2227) logical and +dkMathSymbols.item("&") := "∧" ; (u+2227) logical and +dkMathSymbols.item("8") := "⊗" ; (u+2297) tensor product +dkMathSymbols.item("*") := "⊗" ; (u+2297) tensor product +dkMathSymbols.item("9") := "∟" ; (u+221f) right angle +dkMathSymbols.item("0") := "∡" ; (u+2221) measured angle +dkMathSymbols.item("``") := "≈" ; (u+2248) almost equal to +dkMathSymbols.item("~") := "≈" ; (u+2248) almost equal to +dkMathSymbols.item(",") := "≤" ; (u+2264) less-than or equal to +dkMathSymbols.item("<") := "≤" ; (u+2264) less-than or equal to +dkMathSymbols.item(".") := "≥" ; (u+2265) greater-than or equal to +dkMathSymbols.item(">") := "≥" ; (u+2265) greater-than or equal to +dkMathSymbols.item("-") := "±" ; (u+00b1) plus-minus sign +dkMathSymbols.item("_") := "⊖" ; (u+2296) circled minus +dkMathSymbols.item("=") := "≝" ; (u+225d) equal to by definition +dkMathSymbols.item("+") := "⊕" ; (u+2295) exclusive or +dkMathSymbols.item(";") := "∵" ; (u+2235) because sign +dkMathSymbols.item(":") := "∴" ; (u+2234) therefore sign +dkMathSymbols.item("'") := "′" ; (u+2032) prime +dkMathSymbols.item("""") := "″" ; (u+2033) double prime +dkMathSymbols.item("/") := "‴" ; (u+2034) triple prime +dkMathSymbols.item("?") := "⁗" ; (u+2057) quadruple prime +dkMathSymbols.item("\") := "∨" ; (u+2228) logical or +dkMathSymbols.item("|") := "∨" ; (u+2228) logical or +dkMathSymbols.item(" ") := "√" ; (u+221a) square root + + +; Configuration : Right Alt on US QWERTY + +>!a:: + if GetKeyState("CapsLock", "T") + Send Ä ; (u+00c4) A with diaeresis + else + Send ä ; (u+00e4) a with diaeresis +return +>!+a:: + if GetKeyState("CapsLock", "T") + Send ä ; (u+00e4) a with diaeresis + else + Send Ä ; (u+00c4) A with diaeresis +return + +>!z:: + if GetKeyState("CapsLock", "T") + Send À ; (u+00c0) A with grave + else + Send à ; (u+00e0) a with grave +return +>!+z:: + if GetKeyState("CapsLock", "T") + Send à ; (u+00e0) a with grave + else + Send À ; (u+00c0) A with grave +return + +>!x:: + if GetKeyState("CapsLock", "T") + Send Á ; (u+00c1) A with acute + else + Send á ; (u+00e1) a with acute +return +>!+x:: + if GetKeyState("CapsLock", "T") + Send á ; (u+00e1) a with acute + else + Send Á ; (u+00c1) A with acute +return + +>!q:: + if GetKeyState("CapsLock", "T") + Send Æ ; (u+00c6) letter AE + else + Send æ ; (u+00e6) letter ae +return +>!+q:: + if GetKeyState("CapsLock", "T") + Send æ ; (u+00e6) letter ae + else + Send Æ ; (u+00c6) letter AE +return + +>!w:: + if GetKeyState("CapsLock", "T") + Send Å ; (u+00c5) A with ring above + else + Send Ã¥ ; (u+00e5) a with ring above +return +>!+w:: + if GetKeyState("CapsLock", "T") + Send Ã¥ ; (u+00e5)a with ring above + else + Send Å ; (u+00c5) A with ring above +return + +>!c:: + if GetKeyState("CapsLock", "T") + Send Ç ; (u+00c7) C with cedilla + else + Send ç ; (u+00e7) c with cedilla +return +>!+c:: + if GetKeyState("CapsLock", "T") + Send ç ; (u+00e7) c with cedilla + else + Send Ç ; (u+00c7) C with cedilla +return + +>!d:: + if GetKeyState("CapsLock", "T") + Send Ð ; (u+00d0) capital letter eth + else + Send ð ; (u+00f0) small letter eth +return +>!+d:: + if GetKeyState("CapsLock", "T") + Send ð ; (u+00f0) small letter eth + else + Send Ð ; (u+00d0) capital letter eth +return + +>!e:: + if GetKeyState("CapsLock", "T") + Send Ë ; (u+00cb) E with diaeresis + else + Send ë ; (u+00eb) e with diaeresis +return +>!+e:: + if GetKeyState("CapsLock", "T") + Send ë ; (u+00eb) e with diaeresis + else + Send Ë ; (u+00cb) E with diaeresis +return + +>!f:: + if GetKeyState("CapsLock", "T") + Send È ; (u+00c8) E with grave + else + Send è ; (u+00e8) e with grave +return +>!+f:: + if GetKeyState("CapsLock", "T") + Send è ; (u+00e8) e with grave + else + Send È ; (u+00c8) E with grave +return + +>!g:: + if GetKeyState("CapsLock", "T") + Send É ; (u+00c9) E with acute + else + Send é ; (u+00e9) e with acute +return +>!+g:: + if GetKeyState("CapsLock", "T") + Send é ; (u+00e9) e with acute + else + Send É ; (u+00c9) E with acute +return + +>!i:: + if GetKeyState("CapsLock", "T") + Send Ï ; (u+00cf) I with diaeresis + else + Send ï ; (u+00ef) i with diaeresis +return +>!+i:: + if GetKeyState("CapsLock", "T") + Send ï ; (u+00ef) i with diaeresis + else + Send Ï ; (u+00cf) I with diaeresis +return + +>!v:: + if GetKeyState("CapsLock", "T") + Send Ì ; (u+00cc) I with grave + else + Send ì ; (u+00ec) i with grave +return +>!+v:: + if GetKeyState("CapsLock", "T") + Send ì ; (u+00ec) i with grave + else + Send Ì ; (U+00cc) I with grave +return + +>!b:: + if GetKeyState("CapsLock", "T") + Send Í ; (u+00cd) I with acute + else + Send í ; (u+00ed) i with acute +return +>!+b:: + if GetKeyState("CapsLock", "T") + Send í ; (u+00ed) i with acute + else + Send Í ; (u+00cd) I with acute +return + +>!o:: + if GetKeyState("CapsLock", "T") + Send Ö ; (u+00d6) O with diaeresis + else + Send ö ; (u+00f6) o with diaeresis +return +>!+o:: + if GetKeyState("CapsLock", "T") + Send ö ; (u+00f6) o with diaeresis + else + Send Ö ; (u+00d6) O with diaeresis +return + +>!,:: + if GetKeyState("CapsLock", "T") + Send Ò ; (u+00d2) O with grave + else + Send ò ; (u+00f2) o with grave +return +>!<:: + if GetKeyState("CapsLock", "T") + Send ò ; (u+00f2) o with grave + else + Send Ò ; (u+00d2) O with grave +return + +>!.:: + if GetKeyState("CapsLock", "T") + Send Ó ; (u+00d3) O with acute + else + Send ó ; (u+00f3) o with acute +return +>!>:: + if GetKeyState("CapsLock", "T") + Send ó ; (u+00f3) o with acute + else + Send Ó ; (u+00d3) O with acute +return + +>!k:: + if GetKeyState("CapsLock", "T") + Send Œ ; (u+0152) ligature OE + else + Send œ ; (u+0153) ligature oe +return +>!+k:: + if GetKeyState("CapsLock", "T") + Send œ ; (u+0153) ligature oe + else + Send Œ ; (u+0152) ligature OE +return + +>!l:: + if GetKeyState("CapsLock", "T") + Send Ø ; (u+00d8) O with stroke + else + Send ø ; (u+00f8) o with stroke +return +>!+l:: + if GetKeyState("CapsLock", "T") + Send ø ; (u+00f8) o with stroke + else + Send Ø ; (u+00d8) O with stroke +return + +>!n:: + if GetKeyState("CapsLock", "T") + Send Ñ ; (u+00d1) N with tilde + else + Send ñ ; (u+00f1) n with tilde +return +>!+n:: + if GetKeyState("CapsLock", "T") + Send ñ ; (u+00f1) n with tilde + else + Send Ñ ; (u+00d1) N with tilde +return + +>!t:: + if GetKeyState("CapsLock", "T") + Send Þ ; (u+00de) capital letter thorn + else + Send þ ; (u+00fe) small letter thorn +return +>!+t:: + if GetKeyState("CapsLock", "T") + Send þ ; (u+00fe) small letter thorn + else + Send Þ ; (u+00de) capital letter thorn +return + +>!u:: + if GetKeyState("CapsLock", "T") + Send Ü ; (u+00dc) U with diaeresis + else + Send ü ; (u+00fc) u with diaeresis +return +>!+u:: + if GetKeyState("CapsLock", "T") + Send ü ; (u+00fc) u with diaeresis + else + Send Ü ; (u+00dc) U with diaeresis +return + +>!h:: + if GetKeyState("CapsLock", "T") + Send Ù ; (u+00d9) U with grave + else + Send ù ; (u+00f9) u with grave +return +>!+h:: + if GetKeyState("CapsLock", "T") + Send ù ; (u+00f9) u with grave + else + Send Ù ; (u+00d9) U with grave +return + +>!j:: + if GetKeyState("CapsLock", "T") + Send Ú ; (u+00da) U with acute + else + Send ú ; (u+00fa) u with acute +return +>!+j:: + if GetKeyState("CapsLock", "T") + Send ú ; (u+00fa) u with acute + else + Send Ú ; (u+00da) U with acute +return + +>!y:: + if GetKeyState("CapsLock", "T") + Send Ÿ ; (u+0178) Y with diaeresis + else + Send ÿ ; (u+00ff) y with diaeresis +return +>!+y:: + if GetKeyState("CapsLock", "T") + Send ÿ ; (u+00ff) y with diaeresis + else + Send Ÿ ; (u+0178) Y with diaeresis +return + +>!r:: + if GetKeyState("CapsLock", "T") + Send Ý ; (u+00dd) Y with acute + else + Send ý ; (u+00fd) y with acute +return +>!+r:: + if GetKeyState("CapsLock", "T") + Send ý ; (u+00dd) y with acute + else + Send Ý ; (u+00fd) Y with acute +return + +>!p::Send † ; (u+2020) dagger +>!+p::Send ‡ ; (u+2021) double dagger + +>!s::Send ß ; (u+00df) small sharp s (Eszett) +>!+s::Send § ; (u+00a7) section sign + +>!/::Send ¿ ; (u+00bf) inverted question mark +>!?::Send ¶ ; (u+00b6) pilcrow sign + +>!1::Send ¡ ; (u+00a1) inverted exclamation mark +>!+1::Send ¹ ; (u+00b9) superscript 1 + +>!2::Send © ; (u+00a9) copyright sign +>!+2::Send ² ; (u+00b2) superscript 2 + +>!3::Send ± ; (u+00b1) plus-minus sign +>!+3::Send ³ ; (u+00b3) superscript 3 + +>!4::Send £ ; (u+00a3) pound sign +>!+4::Send Â¥ ; (u+00a5) yen sign + +>!5::Send € ; (u+20ac) euro sign +>!+5::Send ¢ ; (u+00a2) cent sign (dollar) + +>!8::Send „ ; (u+201e) double low-9 quotation mark +>!+8::Send ‚ ; (u+201a) single low-9 quotation mark + +>!9::Send “ ; (u+201c) left double quotation mark +>!+9::Send ‘ ; (u+2018) left single quotation mark + +>!0::Send ” ; (u+201d) right double quotation mark +>!+0::Send ’ ; (u+2019) right single quotation mark + +>!=::Send × ; (u+00d7) multiplication sign +>!+=::Send ÷ ; (u+00f7) division sign + +>![::Send « ; (u+00ab) left-pointing double angle quotation mark +>!{::Send ‹ ; (u+2039) left-pointing single angle quotation mark + +>!]::Send » ; (u+00bb) right-pointing double angle quotation mark +>!}::Send › ; (u+203a) right-pointing single angle quotation mark + +>!;::Send ° ; (u+00b0) degree sign +>!+;::Send · ; (u+00b7) middle dot + +>!6:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCircumflex.item(key) +return +>!+6:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCaron.item(key) +return + +>!7:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkRingDotAbove.item(key) +return +>!+7:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkMacronStroke.item(key) +return + +>!-:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCedillaOgonek.item(key) +return +>!_:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkBreveSpecial.item(key) +return + +>!':: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkAcuteAccent.item(key) +return +>!":: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkDiaeresis.item(key) +return + +>!`:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkGraveAccent.item(key) +return +>!~:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkTilde.item(key) +return + +>!\:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkNotSign.item(key) +return +>!|:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkBrokenBar.item(key) +return + +>!m:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkGreekAlphabet.item(key) +return +>!+m:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkMathSymbols.item(key) +return + +>!space::Send   ; (u+00a0) non-breaking space +>!+space::Send   ; (u+00a0) non-breaking space diff --git a/UltimateKEYS - 2020-05-05.klc b/UltimateKEYS - 2020-05-05.klc new file mode 100644 index 0000000000000000000000000000000000000000..54d746bf7daa4e4bd1c2b70cafea09eee2cedca1 GIT binary patch literal 74440 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%0ADfES{A3wAnuUWZ^mCO~FmEsr`xd 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≧mnIu%56wokb#>G}FW9QzZUQz9Ju6R#uw%0V3a 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 literal 0 HcmV?d00001 diff --git a/UltimateKEYS SW - 2020-05-05.ahk b/UltimateKEYS SW - 2020-05-05.ahk new file mode 100644 index 0000000..fcd7110 --- /dev/null +++ b/UltimateKEYS SW - 2020-05-05.ahk @@ -0,0 +1,1307 @@ +; UltimateKEYS SW - 2020-05-05.ahk + +; Created by : Pieter Degroote + +; License : GNU General Public License Version 3 + +; Website : https://github.com/pieter-degroote/UltimateKEYS + + +; Requirements : + +; Keyboard layout (on Windows OS) : US QWERTY + +; AutoHotkey v1.1 (https://www.autohotkey.com/) + + + +; Dead Key : Circumflex Accent + +dkCircumflex := ComObjCreate("Scripting.Dictionary") +dkCircumflex.item("a") := "â" ; (u+00e2) a with circumflex +dkCircumflex.item("A") := "Â" ; (u+00c2) A with circumflex +dkCircumflex.item("c") := "ĉ" ; (u+0109) c with circumflex +dkCircumflex.item("C") := "Ĉ" ; (u+0108) C with circumflex +dkCircumflex.item("e") := "ê" ; (u+00ea) e with circumflex +dkCircumflex.item("E") := "Ê" ; (u+00ca) E with circumflex +dkCircumflex.item("g") := "ĝ" ; (u+011d) g with circumflex +dkCircumflex.item("G") := "Ĝ" ; (u+011c) G with circumflex +dkCircumflex.item("h") := "Ä¥" ; (u+0125) h with circumflex +dkCircumflex.item("H") := "Ĥ" ; (u+0124) H with circumflex +dkCircumflex.item("i") := "î" ; (u+00ee) i with circumflex +dkCircumflex.item("I") := "Î" ; (u+00ce) I with circumflex +dkCircumflex.item("j") := "ĵ" ; (u+0135) j with circumflex +dkCircumflex.item("J") := "Ä´" ; (u+0134) J with circumflex +dkCircumflex.item("o") := "ô" ; (u+00f4) o with circumflex +dkCircumflex.item("O") := "Ô" ; (u+00d4) O with circumflex +dkCircumflex.item("s") := "ŝ" ; (u+015d) s with circumflex +dkCircumflex.item("S") := "Ŝ" ; (u+015c) S with circumflex +dkCircumflex.item("u") := "û" ; (u+00fb) u with circumflex +dkCircumflex.item("U") := "Û" ; (u+00db) U with circumflex +dkCircumflex.item("w") := "ŵ" ; (u+0175) w with circumflex +dkCircumflex.item("W") := "Å´" ; (u+0174) W with circumflex +dkCircumflex.item("y") := "Å·" ; (u+0177) y with circumflex +dkCircumflex.item("Y") := "Ŷ" ; (u+0176) Y with circumflex +dkCircumflex.item("z") := "ẑ" ; (u+1e91) z with circumflex +dkCircumflex.item("Z") := "Ẑ" ; (u+1e90) Z with circumflex +dkCircumflex.item("n") := "₦" ; (u+20a6) Nigerian naira +dkCircumflex.item("N") := "₦" ; (u+20a6) Nigerian naira +dkCircumflex.item("^") := "{^}" ; (u+005e) circumflex accent +dkCircumflex.item(" ") := "{^}" ; (u+005e) circumflex accent + + +; Dead Key : Caron + +dkCaron := ComObjCreate("Scripting.Dictionary") +dkCaron.item("a") := "ǎ" ; (u+01ce) a with caron +dkCaron.item("A") := "Ǎ" ; (u+01cd) A with caron +dkCaron.item("c") := "č" ; (u+010d) c with caron +dkCaron.item("C") := "Č" ; (u+010c) C with caron +dkCaron.item("d") := "ď" ; (u+010f) d with caron +dkCaron.item("D") := "Ď" ; (u+010e) D with caron +dkCaron.item("e") := "ě" ; (u+011b) e with caron +dkCaron.item("E") := "Ě" ; (u+011a) E with caron +dkCaron.item("g") := "ǧ" ; (u+01e7) g with caron +dkCaron.item("G") := "Ǧ" ; (u+01e6) G with caron +dkCaron.item("h") := "ȟ" ; (u+021f) h with caron +dkCaron.item("H") := "Ȟ" ; (u+021e) H with caron +dkCaron.item("i") := "ǐ" ; (u+01d0) i with caron +dkCaron.item("I") := "Ǐ" ; (u+01cf) I with caron +dkCaron.item("j") := "ǰ" ; (u+01f0) j with caron +dkCaron.item("k") := "Ç©" ; (u+01e9) k with caron +dkCaron.item("K") := "Ǩ" ; (u+01e8) K with caron +dkCaron.item("l") := "ľ" ; (u+013e) l with caron +dkCaron.item("L") := "Ľ" ; (u+013d) L with caron +dkCaron.item("n") := "ň" ; (u+0148) n with caron +dkCaron.item("N") := "Ň" ; (u+0147) N with caron +dkCaron.item("o") := "ǒ" ; (u+01d2) o with caron +dkCaron.item("O") := "Ǒ" ; (u+01d1) O with caron +dkCaron.item("r") := "ř" ; (u+0159) r with caron +dkCaron.item("R") := "Ř" ; (u+0158) R with caron +dkCaron.item("s") := "Å¡" ; (u+0161) s with caron +dkCaron.item("S") := "Å " ; (u+0160) S with caron +dkCaron.item("t") := "Å¥" ; (u+0165) t with caron +dkCaron.item("T") := "Ť" ; (u+0164) T with caron +dkCaron.item("u") := "ǔ" ; (u+01d4) u with caron +dkCaron.item("U") := "Ǔ" ; (u+01d3) U with caron +dkCaron.item("ü") := "ǚ" ; (u+01da) u with diaeresis and caron +dkCaron.item("Ü") := "Ǚ" ; (u+01d9) U with diaeresis and caron +dkCaron.item("z") := "ž" ; (u+017e) z with caron +dkCaron.item("Z") := "Ž" ; (u+017d) Z with caron +dkCaron.item("#") := "ǯ" ; (u+01ef) small letter ezh with caron +dkCaron.item("3") := "Ç®" ; (u+01ee) capital letter ezh with caron +dkCaron.item(" ") := "ˇ" ; (u+02c7) caron + + +; Dead Key : Ring/Dot Above + +dkRingDotAbove := ComObjCreate("Scripting.Dictionary") +dkRingDotAbove.item("a") := "Ã¥" ; (u+00e5) a with ring above +dkRingDotAbove.item("A") := "Å" ; (u+00c5) A with ring above +dkRingDotAbove.item("ä") := "ȧ" ; (u+0227) a with dot above +dkRingDotAbove.item("Ä") := "Ȧ" ; (u+0226) A with dot above +dkRingDotAbove.item("b") := "ḃ" ; (u+1e03) b with dot above +dkRingDotAbove.item("B") := "Ḃ" ; (u+1e02) B with dot above +dkRingDotAbove.item("c") := "ċ" ; (u+010b) c with dot above +dkRingDotAbove.item("C") := "Ċ" ; (u+010a) C with dot above +dkRingDotAbove.item("d") := "ḋ" ; (u+1e0b) d with dot above +dkRingDotAbove.item("D") := "Ḋ" ; (u+1e0a) D with dot above +dkRingDotAbove.item("e") := "ė" ; (u+0117) e with dot above +dkRingDotAbove.item("E") := "Ė" ; (u+0116) E with dot above +dkRingDotAbove.item("f") := "ḟ" ; (u+1e1f) f with dot above +dkRingDotAbove.item("F") := "Ḟ" ; (u+1e1e) F with dot above +dkRingDotAbove.item("g") := "Ä¡" ; (u+0121) g with dot above +dkRingDotAbove.item("G") := "Ä " ; (u+0120) G with dot above +dkRingDotAbove.item("h") := "ḣ" ; (u+1e23) h with dot above +dkRingDotAbove.item("H") := "Ḣ" ; (u+1e22) H with dot above +dkRingDotAbove.item("i") := "ı" ; (u+0131) dotless i (Turkish, Azerbaijani) +dkRingDotAbove.item("I") := "İ" ; (u+0130) I with dot above (Turkish, Azerbaijani) +dkRingDotAbove.item("j") := "È·" ; (u+0237) dotless j +dkRingDotAbove.item("l") := "ŀ" ; (u+0140) l with middle dot +dkRingDotAbove.item("L") := "Ä¿" ; (u+013f) L with middle dot +dkRingDotAbove.item("m") := "ṁ" ; (u+1e41) m with dot above +dkRingDotAbove.item("M") := "Ṁ" ; (u+1e40) M with dot above +dkRingDotAbove.item("n") := "ṅ" ; (u+1e45) n with dot above +dkRingDotAbove.item("N") := "Ṅ" ; (u+1e44) N with dot above +dkRingDotAbove.item("o") := "ȯ" ; (u+022f) o with dot above +dkRingDotAbove.item("O") := "È®" ; (u+022e) O with dot above +dkRingDotAbove.item("p") := "ṗ" ; (u+1e57) p with dot above +dkRingDotAbove.item("P") := "Ṗ" ; (u+1e56) P with dot above +dkRingDotAbove.item("r") := "ṙ" ; (u+1e59) r with dot above +dkRingDotAbove.item("R") := "Ṙ" ; (u+1e58) R with dot above +dkRingDotAbove.item("s") := "ṡ" ; (u+1e61) s with dot above +dkRingDotAbove.item("S") := "á¹ " ; (u+1e60) S with dot above +dkRingDotAbove.item("t") := "ṫ" ; (u+1e6b) t with dot above +dkRingDotAbove.item("T") := "Ṫ" ; (u+1e6a) T with dot above +dkRingDotAbove.item("u") := "ů" ; (u+016f) u with ring above +dkRingDotAbove.item("U") := "Å®" ; (u+016e) U with ring above +dkRingDotAbove.item("w") := "ẇ" ; (u+1e87) w with dot above +dkRingDotAbove.item("W") := "Ẇ" ; (u+1e86) W with dot above +dkRingDotAbove.item("Ã¥") := "ẘ" ; (u+1e98) w with ring above +dkRingDotAbove.item("x") := "ẋ" ; (u+1e8b) x with dot above +dkRingDotAbove.item("X") := "Ẋ" ; (u+1e8a) X with dot above +dkRingDotAbove.item("y") := "ẏ" ; (u+1e8f) y with dot above +dkRingDotAbove.item("Y") := "Ẏ" ; (u+1e8e) Y with dot above +dkRingDotAbove.item("ÿ") := "ẙ" ; (u+1e99) y with ring above +dkRingDotAbove.item("z") := "ż" ; (u+017c) z with dot above +dkRingDotAbove.item("Z") := "Å»" ; (u+017b) Z with dot above +dkRingDotAbove.item(" ") := "˙" ; (u+02d9) dot above + + +; Dead Key : Macron/Stroke + +dkMacronStroke := ComObjCreate("Scripting.Dictionary") +dkMacronStroke.item("a") := "ā" ; (u+0101) a with macron +dkMacronStroke.item("A") := "Ā" ; (u+0100) A with macron +dkMacronStroke.item("æ") := "Ç£" ; (u+01e3) ae with macron +dkMacronStroke.item("Æ") := "Ç¢" ; (u+01e2) AE with macron +dkMacronStroke.item("b") := "ƀ" ; (u+0180) b with stroke +dkMacronStroke.item("B") := "Ƀ" ; (u+0243) B with stroke +dkMacronStroke.item("d") := "đ" ; (u+0111) d with stroke +dkMacronStroke.item("D") := "Đ" ; (u+0110) D with stroke +dkMacronStroke.item("e") := "ē" ; (u+0113) e with macron +dkMacronStroke.item("E") := "Ē" ; (u+0112) E with macron +dkMacronStroke.item("g") := "Ç¥" ; (u+01e5) g with stroke (Skolt Sami) +dkMacronStroke.item("G") := "Ǥ" ; (u+01e4) G with stroke (Skolt Sami) +dkMacronStroke.item("é") := "ḡ" ; (u+1e21) g with macron +dkMacronStroke.item("É") := "Ḡ" ; (u+1e20) G with macron +dkMacronStroke.item("h") := "ħ" ; (u+0127) h with stroke (Maltese) +dkMacronStroke.item("H") := "Ħ" ; (u+0126) H with stroke (Maltese) +dkMacronStroke.item("i") := "Ä«" ; (u+012b) i with macron +dkMacronStroke.item("I") := "Ī" ; (u+012a) I with macron +dkMacronStroke.item("ï") := "ɨ" ; (u+0268) i with stroke +dkMacronStroke.item("Ï") := "Ɨ" ; (u+0197) I with stroke +dkMacronStroke.item("j") := "ɉ" ; (u+0249) j with stroke +dkMacronStroke.item("J") := "Ɉ" ; (u+0248) J with stroke +dkMacronStroke.item("l") := "ł" ; (u+0142) l with stroke +dkMacronStroke.item("L") := "Ł" ; (u+0141) L with stroke +dkMacronStroke.item("ø") := "ḻ" ; (u+1e3b) l with line below +dkMacronStroke.item("Ø") := "Ḻ" ; (u+1e3a) L with line below +dkMacronStroke.item("o") := "ō" ; (u+014d) o with macron +dkMacronStroke.item("O") := "Ō" ; (u+014c) O with macron +dkMacronStroke.item("ö") := "Ç­" ; (u+01ed) o with ogonek and macron +dkMacronStroke.item("Ö") := "Ǭ" ; (u+01ec) O with ogonek and macron +dkMacronStroke.item("p") := "áµ½" ; (u+1d7d) p with stroke +dkMacronStroke.item("P") := "â±£" ; (u+2c63) P with stroke +dkMacronStroke.item("r") := "ɍ" ; (u+024d) r with stroke +dkMacronStroke.item("R") := "Ɍ" ; (u+024c) R with stroke +dkMacronStroke.item("t") := "ŧ" ; (u+0167) t with stroke +dkMacronStroke.item("T") := "Ŧ" ; (u+0166) T with stroke +dkMacronStroke.item("u") := "Å«" ; (u+016b) u with macron +dkMacronStroke.item("U") := "Ū" ; (u+016a) U with macron +dkMacronStroke.item("ü") := "ʉ" ; (u+0289) u with bar +dkMacronStroke.item("Ü") := "Ʉ" ; (u+0244) U with bar +dkMacronStroke.item("y") := "ȳ" ; (u+0233) y with macron +dkMacronStroke.item("Y") := "Ȳ" ; (u+0232) Y with macron +dkMacronStroke.item("ÿ") := "ɏ" ; (u+024f) y with stroke +dkMacronStroke.item("Ÿ") := "Ɏ" ; (u+024c) Y with stroke +dkMacronStroke.item("z") := "ƶ" ; (u+01b6) z with stroke +dkMacronStroke.item("Z") := "Ƶ" ; (u+01b5) Z with stroke +dkMacronStroke.item(" ") := "¯" ; (u+00af) macron + + +; Dead Key : Cedilla/Ogonek + +dkCedillaOgonek := ComObjCreate("Scripting.Dictionary") +dkCedillaOgonek.item("a") := "ą" ; (u+0105) a with ogonek +dkCedillaOgonek.item("A") := "Ą" ; (u+0104) A with ogonek +dkCedillaOgonek.item("c") := "ç" ; (u+00e7) c with cedilla +dkCedillaOgonek.item("C") := "Ç" ; (u+00c7) C with cedilla +dkCedillaOgonek.item("d") := "ḑ" ; (u+1e11) d with cedilla +dkCedillaOgonek.item("D") := "Ḑ" ; (u+1e10) D with cedilla +dkCedillaOgonek.item("e") := "ę" ; (u+0119) e with ogonek +dkCedillaOgonek.item("E") := "Ę" ; (u+0118) E with ogonek +dkCedillaOgonek.item("ë") := "È©" ; (u+0229) e with cedilla +dkCedillaOgonek.item("Ë") := "Ȩ" ; (u+0228) E with cedilla +dkCedillaOgonek.item("g") := "Ä£" ; (u+0123) g with cedilla +dkCedillaOgonek.item("G") := "Ä¢" ; (u+0122) G with cedilla +dkCedillaOgonek.item("h") := "ḩ" ; (u+1e29) h with cedilla +dkCedillaOgonek.item("H") := "Ḩ" ; (u+1e28) H with cedilla +dkCedillaOgonek.item("i") := "į" ; (u+012f) i with ogonek +dkCedillaOgonek.item("I") := "Ä®" ; (u+012e) I with ogonek +dkCedillaOgonek.item("k") := "Ä·" ; (u+0137) k with cedilla +dkCedillaOgonek.item("K") := "Ķ" ; (u+0136) K with cedilla +dkCedillaOgonek.item("l") := "ļ" ; (u+013c) l with cedilla +dkCedillaOgonek.item("L") := "Ä»" ; (u+013b) L with cedilla +dkCedillaOgonek.item("n") := "ņ" ; (u+0146) n with cedilla +dkCedillaOgonek.item("N") := "Ņ" ; (u+0145) N with cedilla +dkCedillaOgonek.item("o") := "Ç«" ; (u+01eb) o with ogonek +dkCedillaOgonek.item("O") := "Ǫ" ; (u+01ea) O with ogonek +dkCedillaOgonek.item("ö") := "Ç­" ; (u+01ed) o with ogonek and macron +dkCedillaOgonek.item("Ö") := "Ǭ" ; (u+01ec) O with ogonek and macron +dkCedillaOgonek.item("r") := "ŗ" ; (u+0157) r with cedilla +dkCedillaOgonek.item("R") := "Ŗ" ; (u+0156) R with cedilla +dkCedillaOgonek.item("s") := "ş" ; (u+015f) s with cedilla +dkCedillaOgonek.item("S") := "Ş" ; (u+015e) S with cedilla +dkCedillaOgonek.item("t") := "Å£" ; (u+0163) t with cedilla +dkCedillaOgonek.item("T") := "Å¢" ; (u+0162) T with cedilla +dkCedillaOgonek.item("u") := "ų" ; (u+0173) u with ogonek +dkCedillaOgonek.item("U") := "Ų" ; (u+0172) U with ogonek +dkCedillaOgonek.item("w") := "₩" ; (u+20a9) South Korean won +dkCedillaOgonek.item("W") := "₩" ; (u+20a9) South Korean won +dkCedillaOgonek.item("!") := "–" ; (u+2013) en dash +dkCedillaOgonek.item("1") := "–" ; (u+2013) en dash +dkCedillaOgonek.item("@") := "—" ; (u+2014) em dash +dkCedillaOgonek.item("2") := "—" ; (u+2014) em dash +dkCedillaOgonek.item("#") := "―" ; (u+2015) horizontal bar +dkCedillaOgonek.item("3") := "―" ; (u+2015) horizontal bar +dkCedillaOgonek.item("$") := "‐" ; (u+2010) hyphen +dkCedillaOgonek.item("4") := "‐" ; (u+2010) hyphen +dkCedillaOgonek.item("(") := "‒" ; (u+2012) figure dash +dkCedillaOgonek.item("9") := "‒" ; (u+2012) figure dash +dkCedillaOgonek.item(")") := "­" ; (u+00ad) soft hyphen +dkCedillaOgonek.item("0") := "­" ; (u+00ad) soft hyphen +dkCedillaOgonek.item("-") := "‑" ; (u+2011) non-breaking hyphen +dkCedillaOgonek.item(".") := "˛" ; (u+02db) ogonek +dkCedillaOgonek.item(" ") := "¸" ; (u+00b8) cedilla + + +; Dead Key : Breve/Special + +dkBreveSpecial := ComObjCreate("Scripting.Dictionary") +dkBreveSpecial.item("a") := "ă" ; (u+0103) a with breve +dkBreveSpecial.item("A") := "Ă" ; (u+0102) A with breve +dkBreveSpecial.item("d") := "ɖ" ; (u+0256) small letter d with tail +dkBreveSpecial.item("D") := "Ɖ" ; (u+0189) capital letter African D +dkBreveSpecial.item("e") := "ĕ" ; (u+0115) e with breve +dkBreveSpecial.item("E") := "Ĕ" ; (u+0114) E with breve +dkBreveSpecial.item("ë") := "ǝ" ; (u+01dd) small turned e +dkBreveSpecial.item("Ë") := "Ǝ" ; (u+018e) capital reversed E +dkBreveSpecial.item("f") := "ə" ; (u+0259) small letter schwa (Azerbaijani) +dkBreveSpecial.item("F") := "Ə" ; (u+018f) capital letter schwa (Azerbaijani) +dkBreveSpecial.item("g") := "ğ" ; (u+011f) g with breve +dkBreveSpecial.item("G") := "Ğ" ; (u+011e) G with breve +dkBreveSpecial.item("é") := "ꬶ" ; (u+ab36) cross-tailed g +dkBreveSpecial.item("h") := "É£" ; (u+0263) latin small gamma +dkBreveSpecial.item("H") := "Ɣ" ; (u+0194) latin capital gamma +dkBreveSpecial.item("i") := "Ä­" ; (u+012d) i with breve +dkBreveSpecial.item("I") := "Ĭ" ; (u+012c) I with breve +dkBreveSpecial.item("j") := "ij" ; (u+0133) ligature ij +dkBreveSpecial.item("J") := "IJ" ; (u+0132) ligature IJ +dkBreveSpecial.item("k") := "ĸ" ; (u+0138) small letter kra +dkBreveSpecial.item("n") := "ŋ" ; (u+014b) small letter eng(ma) +dkBreveSpecial.item("N") := "Ŋ" ; (u+014a) capital letter eng(ma) +dkBreveSpecial.item("o") := "ŏ" ; (u+014f) o with breve +dkBreveSpecial.item("O") := "Ŏ" ; (u+014e) O with breve +dkBreveSpecial.item("ö") := "ɔ" ; (u+0254) small open o +dkBreveSpecial.item("Ö") := "Ɔ" ; (u+0186) capital open O +dkBreveSpecial.item("s") := "ș" ; (u+0219) s with comma below (Romanian) +dkBreveSpecial.item("S") := "Ș" ; (u+0218) S with comma below (Romanian) +dkBreveSpecial.item("t") := "ț" ; (u+021b) t with comma below (Romanian) +dkBreveSpecial.item("T") := "Ț" ; (u+021a) T with comma below (Romanian) +dkBreveSpecial.item("u") := "Å­" ; (u+016d) u with breve +dkBreveSpecial.item("U") := "Ŭ" ; (u+016c) U with breve +dkBreveSpecial.item("v") := "ʊ" ; (u+028a) latin small letter upsilon +dkBreveSpecial.item("V") := "Ʊ" ; (u+01b1) latin capital letter upsilon +dkBreveSpecial.item("w") := "Æ¿" ; (u+01bf) small letter wynn +dkBreveSpecial.item("W") := "Ç·" ; (u+01f7) capital letter wynn +dkBreveSpecial.item("y") := "ȝ" ; (u+021d) small letter yogh +dkBreveSpecial.item("Y") := "Ȝ" ; (u+021c) capital letter yogh +dkBreveSpecial.item("#") := "ʒ" ; (u+0292) small letter ezh +dkBreveSpecial.item("3") := "Æ·" ; (u+01b7) capital letter ezh +dkBreveSpecial.item(" ") := "˘" ; (u+02d8) breve + + +; Dead Key : Acute Accent + +dkAcuteAccent := ComObjCreate("Scripting.Dictionary") +dkAcuteAccent.item("a") := "á" ; (u+00e1) a with acute +dkAcuteAccent.item("A") := "Á" ; (u+00c1) A with acute +dkAcuteAccent.item("b") := "ɓ" ; (u+0253) b with hook +dkAcuteAccent.item("B") := "Ɓ" ; (u+0181) B with hook +dkAcuteAccent.item("c") := "ć" ; (u+0107) c with acute +dkAcuteAccent.item("C") := "Ć" ; (u+0106) C with acute +dkAcuteAccent.item("ç") := "ḉ" ; (u+1e09) c with cedilla and acute +dkAcuteAccent.item("Ç") := "Ḉ" ; (u+1e08) C with cedilla and acute +dkAcuteAccent.item("d") := "ɗ" ; (u+0257) d with hook +dkAcuteAccent.item("D") := "Ɗ" ; (u+018a) D with hook +dkAcuteAccent.item("e") := "é" ; (u+00e9) e with acute +dkAcuteAccent.item("E") := "É" ; (u+00c9) E with acute +dkAcuteAccent.item("f") := "ƒ" ; (u+0192) f with hook +dkAcuteAccent.item("F") := "Ƒ" ; (u+0191) F with hook +dkAcuteAccent.item("g") := "ǵ" ; (u+01f5) g with acute +dkAcuteAccent.item("G") := "Ç´" ; (u+01f4) G with acute +dkAcuteAccent.item("h") := "ɦ" ; (u+0266) h with hook +dkAcuteAccent.item("H") := "Ɦ" ; (u+a7aa) H with hook +dkAcuteAccent.item("i") := "í" ; (u+00ed) i with acute +dkAcuteAccent.item("I") := "Í" ; (u+00cd) I with acute +dkAcuteAccent.item("j") := "ij" ; (u+0133) ligature ij +dkAcuteAccent.item("J") := "IJ" ; (u+0132) ligature IJ +dkAcuteAccent.item("k") := "ƙ" ; (u+0199) k with hook +dkAcuteAccent.item("K") := "Ƙ" ; (u+0198) K with hook +dkAcuteAccent.item("l") := "ĺ" ; (u+013a) l with acute +dkAcuteAccent.item("L") := "Ĺ" ; (u+0139) L with acute +dkAcuteAccent.item("m") := "ḿ" ; (u+1e3f) m with acute +dkAcuteAccent.item("M") := "Ḿ" ; (u+1e3e) M with acute +dkAcuteAccent.item("n") := "ń" ; (u+0144) n with acute +dkAcuteAccent.item("N") := "Ń" ; (u+0143) N with acute +dkAcuteAccent.item("o") := "ó" ; (u+00f3) o with acute +dkAcuteAccent.item("O") := "Ó" ; (u+00d3) O with acute +dkAcuteAccent.item("ö") := "ő" ; (u+0151) o with double acute +dkAcuteAccent.item("Ö") := "Ő" ; (u+0150) O with double acute +dkAcuteAccent.item("p") := "Æ¥" ; (u+01a5) p with hook +dkAcuteAccent.item("P") := "Ƥ" ; (u+01a4) P with hook +dkAcuteAccent.item("q") := "ɋ" ; (u+024b) q with hook tail +dkAcuteAccent.item("Q") := "Ɋ" ; (u+024a) Q with hook tail +dkAcuteAccent.item("r") := "ŕ" ; (u+0155) r with acute +dkAcuteAccent.item("R") := "Ŕ" ; (u+0154) R with acute +dkAcuteAccent.item("s") := "ś" ; (u+015b) s with acute +dkAcuteAccent.item("S") := "Ś" ; (u+015a) S with acute +dkAcuteAccent.item("t") := "Æ­" ; (u+01ad) t with hook +dkAcuteAccent.item("T") := "Ƭ" ; (u+01ac) T with hook +dkAcuteAccent.item("u") := "ú" ; (u+00fa) u with acute +dkAcuteAccent.item("U") := "Ú" ; (u+00da) U with acute +dkAcuteAccent.item("ü") := "ű" ; (u+0171) u with double acute +dkAcuteAccent.item("Ü") := "Ű" ; (u+0170) U with double acute +dkAcuteAccent.item("v") := "ʋ" ; (u+028b) v with hook +dkAcuteAccent.item("V") := "Ʋ" ; (u+01b2) V with hook +dkAcuteAccent.item("w") := "ẃ" ; (u+1e83) w with acute +dkAcuteAccent.item("W") := "Ẃ" ; (u+1e82) W with acute +dkAcuteAccent.item("y") := "ý" ; (u+00fd) y with acute +dkAcuteAccent.item("Y") := "Ý" ; (u+00dd) Y with acute +dkAcuteAccent.item("z") := "ź" ; (u+017a) z with acute +dkAcuteAccent.item("Z") := "Ź" ; (u+0179) Z with acute +dkAcuteAccent.item("Ã¥") := "Ç»" ; (u+01fb) a with ring above and acute +dkAcuteAccent.item("Å") := "Ǻ" ; (u+01fa) A with ring above and acute +dkAcuteAccent.item("æ") := "ǽ" ; (u+01fd) ae with acute +dkAcuteAccent.item("Æ") := "Ǽ" ; (u+01fc) AE with acute +dkAcuteAccent.item("ø") := "Ç¿" ; (u+01ff) o with stroke and acute +dkAcuteAccent.item("Ø") := "Ǿ" ; (u+01fe) O with stroke and acute +dkAcuteAccent.item("@") := "♫" ; (u+266b) beamed eighth notes +dkAcuteAccent.item("2") := "♫" ; (u+266b) beamed eighth notes +dkAcuteAccent.item("#") := "⁂" ; (u+2042) asterism +dkAcuteAccent.item("3") := "⁂" ; (u+2042) asterism +dkAcuteAccent.item("$") := "★" ; (u+2605) black star +dkAcuteAccent.item("4") := "★" ; (u+2605) black star +dkAcuteAccent.item("%") := "☆" ; (u+2606) white star +dkAcuteAccent.item("5") := "☆" ; (u+2606) white star +dkAcuteAccent.item("^") := "✽" ; (u+273d) heavy teardrop-spoked asterisk +dkAcuteAccent.item("6") := "✽" ; (u+273d) heavy teardrop-spoked asterisk +dkAcuteAccent.item("&") := "✻" ; (u+273b) teardrop-spoked asterisk +dkAcuteAccent.item("7") := "✻" ; (u+273b) teardrop-spoked asterisk +dkAcuteAccent.item("*") := "♪" ; (u+266a) eighth note +dkAcuteAccent.item("8") := "♪" ; (u+266a) eighth note +dkAcuteAccent.item("'") := "´" ; (u+00b4) acute accent +dkAcuteAccent.item(" ") := "´" ; (u+00b4) acute accent + + +; Dead Key : Diaeresis + +dkDiaeresis := ComObjCreate("Scripting.Dictionary") +dkDiaeresis.item("a") := "ä" ; (u+00e4) a with diaeresis +dkDiaeresis.item("A") := "Ä" ; (u+00c4) A with diaeresis +dkDiaeresis.item("e") := "ë" ; (u+00eb) e with diaeresis +dkDiaeresis.item("E") := "Ë" ; (u+00cb) E with diaeresis +dkDiaeresis.item("h") := "ḧ" ; (u+1e27) h with diaeresis +dkDiaeresis.item("H") := "Ḧ" ; (u+1e26) H with diaeresis +dkDiaeresis.item("i") := "ï" ; (u+00ef) i with diaeresis +dkDiaeresis.item("I") := "Ï" ; (u+00cf) I with diaeresis +dkDiaeresis.item("o") := "ö" ; (u+00f6) o with diaeresis +dkDiaeresis.item("O") := "Ö" ; (u+00d6) O with diaeresis +dkDiaeresis.item("s") := "ß" ; (u+00df) small sharp s (Eszett) +dkDiaeresis.item("S") := "ẞ" ; (u+1e9e) capital sharp S (capital Eszett) +dkDiaeresis.item("t") := "ẗ" ; (u+1e97) t with diaeresis +dkDiaeresis.item("u") := "ü" ; (u+00fc) u with diaeresis +dkDiaeresis.item("U") := "Ü" ; (u+00dc) U with diaeresis +dkDiaeresis.item("w") := "ẅ" ; (u+1e85) w with diaeresis +dkDiaeresis.item("W") := "Ẅ" ; (u+1e84) W with diaeresis +dkDiaeresis.item("x") := "ẍ" ; (u+1e8d) x with diaeresis +dkDiaeresis.item("X") := "Ẍ" ; (u+1e8c) X with diaeresis +dkDiaeresis.item("y") := "ÿ" ; (u+00ff) y with diaeresis +dkDiaeresis.item("Y") := "Ÿ" ; (u+0178) Y with diaeresis +dkDiaeresis.item("""") := "¨" ; (u+00a8) diaeresis +dkDiaeresis.item(" ") := "¨" ; (u+00a8) diaeresis + + +; Dead Key : Grave Accent + +dkGraveAccent := ComObjCreate("Scripting.Dictionary") +dkGraveAccent.item("a") := "à" ; (u+00e0) a with grave +dkGraveAccent.item("A") := "À" ; (u+00c0) A with grave +dkGraveAccent.item("e") := "è" ; (u+00e8) e with grave +dkGraveAccent.item("E") := "È" ; (u+00c8) E with grave +dkGraveAccent.item("i") := "ì" ; (u+00ec) i with grave +dkGraveAccent.item("I") := "Ì" ; (u+00cc) I with grave +dkGraveAccent.item("n") := "ǹ" ; (u+01f9) n with grave +dkGraveAccent.item("N") := "Ǹ" ; (u+01f8) N with grave +dkGraveAccent.item("o") := "ò" ; (u+00f2) o with grave +dkGraveAccent.item("O") := "Ò" ; (u+00d2) O with grave +dkGraveAccent.item("u") := "ù" ; (u+00f9) u with grave +dkGraveAccent.item("U") := "Ù" ; (u+00d9) U with grave +dkGraveAccent.item("w") := "ẁ" ; (u+1e81) w with grave +dkGraveAccent.item("W") := "Ẁ" ; (u+1e80) W with grave +dkGraveAccent.item("y") := "ỳ" ; (u+1ef3) y with grave +dkGraveAccent.item("Y") := "Ỳ" ; (u+1ef2) Y with grave +dkGraveAccent.item("ä") := "₳" ; (u+20b3) Argentine austral +dkGraveAccent.item("Ä") := "₳" ; (u+20b3) Argentine austral +dkGraveAccent.item("b") := "₿" ; (u+20bf) bitcoin +dkGraveAccent.item("B") := "₿" ; (u+20bf) bitcoin +dkGraveAccent.item("c") := "₡" ; (u+20a1) Costa Rican colón +dkGraveAccent.item("C") := "₵" ; (u+20b5) Ghanaian cedi +dkGraveAccent.item("ç") := "₢" ; (u+20a2) Brazilian cruzeiro +dkGraveAccent.item("Ç") := "₢" ; (u+20a2) Brazilian cruzeiro +dkGraveAccent.item("d") := "₫" ; (u+20ab) Vietnamese dong +dkGraveAccent.item("D") := "₯" ; (u+20af) Greek drachma +dkGraveAccent.item("f") := "₣" ; (u+20a3) French franc +dkGraveAccent.item("F") := "₣" ; (u+20a3) French franc +dkGraveAccent.item("g") := "₲" ; (u+20b2) Paraguayan guaraní +dkGraveAccent.item("G") := "₲" ; (u+20b2) Paraguayan guaraní +dkGraveAccent.item("h") := "₴" ; (u+20b4) Ukrainian hryvnia +dkGraveAccent.item("H") := "₴" ; (u+20b4) Ukrainian hryvnia +dkGraveAccent.item("k") := "₭" ; (u+20ad) Laotian kip +dkGraveAccent.item("K") := "₭" ; (u+20ad) Laotian kip +dkGraveAccent.item("l") := "₺" ; (u+20ba) Turkish lira +dkGraveAccent.item("L") := "₾" ; (u+20be) Georgian lari +dkGraveAccent.item("ø") := "₤" ; (u+20a4) lira +dkGraveAccent.item("Ø") := "₤" ; (u+20a4) lira +dkGraveAccent.item("m") := "₼" ; (u+20bc) Azerbaijani manat +dkGraveAccent.item("M") := "₥" ; (u+20a5) mill sign +dkGraveAccent.item("ñ") := "₦" ; (u+20a6) Nigerian naira +dkGraveAccent.item("Ñ") := "₦" ; (u+20a6) Nigerian naira +dkGraveAccent.item("p") := "₱" ; (u+20b1) Philippine peso +dkGraveAccent.item("P") := "₱" ; (u+20b1) Philippine peso +dkGraveAccent.item("r") := "₹" ; (u+20b9) Indian rupee +dkGraveAccent.item("R") := "₽" ; (u+20bd) Russian ruble +dkGraveAccent.item("s") := "₪" ; (u+20aa) Israeli new shekel +dkGraveAccent.item("S") := "₪" ; (u+20aa) Israeli new shekel +dkGraveAccent.item("t") := "₮" ; (u+20ae) Mongolian tögrög (tugrik) +dkGraveAccent.item("T") := "₸" ; (u+20b8) Kazakh tenge +dkGraveAccent.item("Ã¥") := "₩" ; (u+20a9) South Korean won +dkGraveAccent.item("Å") := "₩" ; (u+20a9) South Korean won +dkGraveAccent.item("!") := " " ; (u+2002) en space +dkGraveAccent.item("@") := " " ; (u+2003) em space +dkGraveAccent.item("#") := " " ; (u+2004) three-per-em space +dkGraveAccent.item("3") := " " ; (u+2004) three-per-em space +dkGraveAccent.item("$") := " " ; (u+2005) four-per-em space +dkGraveAccent.item("4") := " " ; (u+2005) four-per-em space +dkGraveAccent.item("%") := " " ; (u+2008) punctuation space +dkGraveAccent.item("5") := " " ; (u+2008) punctuation space +dkGraveAccent.item("^") := " " ; (u+2006) six-per-em space +dkGraveAccent.item("6") := " " ; (u+2006) six-per-em space +dkGraveAccent.item("&") := " " ; (u+2009) thin space +dkGraveAccent.item("7") := " " ; (u+2009) thin space +dkGraveAccent.item("*") := " " ; (u+200a) hair space +dkGraveAccent.item("8") := " " ; (u+200a) hair space +dkGraveAccent.item("(") := " " ; (u+2007) figure space +dkGraveAccent.item("9") := " " ; (u+2007) figure space +dkGraveAccent.item(")") := "​" ; (u+200b) zero-width space +dkGraveAccent.item("0") := "​" ; (u+200b) zero-width space +dkGraveAccent.item("-") := " " ; (u+00a0) non-breaking space +dkGraveAccent.item("1") := " " ; (u+2000) en quad +dkGraveAccent.item("2") := " " ; (u+2001) em quad +dkGraveAccent.item("``") := "``" ; (u+0060) grave accent +dkGraveAccent.item(" ") := "``" ; (u+0060) grave accent + + +; Dead Key : Tilde + +dkTilde := ComObjCreate("Scripting.Dictionary") +dkTilde.item("a") := "ã" ; (u+00e3) a with tilde +dkTilde.item("A") := "Ã" ; (u+00c3) A with tilde +dkTilde.item("e") := "ẽ" ; (u+1ebd) e with tilde +dkTilde.item("E") := "Ẽ" ; (u+1ebc) E with tilde +dkTilde.item("i") := "Ä©" ; (u+0129) i with tilde +dkTilde.item("I") := "Ĩ" ; (u+0128) I with tilde +dkTilde.item("n") := "ñ" ; (u+00f1) n with tilde +dkTilde.item("N") := "Ñ" ; (u+00d1) N with tilde +dkTilde.item("o") := "õ" ; (u+00f5) o with tilde +dkTilde.item("O") := "Õ" ; (u+00d5) O with tilde +dkTilde.item("u") := "Å©" ; (u+0169) u with tilde +dkTilde.item("U") := "Ũ" ; (u+0168) U with tilde +dkTilde.item("v") := "á¹½" ; (u+1e7d) v with tilde +dkTilde.item("V") := "á¹¼" ; (u+1e7c) V with tilde +dkTilde.item("y") := "ỹ" ; (u+1ef9) y with tilde +dkTilde.item("Y") := "Ỹ" ; (u+1ef8) Y with tilde +dkTilde.item("~") := "~" ; (u+007e) tilde +dkTilde.item(" ") := "~" ; (u+007e) tilde + + +; Dead Key : Not Sign + +dkNotSign := ComObjCreate("Scripting.Dictionary") +dkNotSign.item("a") := "ª" ; (u+00aa) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("A") := "ª" ; (u+00aa) feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("b") := "☐" ; (u+2610) ballot box +dkNotSign.item("B") := "☒" ; (u+2612) ballot box with x +dkNotSign.item("c") := "©" ; (u+00a9) copyright sign +dkNotSign.item("C") := "¤" ; (u+00a4) currency sign +dkNotSign.item("d") := "†" ; (u+2020) dagger +dkNotSign.item("D") := "‡" ; (u+2021) double dagger +dkNotSign.item("e") := "…" ; (u+2026) ellipsis +dkNotSign.item("E") := "℮" ; (u+212e) estimated symbol +dkNotSign.item("f") := "♀" ; (u+2640) Venus symbol (female) +dkNotSign.item("F") := "♀" ; (u+2640) Venus symbol (female) +dkNotSign.item("h") := "♡" ; (u+2661) white heart suit +dkNotSign.item("H") := "♥" ; (u+2665) black heart suit +dkNotSign.item("l") := "ℓ" ; (u+2113) script small l +dkNotSign.item("L") := "ℓ" ; (u+2113) script small l +dkNotSign.item("m") := "♂" ; (u+2642) Mars symbol (male) +dkNotSign.item("M") := "♂" ; (u+2642) Mars symbol (male) +dkNotSign.item("n") := "¬" ; (u+00ac) not sign +dkNotSign.item("N") := "¬" ; (u+00ac) not sign +dkNotSign.item("o") := "º" ; (u+00ba) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("O") := "º" ; (u+00ba) masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("p") := "¶" ; (u+00b6) pilcrow sign +dkNotSign.item("P") := "℗" ; (u+2117) sound recording copyright +dkNotSign.item("r") := "®" ; (u+00ae) registered sign +dkNotSign.item("R") := "®" ; (u+00ae) registered sign +dkNotSign.item("s") := "§" ; (u+00a7) section sign +dkNotSign.item("S") := "℠" ; (u+2120) service mark +dkNotSign.item("t") := "™" ; (u+2122) trademark symbol +dkNotSign.item("T") := "™" ; (u+2122) trademark symbol +dkNotSign.item("v") := "✓" ; (u+2713) check mark +dkNotSign.item("V") := "✔" ; (u+2714) heavy check mark +dkNotSign.item("w") := "☑" ; (u+2611) ballot box with check +dkNotSign.item("W") := "☙" ; (u+2619) reversed rotated floral heart bullet +dkNotSign.item("x") := "✗" ; (u+2717) ballot x +dkNotSign.item("X") := "✘" ; (u+2718) heavy ballot x +dkNotSign.item("y") := "☺" ; (u+263a) white smiling face +dkNotSign.item("Y") := "☻" ; (u+263b) black smiling face +dkNotSign.item("!") := "←" ; (u+2190) leftwards arrow +dkNotSign.item("@") := "↓" ; (u+2193) downwards arrow +dkNotSign.item("#") := "↑" ; (u+2191) upwards arrow +dkNotSign.item("$") := "→" ; (u+2192) rightwards arrow +dkNotSign.item("%") := "↖" ; (u+2196) north west arrow +dkNotSign.item("^") := "↙" ; (u+2199) south west arrow +dkNotSign.item("&") := "↗" ; (u+2197) north east arrow +dkNotSign.item("*") := "↘" ; (u+2198) south east arrow +dkNotSign.item("(") := "↕" ; (u+2195) up down arrow +dkNotSign.item(")") := "↨" ; (u+21a8) up down arrow with base +dkNotSign.item("=") := "↔" ; (u+2194) left right arrow +dkNotSign.item("1") := "⇐" ; (u+21d0) leftwards double arrow +dkNotSign.item("2") := "⇓" ; (u+21d3) downwards double arrow +dkNotSign.item("3") := "⇑" ; (u+21d1) upwards double arrow +dkNotSign.item("4") := "⇒" ; (u+21d2) rightwards double arrow +dkNotSign.item("5") := "⇖" ; (u+21d6) north west double arrow +dkNotSign.item("6") := "⇙" ; (u+21d9) south west double arrow +dkNotSign.item("7") := "⇗" ; (u+21d7) north east double arrow +dkNotSign.item("8") := "⇘" ; (u+21d8) south east double arrow +dkNotSign.item("9") := "⇕" ; (u+21d5) up down double arrow +dkNotSign.item("0") := "↲" ; (u+21b2) downwards arrow with tip leftwards +dkNotSign.item("+") := "⇔" ; (u+21d4) left right double arrow +dkNotSign.item(".") := "•" ; (u+2022) bullet +dkNotSign.item("-") := "⁃" ; (u+2043) hyphen bullet +dkNotSign.item("/") := "‼" ; (u+203c) double exclamation mark +dkNotSign.item("?") := "‽" ; (u+203a) interrobang +dkNotSign.item("¿") := "⸘" ; (u+2e18) inverted interrobang +dkNotSign.item("¶") := "⸮" ; (u+2e2e) reversed question mark +dkNotSign.item("\") := "⁞" ; (u+205e) vertical four dots +dkNotSign.item("|") := "⁞" ; (u+205e) vertical four dots +dkNotSign.item(" ") := "¬" ; (u+00ac) not sign + + +; Dead Key : Broken Bar + +dkBrokenBar := ComObjCreate("Scripting.Dictionary") +dkBrokenBar.item("a") := "ɑ" ; (u+0251) latin small letter alpha +dkBrokenBar.item("A") := "â±­" ; (u+2c6d) latin capital letter alpha +dkBrokenBar.item("ä") := "ɒ" ; (u+0252) latin small letter turned alpha +dkBrokenBar.item("Ä") := "â±°" ; (u+2c70) latin capital letter turned alpha +dkBrokenBar.item("c") := "ƈ" ; (u+0188) c with hook +dkBrokenBar.item("C") := "Ƈ" ; (u+0187) C with hook +dkBrokenBar.item("e") := "ɛ" ; (u+025b) small open e (latin small epsilon) +dkBrokenBar.item("E") := "Ɛ" ; (u+0190) capital open E (latin capital epsilon) +dkBrokenBar.item("f") := "❦" ; (u+2766) floral heart +dkBrokenBar.item("F") := "❧" ; (u+2767) rotated floral heart bullet +dkBrokenBar.item("g") := "É " ; (u+0260) g with hook +dkBrokenBar.item("G") := "Ɠ" ; (u+0193) G with hook +dkBrokenBar.item("h") := "ꜧ" ; (u+a727) small letter heng +dkBrokenBar.item("H") := "Ꜧ" ; (u+a726) capital letter heng +dkBrokenBar.item("ù") := "ɧ" ; (u+0267) small letter heng with hook +dkBrokenBar.item("k") := "ḱ" ; (u+1e31) k with acute +dkBrokenBar.item("K") := "Ḱ" ; (u+1e30) K with acute +dkBrokenBar.item("m") := "ɱ" ; (u+0271) m with hook +dkBrokenBar.item("M") := "â±®" ; (u+2c6e) M with hook +dkBrokenBar.item("n") := "ɲ" ; (u+0272) n with left hook +dkBrokenBar.item("N") := "Ɲ" ; (u+019d) N with left hook +dkBrokenBar.item("o") := "Æ¡" ; (u+01a1) o with horn +dkBrokenBar.item("O") := "Æ " ; (u+01a0) O with horn +dkBrokenBar.item("p") := "ṕ" ; (u+1e55) p with acute +dkBrokenBar.item("P") := "Ṕ" ; (u+1e54) P with acute +dkBrokenBar.item("r") := "ɽ" ; (u+027d) r with tail +dkBrokenBar.item("R") := "Ɽ" ; (u+2c64) R with tail +dkBrokenBar.item("s") := "ʃ" ; (u+0283) small letter esh +dkBrokenBar.item("S") := "Æ©" ; (u+01a9) capital letter esh +dkBrokenBar.item("ß") := "Å¿" ; (u+017f) small long s +dkBrokenBar.item("u") := "ư" ; (u+01b0) u with horn +dkBrokenBar.item("U") := "Ư" ; (u+01af) U with horn +dkBrokenBar.item("v") := "ʌ" ; (u+028c) latin small letter turned v +dkBrokenBar.item("V") := "Ʌ" ; (u+0245) latin capital letter turned V +dkBrokenBar.item("w") := "â±³" ; (u+2c73) w with hook +dkBrokenBar.item("W") := "â±²" ; (u+2c72) W with hook +dkBrokenBar.item("y") := "Æ´" ; (u+01b4) y with hook +dkBrokenBar.item("Y") := "Ƴ" ; (u+01b3) Y with hook +dkBrokenBar.item("z") := "È¥" ; (u+0225) z with hook +dkBrokenBar.item("Z") := "Ȥ" ; (u+0224) Z with hook +dkBrokenBar.item("!") := "№" ; (u+2116) numero sign +dkBrokenBar.item("1") := "№" ; (u+2116) numero sign +dkBrokenBar.item("@") := "½" ; (u+00bd) vulgar fraction 1/2 +dkBrokenBar.item("2") := "½" ; (u+00bd) vulgar fraction 1/2 +dkBrokenBar.item("#") := "⅓" ; (u+2153) vulgar fraction 1/3 +dkBrokenBar.item("3") := "⅓" ; (u+2153) vulgar fraction 1/3 +dkBrokenBar.item("$") := "¼" ; (u+00bc) vulgar fraction 1/4 +dkBrokenBar.item("4") := "¼" ; (u+00bc) vulgar fraction 1/4 +dkBrokenBar.item("%") := "⅔" ; (u+2154) vulgar fraction 2/3 +dkBrokenBar.item("5") := "⅔" ; (u+2154) vulgar fraction 2/3 +dkBrokenBar.item("^") := "¾" ; (u+00be) vulgar fraction 3/4 +dkBrokenBar.item("6") := "¾" ; (u+00be) vulgar fraction 3/4 +dkBrokenBar.item("&") := "⅛" ; (u+215b) vulgar fraction 1/8 +dkBrokenBar.item("7") := "⅛" ; (u+215b) vulgar fraction 1/8 +dkBrokenBar.item("*") := "⅜" ; (u+215c) vulgar fraction 3/8 +dkBrokenBar.item("8") := "⅜" ; (u+215c) vulgar fraction 3/8 +dkBrokenBar.item("(") := "⅝" ; (u+215d) vulgar fraction 5/8 +dkBrokenBar.item("9") := "⅝" ; (u+215d) vulgar fraction 5/8 +dkBrokenBar.item(")") := "⅞" ; (u+215e) vulgar fraction 7/8 +dkBrokenBar.item("0") := "⅞" ; (u+215e) vulgar fraction 7/8 +dkBrokenBar.item("\") := "¦" ; (u+00a6) broken bar +dkBrokenBar.item("|") := "¦" ; (u+00a6) broken bar +dkBrokenBar.item(" ") := "¦" ; (u+00a6) broken bar + + +; Dead Key : Greek Alphabet + +dkGreekAlphabet := ComObjCreate("Scripting.Dictionary") +dkGreekAlphabet.item("a") := "α" ; (u+03b1) small alpha +dkGreekAlphabet.item("A") := "Α" ; (u+0391) capital alpha +dkGreekAlphabet.item("b") := "β" ; (u+03b2) small beta +dkGreekAlphabet.item("B") := "Β" ; (u+0392) capital beta +dkGreekAlphabet.item("v") := "β" ; (u+03b2) small beta +dkGreekAlphabet.item("V") := "Β" ; (u+0392) capital beta +dkGreekAlphabet.item("g") := "γ" ; (u+03b3) small gamma +dkGreekAlphabet.item("G") := "Γ" ; (u+0393) capital gamma +dkGreekAlphabet.item("d") := "δ" ; (u+03b4) small delta +dkGreekAlphabet.item("D") := "Δ" ; (u+0394) capital delta +dkGreekAlphabet.item("e") := "ε" ; (u+03b5) small epsilon +dkGreekAlphabet.item("E") := "Ε" ; (u+0395) capital epsilon +dkGreekAlphabet.item("z") := "ζ" ; (u+03b6) small zeta +dkGreekAlphabet.item("Z") := "Ζ" ; (u+0396) capital zeta +dkGreekAlphabet.item("h") := "η" ; (u+03b7) small eta +dkGreekAlphabet.item("H") := "Η" ; (u+0397) capital eta +dkGreekAlphabet.item("j") := "θ" ; (u+03b8) small theta +dkGreekAlphabet.item("J") := "Θ" ; (u+0398) capital theta +dkGreekAlphabet.item("i") := "ι" ; (u+03b9) small iota +dkGreekAlphabet.item("I") := "Ι" ; (u+0399) capital iota +dkGreekAlphabet.item("k") := "κ" ; (u+03ba) small kappa +dkGreekAlphabet.item("K") := "Κ" ; (u+039a) capital kappa +dkGreekAlphabet.item("l") := "λ" ; (u+03bb) small lambda +dkGreekAlphabet.item("L") := "Λ" ; (u+039b) capital lambda +dkGreekAlphabet.item("m") := "μ" ; (u+03bc) small mu +dkGreekAlphabet.item("M") := "Μ" ; (u+039c) capital mu +dkGreekAlphabet.item("n") := "ν" ; (u+03bd) small nu +dkGreekAlphabet.item("N") := "Ν" ; (u+039d) capital nu +dkGreekAlphabet.item("x") := "ξ" ; (u+03be) small xi +dkGreekAlphabet.item("X") := "Ξ" ; (u+039e) capital xi +dkGreekAlphabet.item("o") := "ο" ; (u+03bf) small omikron +dkGreekAlphabet.item("O") := "Ο" ; (u+039f) capital omikron +dkGreekAlphabet.item("p") := "π" ; (u+03c0) small pi +dkGreekAlphabet.item("P") := "Π" ; (u+03a0) capital pi +dkGreekAlphabet.item("r") := "ρ" ; (u+03c1) small rho +dkGreekAlphabet.item("R") := "Ρ" ; (u+03a1) capital rho +dkGreekAlphabet.item("s") := "σ" ; (u+03c3) small sigma +dkGreekAlphabet.item("S") := "Σ" ; (u+03a3) capital sigma +dkGreekAlphabet.item(",") := "ς" ; (u+03c2) small sigma, in word-final position +dkGreekAlphabet.item("ß") := "ς" ; (u+03c2) small sigma, in word-final position +dkGreekAlphabet.item("t") := "τ" ; (u+03c4) small tau +dkGreekAlphabet.item("T") := "Τ" ; (u+03a4) capital tau +dkGreekAlphabet.item("u") := "υ" ; (u+03c5) small upsilon +dkGreekAlphabet.item("U") := "Î¥" ; (u+03a5) capital upsilon +dkGreekAlphabet.item("y") := "υ" ; (u+03c5) small upsilon +dkGreekAlphabet.item("Y") := "Î¥" ; (u+03a5) capital upsilon +dkGreekAlphabet.item("f") := "φ" ; (u+03c6) small phi +dkGreekAlphabet.item("F") := "Φ" ; (u+03a6) capital phi +dkGreekAlphabet.item("c") := "χ" ; (u+03c7) small chi +dkGreekAlphabet.item("C") := "Χ" ; (u+03a7) capital chi +dkGreekAlphabet.item("w") := "ψ" ; (u+03c8) small psi +dkGreekAlphabet.item("W") := "Ψ" ; (u+03a8) capital psi +dkGreekAlphabet.item("q") := "ω" ; (u+03c9) small omega +dkGreekAlphabet.item("Q") := "Ω" ; (u+03a9) capital omega +dkGreekAlphabet.item("!") := "¹" ; (u+00b9) superscript 1 +dkGreekAlphabet.item("@") := "²" ; (u+00b2) superscript 2 +dkGreekAlphabet.item("#") := "³" ; (u+00b3) superscript 3 +dkGreekAlphabet.item("$") := "⁴" ; (u+2074) superscript 4 +dkGreekAlphabet.item("%") := "⁵" ; (u+2075) superscript 5 +dkGreekAlphabet.item("^") := "⁶" ; (u+2076) superscript 6 +dkGreekAlphabet.item("&") := "⁷" ; (u+2077) superscript 7 +dkGreekAlphabet.item("*") := "⁸" ; (u+2078) superscript 8 +dkGreekAlphabet.item("(") := "⁹" ; (u+2079) superscript 9 +dkGreekAlphabet.item(")") := "⁰" ; (u+2070) superscript 0 +dkGreekAlphabet.item("-") := "⁻" ; (u+207b) superscript - +dkGreekAlphabet.item("=") := "⁼" ; (u+207c) superscript = +dkGreekAlphabet.item("+") := "⁺" ; (u+207a) superscript + +dkGreekAlphabet.item("[") := "⁽" ; (u+207d) superscript ( +dkGreekAlphabet.item("]") := "⁾" ; (u+207e) superscript ) +dkGreekAlphabet.item("1") := "₁" ; (u+2081) subscript 1 +dkGreekAlphabet.item("2") := "₂" ; (u+2082) subscript 2 +dkGreekAlphabet.item("3") := "₃" ; (u+2083) subscript 3 +dkGreekAlphabet.item("4") := "₄" ; (u+2084) subscript 4 +dkGreekAlphabet.item("5") := "₅" ; (u+2085) subscript 5 +dkGreekAlphabet.item("6") := "₆" ; (u+2086) subscript 6 +dkGreekAlphabet.item("7") := "₇" ; (u+2087) subscript 7 +dkGreekAlphabet.item("8") := "₈" ; (u+2088) subscript 8 +dkGreekAlphabet.item("9") := "₉" ; (u+2089) subscript 9 +dkGreekAlphabet.item("0") := "₀" ; (u+2080) subscript 0 +dkGreekAlphabet.item(";") := "₋" ; (u+208b) subscript - +dkGreekAlphabet.item("'") := "₌" ; (u+208c) subscript = +dkGreekAlphabet.item("""") := "₊" ; (u+208a) subscript + +dkGreekAlphabet.item("{") := "₍" ; (u+208d) subscript ( +dkGreekAlphabet.item("}") := "₎" ; (u+208e) subscript ) +dkGreekAlphabet.item(".") := "µ" ; (u+00b5) micro sign +dkGreekAlphabet.item(" ") := "μ" ; (u+03bc) small mu + + +; Dead Key : Math Symbols + +dkMathSymbols := ComObjCreate("Scripting.Dictionary") +dkMathSymbols.item("a") := "∀" ; (u+2200) for all +dkMathSymbols.item("A") := "∀" ; (u+2200) for all +dkMathSymbols.item("b") := "⊆" ; (u+2286) subset of or equal to +dkMathSymbols.item("B") := "⊇" ; (u+2287) superset of or equal to +dkMathSymbols.item("c") := "∝" ; (u+221d) proportional to +dkMathSymbols.item("C") := "ℂ" ; (u+2102) complex numbers +dkMathSymbols.item("d") := "∆" ; (u+2206) increment operator +dkMathSymbols.item("D") := "∇" ; (u+2207) nable/del operator +dkMathSymbols.item("e") := "∃" ; (u+2203) there exists +dkMathSymbols.item("E") := "∄" ; (u+2204) there does not exist +dkMathSymbols.item("f") := "ƒ" ; (u+0192) f with hook +dkMathSymbols.item("F") := "∎" ; (u+220e) end of proof +dkMathSymbols.item("g") := "⊂" ; (u+2282) subset of +dkMathSymbols.item("G") := "⊄" ; (u+2284) not a subset of +dkMathSymbols.item("h") := "⊃" ; (u+2283) superset of +dkMathSymbols.item("H") := "⊅" ; (u+2285) not a superset of +dkMathSymbols.item("i") := "∞" ; (u+221e) infinity symbol +dkMathSymbols.item("I") := "∞" ; (u+221e) infinity symbol +dkMathSymbols.item("k") := "∋" ; (u+220b) contains as member +dkMathSymbols.item("K") := "∌" ; (u+220c) does not contain as member +dkMathSymbols.item("l") := "∥" ; (u+2225) parallel to +dkMathSymbols.item("L") := "∦" ; (u+2226) not parallel to +dkMathSymbols.item("m") := "∈" ; (u+2208) element of +dkMathSymbols.item("M") := "∉" ; (u+2209) not an element of +dkMathSymbols.item("n") := "ⁿ" ; (u+207f) superscript n +dkMathSymbols.item("N") := "ℕ" ; (u+2115) natural numbers +dkMathSymbols.item("o") := "∘" ; (u+2218) ring operator +dkMathSymbols.item("O") := "∅" ; (u+2205) empty set +dkMathSymbols.item("p") := "∂" ; (u+2202) partial differential +dkMathSymbols.item("P") := "ℙ" ; (u+2119) prime numbers +dkMathSymbols.item("q") := "ℚ" ; (u+211a) rational numbers +dkMathSymbols.item("Q") := "ℚ" ; (u+211a) rational numbers +dkMathSymbols.item("r") := "√" ; (u+221a) square root +dkMathSymbols.item("R") := "ℝ" ; (u+211d) real numbers +dkMathSymbols.item("s") := "∩" ; (u+2229) set intersection +dkMathSymbols.item("S") := "∫" ; (u+222b) integral symbol +dkMathSymbols.item("u") := "∪" ; (u+222a) set union +dkMathSymbols.item("U") := "∖" ; (u+2216) set minus +dkMathSymbols.item("w") := "℘" ; (u+2118) Weierstrass elliptic function +dkMathSymbols.item("W") := "℘" ; (u+2118) Weierstrass elliptic function +dkMathSymbols.item("z") := "↯" ; (u+21af) downwards zigzag arrow +dkMathSymbols.item("Z") := "ℤ" ; (u+2124) whole numbers +dkMathSymbols.item("!") := "≠" ; (u+2260) not equal to +dkMathSymbols.item("1") := "≠" ; (u+2260) not equal to +dkMathSymbols.item("@") := "√" ; (u+221a) square root +dkMathSymbols.item("2") := "√" ; (u+221a) square root +dkMathSymbols.item("#") := "∛" ; (u+221b) cube root +dkMathSymbols.item("3") := "∛" ; (u+221b) cube root +dkMathSymbols.item("$") := "∜" ; (u+221c) fourth root +dkMathSymbols.item("4") := "∜" ; (u+221c) fourth root +dkMathSymbols.item("%") := "‰" ; (u+2030) per mille sign +dkMathSymbols.item("5") := "‱" ; (u+2031) per ten thousand sign +dkMathSymbols.item("^") := "∠" ; (u+2220) angle symbol +dkMathSymbols.item("6") := "∠" ; (u+2220) angle symbol +dkMathSymbols.item("&") := "∧" ; (u+2227) logical and +dkMathSymbols.item("7") := "∧" ; (u+2227) logical and +dkMathSymbols.item("*") := "⊗" ; (u+2297) tensor product +dkMathSymbols.item("8") := "⊗" ; (u+2297) tensor product +dkMathSymbols.item("(") := "∟" ; (u+221f) right angle +dkMathSymbols.item("9") := "∟" ; (u+221f) right angle +dkMathSymbols.item(")") := "∡" ; (u+2221) measured angle +dkMathSymbols.item("0") := "∡" ; (u+2221) measured angle +dkMathSymbols.item("``") := "≈" ; (u+2248) almost equal to +dkMathSymbols.item("~") := "≈" ; (u+2248) almost equal to +dkMathSymbols.item(",") := "≤" ; (u+2264) less-than or equal to +dkMathSymbols.item("<") := "≤" ; (u+2264) less-than or equal to +dkMathSymbols.item(".") := "≥" ; (u+2265) greater-than or equal to +dkMathSymbols.item(">") := "≥" ; (u+2265) greater-than or equal to +dkMathSymbols.item("-") := "±" ; (u+00b1) plus-minus sign +dkMathSymbols.item("_") := "⊖" ; (u+2296) circled minus +dkMathSymbols.item("=") := "≝" ; (u+225d) equal to by definition +dkMathSymbols.item("+") := "⊕" ; (u+2295) exclusive or +dkMathSymbols.item(";") := "∵" ; (u+2235) because sign +dkMathSymbols.item(":") := "∴" ; (u+2234) therefore sign +dkMathSymbols.item("'") := "′" ; (u+2032) prime +dkMathSymbols.item("""") := "″" ; (u+2033) double prime +dkMathSymbols.item("/") := "‴" ; (u+2034) triple prime +dkMathSymbols.item("?") := "⁗" ; (u+2057) quadruple prime +dkMathSymbols.item("\") := "∨" ; (u+2228) logical or +dkMathSymbols.item("|") := "∨" ; (u+2228) logical or +dkMathSymbols.item(" ") := "√" ; (u+221a) square root + + +; Configuration : Switch positions of symbols and digits + +$1::Send {!} ; (u+0021) exclamation mark +$+1::Send 1 ; (u+0031) digit 1 + +$2::Send @ ; (u+0040) at sign +$+2::Send 2 ; (u+0032) digit 2 + +$3::Send {#} ; (u+0023) number sign +$+3::Send 3 ; (u+0033) digit 3 + +$4::Send $ ; (u+0024) dollar sign +$+4::Send 4 ; (u+0034) digit 4 + +$5::Send `% ; (u+0025) percent sign +$+5::Send 5 ; (u+0035) digit 5 + +$6::Send {^} ; (u+005e) circumflex accent +$+6::Send 6 ; (u+0036) digit 6 + +$7::Send & ; (u+0026) ampersand +$+7::Send 7 ; (u+0037) digit 7 + +$8::Send * ; (u+002a) asterisk +$+8::Send 8 ; (u+0038) digit 8 + +$9::Send ( ; (u+0028) left parenthesis +$+9::Send 9 ; (u+0039) digit 9 + +$0::Send ) ; (u+0029) right parenthesis +$+0::Send 0 ; (u+0030) digit 0 + + +; Configuration : Right Alt on US QWERTY + +>!a:: + if GetKeyState("CapsLock", "T") + Send Ä ; (u+00c4) A with diaeresis + else + Send ä ; (u+00e4) a with diaeresis +return +>!+a:: + if GetKeyState("CapsLock", "T") + Send ä ; (u+00e4) a with diaeresis + else + Send Ä ; (u+00c4) A with diaeresis +return + +>!z:: + if GetKeyState("CapsLock", "T") + Send À ; (u+00c0) A with grave + else + Send à ; (u+00e0) a with grave +return +>!+z:: + if GetKeyState("CapsLock", "T") + Send à ; (u+00e0) a with grave + else + Send À ; (u+00c0) A with grave +return + +>!x:: + if GetKeyState("CapsLock", "T") + Send Á ; (u+00c1) A with acute + else + Send á ; (u+00e1) a with acute +return +>!+x:: + if GetKeyState("CapsLock", "T") + Send á ; (u+00e1) a with acute + else + Send Á ; (u+00c1) A with acute +return + +>!q:: + if GetKeyState("CapsLock", "T") + Send Æ ; (u+00c6) letter AE + else + Send æ ; (u+00e6) letter ae +return +>!+q:: + if GetKeyState("CapsLock", "T") + Send æ ; (u+00e6) letter ae + else + Send Æ ; (u+00c6) letter AE +return + +>!w:: + if GetKeyState("CapsLock", "T") + Send Å ; (u+00c5) A with ring above + else + Send Ã¥ ; (u+00e5) a with ring above +return +>!+w:: + if GetKeyState("CapsLock", "T") + Send Ã¥ ; (u+00e5)a with ring above + else + Send Å ; (u+00c5) A with ring above +return + +>!c:: + if GetKeyState("CapsLock", "T") + Send Ç ; (u+00c7) C with cedilla + else + Send ç ; (u+00e7) c with cedilla +return +>!+c:: + if GetKeyState("CapsLock", "T") + Send ç ; (u+00e7) c with cedilla + else + Send Ç ; (u+00c7) C with cedilla +return + +>!d:: + if GetKeyState("CapsLock", "T") + Send Ð ; (u+00d0) capital letter eth + else + Send ð ; (u+00f0) small letter eth +return +>!+d:: + if GetKeyState("CapsLock", "T") + Send ð ; (u+00f0) small letter eth + else + Send Ð ; (u+00d0) capital letter eth +return + +>!e:: + if GetKeyState("CapsLock", "T") + Send Ë ; (u+00cb) E with diaeresis + else + Send ë ; (u+00eb) e with diaeresis +return +>!+e:: + if GetKeyState("CapsLock", "T") + Send ë ; (u+00eb) e with diaeresis + else + Send Ë ; (u+00cb) E with diaeresis +return + +>!f:: + if GetKeyState("CapsLock", "T") + Send È ; (u+00c8) E with grave + else + Send è ; (u+00e8) e with grave +return +>!+f:: + if GetKeyState("CapsLock", "T") + Send è ; (u+00e8) e with grave + else + Send È ; (u+00c8) E with grave +return + +>!g:: + if GetKeyState("CapsLock", "T") + Send É ; (u+00c9) E with acute + else + Send é ; (u+00e9) e with acute +return +>!+g:: + if GetKeyState("CapsLock", "T") + Send é ; (u+00e9) e with acute + else + Send É ; (u+00c9) E with acute +return + +>!i:: + if GetKeyState("CapsLock", "T") + Send Ï ; (u+00cf) I with diaeresis + else + Send ï ; (u+00ef) i with diaeresis +return +>!+i:: + if GetKeyState("CapsLock", "T") + Send ï ; (u+00ef) i with diaeresis + else + Send Ï ; (u+00cf) I with diaeresis +return + +>!v:: + if GetKeyState("CapsLock", "T") + Send Ì ; (u+00cc) I with grave + else + Send ì ; (u+00ec) i with grave +return +>!+v:: + if GetKeyState("CapsLock", "T") + Send ì ; (u+00ec) i with grave + else + Send Ì ; (U+00cc) I with grave +return + +>!b:: + if GetKeyState("CapsLock", "T") + Send Í ; (u+00cd) I with acute + else + Send í ; (u+00ed) i with acute +return +>!+b:: + if GetKeyState("CapsLock", "T") + Send í ; (u+00ed) i with acute + else + Send Í ; (u+00cd) I with acute +return + +>!o:: + if GetKeyState("CapsLock", "T") + Send Ö ; (u+00d6) O with diaeresis + else + Send ö ; (u+00f6) o with diaeresis +return +>!+o:: + if GetKeyState("CapsLock", "T") + Send ö ; (u+00f6) o with diaeresis + else + Send Ö ; (u+00d6) O with diaeresis +return + +>!,:: + if GetKeyState("CapsLock", "T") + Send Ò ; (u+00d2) O with grave + else + Send ò ; (u+00f2) o with grave +return +>!<:: + if GetKeyState("CapsLock", "T") + Send ò ; (u+00f2) o with grave + else + Send Ò ; (u+00d2) O with grave +return + +>!.:: + if GetKeyState("CapsLock", "T") + Send Ó ; (u+00d3) O with acute + else + Send ó ; (u+00f3) o with acute +return +>!>:: + if GetKeyState("CapsLock", "T") + Send ó ; (u+00f3) o with acute + else + Send Ó ; (u+00d3) O with acute +return + +>!k:: + if GetKeyState("CapsLock", "T") + Send Œ ; (u+0152) ligature OE + else + Send œ ; (u+0153) ligature oe +return +>!+k:: + if GetKeyState("CapsLock", "T") + Send œ ; (u+0153) ligature oe + else + Send Œ ; (u+0152) ligature OE +return + +>!l:: + if GetKeyState("CapsLock", "T") + Send Ø ; (u+00d8) O with stroke + else + Send ø ; (u+00f8) o with stroke +return +>!+l:: + if GetKeyState("CapsLock", "T") + Send ø ; (u+00f8) o with stroke + else + Send Ø ; (u+00d8) O with stroke +return + +>!n:: + if GetKeyState("CapsLock", "T") + Send Ñ ; (u+00d1) N with tilde + else + Send ñ ; (u+00f1) n with tilde +return +>!+n:: + if GetKeyState("CapsLock", "T") + Send ñ ; (u+00f1) n with tilde + else + Send Ñ ; (u+00d1) N with tilde +return + +>!t:: + if GetKeyState("CapsLock", "T") + Send Þ ; (u+00de) capital letter thorn + else + Send þ ; (u+00fe) small letter thorn +return +>!+t:: + if GetKeyState("CapsLock", "T") + Send þ ; (u+00fe) small letter thorn + else + Send Þ ; (u+00de) capital letter thorn +return + +>!u:: + if GetKeyState("CapsLock", "T") + Send Ü ; (u+00dc) U with diaeresis + else + Send ü ; (u+00fc) u with diaeresis +return +>!+u:: + if GetKeyState("CapsLock", "T") + Send ü ; (u+00fc) u with diaeresis + else + Send Ü ; (u+00dc) U with diaeresis +return + +>!h:: + if GetKeyState("CapsLock", "T") + Send Ù ; (u+00d9) U with grave + else + Send ù ; (u+00f9) u with grave +return +>!+h:: + if GetKeyState("CapsLock", "T") + Send ù ; (u+00f9) u with grave + else + Send Ù ; (u+00d9) U with grave +return + +>!j:: + if GetKeyState("CapsLock", "T") + Send Ú ; (u+00da) U with acute + else + Send ú ; (u+00fa) u with acute +return +>!+j:: + if GetKeyState("CapsLock", "T") + Send ú ; (u+00fa) u with acute + else + Send Ú ; (u+00da) U with acute +return + +>!y:: + if GetKeyState("CapsLock", "T") + Send Ÿ ; (u+0178) Y with diaeresis + else + Send ÿ ; (u+00ff) y with diaeresis +return +>!+y:: + if GetKeyState("CapsLock", "T") + Send ÿ ; (u+00ff) y with diaeresis + else + Send Ÿ ; (u+0178) Y with diaeresis +return + +>!r:: + if GetKeyState("CapsLock", "T") + Send Ý ; (u+00dd) Y with acute + else + Send ý ; (u+00fd) y with acute +return +>!+r:: + if GetKeyState("CapsLock", "T") + Send ý ; (u+00dd) y with acute + else + Send Ý ; (u+00fd) Y with acute +return + +>!p::Send † ; (u+2020) dagger +>!+p::Send ‡ ; (u+2021) double dagger + +>!s::Send ß ; (u+00df) small sharp s (Eszett) +>!+s::Send § ; (u+00a7) section sign + +>!/::Send ¿ ; (u+00bf) inverted question mark +>!?::Send ¶ ; (u+00b6) pilcrow sign + +>!1::Send ¡ ; (u+00a1) inverted exclamation mark +>!+1::Send ¹ ; (u+00b9) superscript 1 + +>!2::Send © ; (u+00a9) copyright sign +>!+2::Send ² ; (u+00b2) superscript 2 + +>!3::Send ± ; (u+00b1) plus-minus sign +>!+3::Send ³ ; (u+00b3) superscript 3 + +>!4::Send £ ; (u+00a3) pound sign +>!+4::Send Â¥ ; (u+00a5) yen sign + +>!5::Send € ; (u+20ac) euro sign +>!+5::Send ¢ ; (u+00a2) cent sign (dollar) + +>!8::Send „ ; (u+201e) double low-9 quotation mark +>!+8::Send ‚ ; (u+201a) single low-9 quotation mark + +>!9::Send “ ; (u+201c) left double quotation mark +>!+9::Send ‘ ; (u+2018) left single quotation mark + +>!0::Send ” ; (u+201d) right double quotation mark +>!+0::Send ’ ; (u+2019) right single quotation mark + +>!=::Send × ; (u+00d7) multiplication sign +>!+=::Send ÷ ; (u+00f7) division sign + +>![::Send « ; (u+00ab) left-pointing double angle quotation mark +>!{::Send ‹ ; (u+2039) left-pointing single angle quotation mark + +>!]::Send » ; (u+00bb) right-pointing double angle quotation mark +>!}::Send › ; (u+203a) right-pointing single angle quotation mark + +>!;::Send ° ; (u+00b0) degree sign +>!+;::Send · ; (u+00b7) middle dot + +>!6:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCircumflex.item(key) +return +>!+6:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCaron.item(key) +return + +>!7:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkRingDotAbove.item(key) +return +>!+7:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkMacronStroke.item(key) +return + +>!-:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCedillaOgonek.item(key) +return +>!_:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkBreveSpecial.item(key) +return + +>!':: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkAcuteAccent.item(key) +return +>!":: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkDiaeresis.item(key) +return + +>!`:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkGraveAccent.item(key) +return +>!~:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkTilde.item(key) +return + +>!\:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkNotSign.item(key) +return +>!|:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkBrokenBar.item(key) +return + +>!m:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkGreekAlphabet.item(key) +return +>!+m:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkMathSymbols.item(key) +return + +>!space::Send   ; (u+00a0) non-breaking space +>!+space::Send   ; (u+00a0) non-breaking space diff --git a/UltimateKEYS SW - 2020-05-05.klc b/UltimateKEYS SW - 2020-05-05.klc new file mode 100644 index 0000000000000000000000000000000000000000..6b38741333972b3ae915cdde29e0bd8e1d308bbe GIT binary patch literal 77370 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