From cac85201ed476072dbbc85bafad921026b85427e Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Tue, 31 Mar 2020 10:33:13 +0200 Subject: [PATCH] Add files via upload Some characters (for African languages...) have been added to the dead keys. --- UltimateKEYS - 2020-03-31.ahk | 1220 +++++++++++++++++++++++++++++++++ UltimateKEYS - 2020-03-31.klc | Bin 0 -> 73046 bytes 2 files changed, 1220 insertions(+) create mode 100644 UltimateKEYS - 2020-03-31.ahk create mode 100644 UltimateKEYS - 2020-03-31.klc diff --git a/UltimateKEYS - 2020-03-31.ahk b/UltimateKEYS - 2020-03-31.ahk new file mode 100644 index 0000000..9a2f7b8 --- /dev/null +++ b/UltimateKEYS - 2020-03-31.ahk @@ -0,0 +1,1220 @@ +; UltimateKEYS - 2020-03-31.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") := "â" ; a with circumflex +dkCircumflex.item("A") := "Â" ; A with circumflex +dkCircumflex.item("c") := "ĉ" ; c with circumflex +dkCircumflex.item("C") := "Ĉ" ; C with circumflex +dkCircumflex.item("e") := "ê" ; e with circumflex +dkCircumflex.item("E") := "Ê" ; E with circumflex +dkCircumflex.item("g") := "ĝ" ; g with circumflex +dkCircumflex.item("G") := "Ĝ" ; G with circumflex +dkCircumflex.item("h") := "ĥ" ; h with circumflex +dkCircumflex.item("H") := "Ĥ" ; H with circumflex +dkCircumflex.item("i") := "î" ; i with circumflex +dkCircumflex.item("I") := "Î" ; I with circumflex +dkCircumflex.item("j") := "ĵ" ; j with circumflex +dkCircumflex.item("J") := "Ĵ" ; J with circumflex +dkCircumflex.item("o") := "ô" ; o with circumflex +dkCircumflex.item("O") := "Ô" ; O with circumflex +dkCircumflex.item("s") := "ŝ" ; s with circumflex +dkCircumflex.item("S") := "Ŝ" ; S with circumflex +dkCircumflex.item("u") := "û" ; u with circumflex +dkCircumflex.item("U") := "Û" ; U with circumflex +dkCircumflex.item("w") := "ŵ" ; w with circumflex +dkCircumflex.item("W") := "Ŵ" ; W with circumflex +dkCircumflex.item("y") := "ŷ" ; y with circumflex +dkCircumflex.item("Y") := "Ŷ" ; Y with circumflex +dkCircumflex.item("z") := "ẑ" ; z with circumflex +dkCircumflex.item("Z") := "Ẑ" ; Z with circumflex +dkCircumflex.item("n") := "₦" ; Nigerian naira +dkCircumflex.item("N") := "₦" ; Nigerian naira +dkCircumflex.item("^") := "{^}" ; circumflex accent +dkCircumflex.item(" ") := "{^}" ; circumflex accent + + +; Dead Key : Caron + +dkCaron := ComObjCreate("Scripting.Dictionary") +dkCaron.item("a") := "ǎ" ; a with caron +dkCaron.item("A") := "Ǎ" ; A with caron +dkCaron.item("c") := "č" ; c with caron +dkCaron.item("C") := "Č" ; C with caron +dkCaron.item("d") := "ď" ; d with caron +dkCaron.item("D") := "Ď" ; D with caron +dkCaron.item("e") := "ě" ; e with caron +dkCaron.item("E") := "Ě" ; E with caron +dkCaron.item("g") := "ǧ" ; g with caron +dkCaron.item("G") := "Ǧ" ; G with caron +dkCaron.item("h") := "ȟ" ; h with caron +dkCaron.item("H") := "Ȟ" ; H with caron +dkCaron.item("i") := "ǐ" ; i with caron +dkCaron.item("I") := "Ǐ" ; I with caron +dkCaron.item("j") := "ǰ" ; j with caron +dkCaron.item("k") := "ǩ" ; k with caron +dkCaron.item("K") := "Ǩ" ; K with caron +dkCaron.item("l") := "ľ" ; l with caron +dkCaron.item("L") := "Ľ" ; L with caron +dkCaron.item("n") := "ň" ; n with caron +dkCaron.item("N") := "Ň" ; N with caron +dkCaron.item("o") := "ǒ" ; o with caron +dkCaron.item("O") := "Ǒ" ; O with caron +dkCaron.item("r") := "ř" ; r with caron +dkCaron.item("R") := "Ř" ; R with caron +dkCaron.item("s") := "š" ; s with caron +dkCaron.item("S") := "Š" ; S with caron +dkCaron.item("t") := "ť" ; t with caron +dkCaron.item("T") := "Ť" ; T with caron +dkCaron.item("u") := "ǔ" ; u with caron +dkCaron.item("U") := "Ǔ" ; U with caron +dkCaron.item("ü") := "ǚ" ; u with diaeresis and caron +dkCaron.item("Ü") := "Ǚ" ; U with diaeresis and caron +dkCaron.item("z") := "ž" ; z with caron +dkCaron.item("Z") := "Ž" ; Z with caron +dkCaron.item("3") := "ǯ" ; small letter ezh with caron +dkCaron.item("#") := "Ǯ" ; capital letter ezh with caron +dkCaron.item(" ") := "ˇ" ; caron + + +; Dead Key : Ring/Dot Above + +dkRingDotAbove := ComObjCreate("Scripting.Dictionary") +dkRingDotAbove.item("a") := "ȧ" ; a with dot above +dkRingDotAbove.item("A") := "Ȧ" ; A with dot above +dkRingDotAbove.item("ä") := "å" ; a with ring above +dkRingDotAbove.item("Ä") := "Å" ; A with ring above +dkRingDotAbove.item("b") := "ḃ" ; b with dot above +dkRingDotAbove.item("B") := "Ḃ" ; B with dot above +dkRingDotAbove.item("c") := "ċ" ; c with dot above +dkRingDotAbove.item("C") := "Ċ" ; C with dot above +dkRingDotAbove.item("d") := "ḋ" ; d with dot above +dkRingDotAbove.item("D") := "Ḋ" ; D with dot above +dkRingDotAbove.item("e") := "ė" ; e with dot above +dkRingDotAbove.item("E") := "Ė" ; E with dot above +dkRingDotAbove.item("f") := "ḟ" ; f with dot above +dkRingDotAbove.item("F") := "Ḟ" ; F with dot above +dkRingDotAbove.item("g") := "ġ" ; g with dot above +dkRingDotAbove.item("G") := "Ġ" ; G with dot above +dkRingDotAbove.item("h") := "ḣ" ; h with dot above +dkRingDotAbove.item("H") := "Ḣ" ; H with dot above +dkRingDotAbove.item("i") := "ı" ; dotless i (Turkish, Azerbaijani) +dkRingDotAbove.item("I") := "İ" ; I with dot above (Turkish, Azerbaijani) +dkRingDotAbove.item("j") := "ȷ" ; dotless j +dkRingDotAbove.item("l") := "ŀ" ; l with middle dot +dkRingDotAbove.item("L") := "Ŀ" ; L with middle dot +dkRingDotAbove.item("m") := "ṁ" ; m with dot above +dkRingDotAbove.item("M") := "Ṁ" ; M with dot above +dkRingDotAbove.item("n") := "ṅ" ; n with dot above +dkRingDotAbove.item("N") := "Ṅ" ; N with dot above +dkRingDotAbove.item("o") := "ȯ" ; o with dot above +dkRingDotAbove.item("O") := "Ȯ" ; O with dot above +dkRingDotAbove.item("p") := "ṗ" ; p with dot above +dkRingDotAbove.item("P") := "Ṗ" ; P with dot above +dkRingDotAbove.item("r") := "ṙ" ; r with dot above +dkRingDotAbove.item("R") := "Ṙ" ; R with dot above +dkRingDotAbove.item("s") := "ṡ" ; s with dot above +dkRingDotAbove.item("S") := "Ṡ" ; S with dot above +dkRingDotAbove.item("t") := "ṫ" ; t with dot above +dkRingDotAbove.item("T") := "Ṫ" ; T with dot above +dkRingDotAbove.item("u") := "ů" ; u with ring above +dkRingDotAbove.item("U") := "Ů" ; U with ring above +dkRingDotAbove.item("w") := "ẇ" ; w with dot above +dkRingDotAbove.item("W") := "Ẇ" ; W with dot above +dkRingDotAbove.item("å") := "ẘ" ; w with ring above +dkRingDotAbove.item("x") := "ẋ" ; x with dot above +dkRingDotAbove.item("X") := "Ẋ" ; X with dot above +dkRingDotAbove.item("y") := "ẏ" ; y with dot above +dkRingDotAbove.item("Y") := "Ẏ" ; Y with dot above +dkRingDotAbove.item("ÿ") := "ẙ" ; y with ring above +dkRingDotAbove.item("z") := "ż" ; z with dot above +dkRingDotAbove.item("Z") := "Ż" ; Z with dot above +dkRingDotAbove.item(" ") := "˙" ; dot above + + +; Dead Key : Macron/Stroke + +dkMacronStroke := ComObjCreate("Scripting.Dictionary") +dkMacronStroke.item("a") := "ā" ; a with macron +dkMacronStroke.item("A") := "Ā" ; A with macron +dkMacronStroke.item("æ") := "ǣ" ; ae with macron +dkMacronStroke.item("Æ") := "Ǣ" ; AE with macron +dkMacronStroke.item("b") := "ƀ" ; b with stroke +dkMacronStroke.item("B") := "Ƀ" ; B with stroke +dkMacronStroke.item("d") := "đ" ; d with stroke +dkMacronStroke.item("D") := "Đ" ; D with stroke +dkMacronStroke.item("e") := "ē" ; e with macron +dkMacronStroke.item("E") := "Ē" ; E with macron +dkMacronStroke.item("g") := "ǥ" ; g with stroke (Skolt Sami) +dkMacronStroke.item("G") := "Ǥ" ; G with stroke (Skolt Sami) +dkMacronStroke.item("é") := "ḡ" ; g with macron +dkMacronStroke.item("É") := "Ḡ" ; G with macron +dkMacronStroke.item("h") := "ħ" ; h with stroke (Maltese) +dkMacronStroke.item("H") := "Ħ" ; H with stroke (Maltese) +dkMacronStroke.item("i") := "ī" ; i with macron +dkMacronStroke.item("I") := "Ī" ; I with macron +dkMacronStroke.item("ï") := "ɨ" ; i with stroke +dkMacronStroke.item("Ï") := "Ɨ" ; I with stroke +dkMacronStroke.item("j") := "ɉ" ; j with stroke +dkMacronStroke.item("J") := "Ɉ" ; J with stroke +dkMacronStroke.item("l") := "ł" ; l with stroke +dkMacronStroke.item("L") := "Ł" ; L with stroke +dkMacronStroke.item("ø") := "ḻ" ; l with line below +dkMacronStroke.item("Ø") := "Ḻ" ; L with line below +dkMacronStroke.item("o") := "ō" ; o with macron +dkMacronStroke.item("O") := "Ō" ; O with macron +dkMacronStroke.item("ö") := "ǭ" ; o with ogonek and macron +dkMacronStroke.item("Ö") := "Ǭ" ; O with ogonek and macron +dkMacronStroke.item("p") := "ᵽ" ; p with stroke +dkMacronStroke.item("P") := "Ᵽ" ; P with stroke +dkMacronStroke.item("r") := "ɍ" ; r with stroke +dkMacronStroke.item("R") := "Ɍ" ; R with stroke +dkMacronStroke.item("t") := "ŧ" ; t with stroke +dkMacronStroke.item("T") := "Ŧ" ; T with stroke +dkMacronStroke.item("u") := "ū" ; u with macron +dkMacronStroke.item("U") := "Ū" ; U with macron +dkMacronStroke.item("ü") := "ʉ" ; u with bar +dkMacronStroke.item("Ü") := "Ʉ" ; U with bar +dkMacronStroke.item("y") := "ȳ" ; y with macron +dkMacronStroke.item("Y") := "Ȳ" ; Y with macron +dkMacronStroke.item("ÿ") := "ɏ" ; y with stroke +dkMacronStroke.item("Ÿ") := "Ɏ" ; Y with stroke +dkMacronStroke.item("z") := "ƶ" ; z with stroke +dkMacronStroke.item("Z") := "Ƶ" ; Z with stroke +dkMacronStroke.item(" ") := "¯" ; macron + + +; Dead Key : Cedilla/Ogonek + +dkCedillaOgonek := ComObjCreate("Scripting.Dictionary") +dkCedillaOgonek.item("a") := "ą" ; a with ogonek +dkCedillaOgonek.item("A") := "Ą" ; A with ogonek +dkCedillaOgonek.item("c") := "ç" ; c with cedilla +dkCedillaOgonek.item("C") := "Ç" ; C with cedilla +dkCedillaOgonek.item("d") := "ḑ" ; d with cedilla +dkCedillaOgonek.item("D") := "Ḑ" ; D with cedilla +dkCedillaOgonek.item("e") := "ę" ; e with ogonek +dkCedillaOgonek.item("E") := "Ę" ; E with ogonek +dkCedillaOgonek.item("ë") := "ȩ" ; e with cedilla +dkCedillaOgonek.item("Ë") := "Ȩ" ; E with cedilla +dkCedillaOgonek.item("g") := "ģ" ; g with cedilla +dkCedillaOgonek.item("G") := "Ģ" ; G with cedilla +dkCedillaOgonek.item("h") := "ḩ" ; h with cedilla +dkCedillaOgonek.item("H") := "Ḩ" ; H with cedilla +dkCedillaOgonek.item("i") := "į" ; i with ogonek +dkCedillaOgonek.item("I") := "Į" ; I with ogonek +dkCedillaOgonek.item("k") := "ķ" ; k with cedilla +dkCedillaOgonek.item("K") := "Ķ" ; K with cedilla +dkCedillaOgonek.item("l") := "ļ" ; l with cedilla +dkCedillaOgonek.item("L") := "Ļ" ; L with cedilla +dkCedillaOgonek.item("n") := "ņ" ; n with cedilla +dkCedillaOgonek.item("N") := "Ņ" ; N with cedilla +dkCedillaOgonek.item("o") := "ǫ" ; o with ogonek +dkCedillaOgonek.item("O") := "Ǫ" ; O with ogonek +dkCedillaOgonek.item("ö") := "ǭ" ; o with ogonek and macron +dkCedillaOgonek.item("Ö") := "Ǭ" ; O with ogonek and macron +dkCedillaOgonek.item("r") := "ŗ" ; r with cedilla +dkCedillaOgonek.item("R") := "Ŗ" ; R with cedilla +dkCedillaOgonek.item("s") := "ş" ; s with cedilla +dkCedillaOgonek.item("S") := "Ş" ; S with cedilla +dkCedillaOgonek.item("t") := "ţ" ; t with cedilla +dkCedillaOgonek.item("T") := "Ţ" ; T with cedilla +dkCedillaOgonek.item("u") := "ų" ; u with ogonek +dkCedillaOgonek.item("U") := "Ų" ; U with ogonek +dkCedillaOgonek.item("w") := "₩" ; South Korean won +dkCedillaOgonek.item("W") := "₩" ; South Korean won +dkCedillaOgonek.item("1") := "–" ; en dash +dkCedillaOgonek.item("2") := "—" ; em dash +dkCedillaOgonek.item("3") := "―" ; horizontal bar +dkCedillaOgonek.item("4") := "‐" ; hyphen +dkCedillaOgonek.item("9") := "‒" ; figure dash +dkCedillaOgonek.item("0") := "­" ; soft hyphen +dkCedillaOgonek.item("-") := "‑" ; non-breaking hyphen +dkCedillaOgonek.item(".") := "˛" ; ogonek +dkCedillaOgonek.item(" ") := "¸" ; cedilla + + +; Dead Key : Breve/Special + +dkBreveSpecial := ComObjCreate("Scripting.Dictionary") +dkBreveSpecial.item("a") := "ă" ; a with breve +dkBreveSpecial.item("A") := "Ă" ; A with breve +dkBreveSpecial.item("d") := "ɖ" ; small letter d with tail +dkBreveSpecial.item("D") := "Ɖ" ; capital letter African D +dkBreveSpecial.item("e") := "ĕ" ; e with breve +dkBreveSpecial.item("E") := "Ĕ" ; E with breve +dkBreveSpecial.item("ë") := "ǝ" ; small turned e +dkBreveSpecial.item("Ë") := "Ǝ" ; capital reversed E +dkBreveSpecial.item("f") := "ə" ; small letter schwa (Azerbaijani) +dkBreveSpecial.item("F") := "Ə" ; capital letter schwa (Azerbaijani) +dkBreveSpecial.item("g") := "ğ" ; g with breve +dkBreveSpecial.item("G") := "Ğ" ; G with breve +dkBreveSpecial.item("é") := "ꬶ" ; cross-tailed g +dkBreveSpecial.item("h") := "ɣ" ; latin small gamma +dkBreveSpecial.item("H") := "Ɣ" ; latin capital gamma +dkBreveSpecial.item("i") := "ĭ" ; i with breve +dkBreveSpecial.item("I") := "Ĭ" ; I with breve +dkBreveSpecial.item("j") := "ij" ; ligature ij +dkBreveSpecial.item("J") := "IJ" ; ligature IJ +dkBreveSpecial.item("k") := "ĸ" ; small letter kra +dkBreveSpecial.item("n") := "ŋ" ; small letter eng(ma) +dkBreveSpecial.item("N") := "Ŋ" ; capital letter eng(ma) +dkBreveSpecial.item("o") := "ŏ" ; o with breve +dkBreveSpecial.item("O") := "Ŏ" ; O with breve +dkBreveSpecial.item("ö") := "ɔ" ; small open o +dkBreveSpecial.item("Ö") := "Ɔ" ; capital open O +dkBreveSpecial.item("s") := "ș" ; s with comma below (Romanian) +dkBreveSpecial.item("S") := "Ș" ; S with comma below (Romanian) +dkBreveSpecial.item("t") := "ț" ; t with comma below (Romanian) +dkBreveSpecial.item("T") := "Ț" ; T with comma below (Romanian) +dkBreveSpecial.item("u") := "ŭ" ; u with breve +dkBreveSpecial.item("U") := "Ŭ" ; U with breve +dkBreveSpecial.item("v") := "ʊ" ; latin small letter upsilon +dkBreveSpecial.item("V") := "Ʊ" ; latin capital letter upsilon +dkBreveSpecial.item("w") := "ƿ" ; small letter wynn +dkBreveSpecial.item("W") := "Ƿ" ; capital letter wynn +dkBreveSpecial.item("y") := "ȝ" ; small letter yogh +dkBreveSpecial.item("Y") := "Ȝ" ; capital letter yogh +dkBreveSpecial.item("3") := "ʒ" ; small letter ezh +dkBreveSpecial.item("#") := "Ʒ" ; capital letter ezh +dkBreveSpecial.item(" ") := "˘" ; breve + + +; Dead Key : Acute Accent + +dkAcuteAccent := ComObjCreate("Scripting.Dictionary") +dkAcuteAccent.item("a") := "á" ; a with acute +dkAcuteAccent.item("A") := "Á" ; A with acute +dkAcuteAccent.item("b") := "ɓ" ; b with hook +dkAcuteAccent.item("B") := "Ɓ" ; B with hook +dkAcuteAccent.item("c") := "ć" ; c with acute +dkAcuteAccent.item("C") := "Ć" ; C with acute +dkAcuteAccent.item("ç") := "ḉ" ; c with cedilla and acute +dkAcuteAccent.item("Ç") := "Ḉ" ; C with cedilla and acute +dkAcuteAccent.item("d") := "ɗ" ; d with hook +dkAcuteAccent.item("D") := "Ɗ" ; D with hook +dkAcuteAccent.item("e") := "é" ; e with acute +dkAcuteAccent.item("E") := "É" ; E with acute +dkAcuteAccent.item("f") := "ƒ" ; f with hook +dkAcuteAccent.item("F") := "Ƒ" ; F with hook +dkAcuteAccent.item("g") := "ǵ" ; g with acute +dkAcuteAccent.item("G") := "Ǵ" ; G with acute +dkAcuteAccent.item("h") := "ɦ" ; h with hook +dkAcuteAccent.item("H") := "Ɦ" ; H with hook +dkAcuteAccent.item("i") := "í" ; i with acute +dkAcuteAccent.item("I") := "Í" ; I with acute +dkAcuteAccent.item("j") := "ij" ; ligature ij +dkAcuteAccent.item("J") := "IJ" ; ligature IJ +dkAcuteAccent.item("k") := "ƙ" ; k with hook +dkAcuteAccent.item("K") := "Ƙ" ; K with hook +dkAcuteAccent.item("l") := "ĺ" ; l with acute +dkAcuteAccent.item("L") := "Ĺ" ; L with acute +dkAcuteAccent.item("m") := "ḿ" ; m with acute +dkAcuteAccent.item("M") := "Ḿ" ; M with acute +dkAcuteAccent.item("n") := "ń" ; n with acute +dkAcuteAccent.item("N") := "Ń" ; N with acute +dkAcuteAccent.item("o") := "ó" ; o with acute +dkAcuteAccent.item("O") := "Ó" ; O with acute +dkAcuteAccent.item("ö") := "ő" ; o with double acute +dkAcuteAccent.item("Ö") := "Ő" ; O with double acute +dkAcuteAccent.item("p") := "ƥ" ; p with hook +dkAcuteAccent.item("P") := "Ƥ" ; P with hook +dkAcuteAccent.item("q") := "ɋ" ; q with hook tail +dkAcuteAccent.item("Q") := "Ɋ" ; Q with hook tail +dkAcuteAccent.item("r") := "ŕ" ; r with acute +dkAcuteAccent.item("R") := "Ŕ" ; R with acute +dkAcuteAccent.item("s") := "ś" ; s with acute +dkAcuteAccent.item("S") := "Ś" ; S with acute +dkAcuteAccent.item("t") := "ƭ" ; t with hook +dkAcuteAccent.item("T") := "Ƭ" ; T with hook +dkAcuteAccent.item("u") := "ú" ; u with acute +dkAcuteAccent.item("U") := "Ú" ; U with acute +dkAcuteAccent.item("ü") := "ű" ; u with double acute +dkAcuteAccent.item("Ü") := "Ű" ; U with double acute +dkAcuteAccent.item("v") := "ʋ" ; v with hook +dkAcuteAccent.item("V") := "Ʋ" ; V with hook +dkAcuteAccent.item("w") := "ẃ" ; w with acute +dkAcuteAccent.item("W") := "Ẃ" ; W with acute +dkAcuteAccent.item("y") := "ý" ; y with acute +dkAcuteAccent.item("Y") := "Ý" ; Y with acute +dkAcuteAccent.item("z") := "ź" ; z with acute +dkAcuteAccent.item("Z") := "Ź" ; Z with acute +dkAcuteAccent.item("å") := "ǻ" ; a with ring above and acute +dkAcuteAccent.item("Å") := "Ǻ" ; A with ring above and acute +dkAcuteAccent.item("æ") := "ǽ" ; ae with acute +dkAcuteAccent.item("Æ") := "Ǽ" ; AE with acute +dkAcuteAccent.item("ø") := "ǿ" ; o with stroke and acute +dkAcuteAccent.item("Ø") := "Ǿ" ; O with stroke and acute +dkAcuteAccent.item("2") := "♫" ; beamed eighth notes +dkAcuteAccent.item("8") := "♪" ; eighth note +dkAcuteAccent.item("'") := "´" ; acute accent +dkAcuteAccent.item(" ") := "´" ; acute accent + + +; Dead Key : Diaeresis + +dkDiaeresis := ComObjCreate("Scripting.Dictionary") +dkDiaeresis.item("a") := "ä" ; a with diaeresis +dkDiaeresis.item("A") := "Ä" ; A with diaeresis +dkDiaeresis.item("e") := "ë" ; e with diaeresis +dkDiaeresis.item("E") := "Ë" ; E with diaeresis +dkDiaeresis.item("h") := "ḧ" ; h with diaeresis +dkDiaeresis.item("H") := "Ḧ" ; H with diaeresis +dkDiaeresis.item("i") := "ï" ; i with diaeresis +dkDiaeresis.item("I") := "Ï" ; I with diaeresis +dkDiaeresis.item("o") := "ö" ; o with diaeresis +dkDiaeresis.item("O") := "Ö" ; O with diaeresis +dkDiaeresis.item("s") := "ß" ; small sharp s (Eszett) +dkDiaeresis.item("S") := "ẞ" ; capital sharp S (capital Eszett) +dkDiaeresis.item("t") := "ẗ" ; t with diaeresis +dkDiaeresis.item("u") := "ü" ; u with diaeresis +dkDiaeresis.item("U") := "Ü" ; U with diaeresis +dkDiaeresis.item("w") := "ẅ" ; w with diaeresis +dkDiaeresis.item("W") := "Ẅ" ; W with diaeresis +dkDiaeresis.item("x") := "ẍ" ; x with diaeresis +dkDiaeresis.item("X") := "Ẍ" ; X with diaeresis +dkDiaeresis.item("y") := "ÿ" ; y with diaeresis +dkDiaeresis.item("Y") := "Ÿ" ; Y with diaeresis +dkDiaeresis.item("""") := "¨" ; diaeresis +dkDiaeresis.item(" ") := "¨" ; diaeresis + + +; Dead Key : Grave Accent + +dkGraveAccent := ComObjCreate("Scripting.Dictionary") +dkGraveAccent.item("a") := "à" ; a with grave +dkGraveAccent.item("A") := "À" ; A with grave +dkGraveAccent.item("e") := "è" ; e with grave +dkGraveAccent.item("E") := "È" ; E with grave +dkGraveAccent.item("i") := "ì" ; i with grave +dkGraveAccent.item("I") := "Ì" ; I with grave +dkGraveAccent.item("n") := "ǹ" ; n with grave +dkGraveAccent.item("N") := "Ǹ" ; N with grave +dkGraveAccent.item("o") := "ò" ; o with grave +dkGraveAccent.item("O") := "Ò" ; O with grave +dkGraveAccent.item("u") := "ù" ; u with grave +dkGraveAccent.item("U") := "Ù" ; U with grave +dkGraveAccent.item("w") := "ẁ" ; w with grave +dkGraveAccent.item("W") := "Ẁ" ; W with grave +dkGraveAccent.item("y") := "ỳ" ; y with grave +dkGraveAccent.item("Y") := "Ỳ" ; Y with grave +dkGraveAccent.item("ä") := "₳" ; Argentine austral +dkGraveAccent.item("Ä") := "₳" ; Argentine austral +dkGraveAccent.item("b") := "₿" ; bitcoin +dkGraveAccent.item("B") := "₿" ; bitcoin +dkGraveAccent.item("c") := "₡" ; Costa Rican colón +dkGraveAccent.item("C") := "₵" ; Ghanaian cedi +dkGraveAccent.item("ç") := "₢" ; Brazilian cruzeiro +dkGraveAccent.item("Ç") := "₢" ; Brazilian cruzeiro +dkGraveAccent.item("d") := "₫" ; Vietnamese dong +dkGraveAccent.item("D") := "₯" ; Greek drachma +dkGraveAccent.item("f") := "₣" ; French franc +dkGraveAccent.item("F") := "₣" ; French franc +dkGraveAccent.item("g") := "₲" ; Paraguayan guaraní +dkGraveAccent.item("G") := "₲" ; Paraguayan guaraní +dkGraveAccent.item("h") := "₴" ; Ukrainian hryvnia +dkGraveAccent.item("H") := "₴" ; Ukrainian hryvnia +dkGraveAccent.item("k") := "₭" ; Laotian kip +dkGraveAccent.item("K") := "₭" ; Laotian kip +dkGraveAccent.item("l") := "₺" ; Turkish lira +dkGraveAccent.item("L") := "₾" ; Georgian lari +dkGraveAccent.item("ø") := "₤" ; lira +dkGraveAccent.item("Ø") := "₤" ; lira +dkGraveAccent.item("m") := "₼" ; Azerbaijani manat +dkGraveAccent.item("M") := "₥" ; mill sign +dkGraveAccent.item("ñ") := "₦" ; Nigerian naira +dkGraveAccent.item("Ñ") := "₦" ; Nigerian naira +dkGraveAccent.item("p") := "₱" ; Philippine peso +dkGraveAccent.item("P") := "₱" ; Philippine peso +dkGraveAccent.item("r") := "₹" ; Indian rupee +dkGraveAccent.item("R") := "₽" ; Russian ruble +dkGraveAccent.item("s") := "₪" ; Israeli new shekel +dkGraveAccent.item("S") := "₪" ; Israeli new shekel +dkGraveAccent.item("t") := "₮" ; Mongolian tögrög (tugrik) +dkGraveAccent.item("T") := "₸" ; Kazakh tenge +dkGraveAccent.item("å") := "₩" ; South Korean won +dkGraveAccent.item("Å") := "₩" ; South Korean won +dkGraveAccent.item("1") := " " ; en space +dkGraveAccent.item("2") := " " ; em space +dkGraveAccent.item("3") := " " ; three-per-em space +dkGraveAccent.item("4") := " " ; four-per-em space +dkGraveAccent.item("5") := " " ; punctuation space +dkGraveAccent.item("6") := " " ; six-per-em space +dkGraveAccent.item("7") := " " ; thin space +dkGraveAccent.item("8") := " " ; hair space +dkGraveAccent.item("9") := " " ; figure space +dkGraveAccent.item("0") := "​" ; zero-width space +dkGraveAccent.item("-") := " " ; non-breaking space +dkGraveAccent.item("!") := " " ; en quad +dkGraveAccent.item("@") := " " ; em quad +dkGraveAccent.item("``") := "``" ; grave accent +dkGraveAccent.item(" ") := "``" ; grave accent + + +; Dead Key : Tilde + +dkTilde := ComObjCreate("Scripting.Dictionary") +dkTilde.item("a") := "ã" ; a with tilde +dkTilde.item("A") := "Ã" ; A with tilde +dkTilde.item("e") := "ẽ" ; e with tilde +dkTilde.item("E") := "Ẽ" ; E with tilde +dkTilde.item("i") := "ĩ" ; i with tilde +dkTilde.item("I") := "Ĩ" ; I with tilde +dkTilde.item("n") := "ñ" ; n with tilde +dkTilde.item("N") := "Ñ" ; N with tilde +dkTilde.item("o") := "õ" ; o with tilde +dkTilde.item("O") := "Õ" ; O with tilde +dkTilde.item("u") := "ũ" ; u with tilde +dkTilde.item("U") := "Ũ" ; U with tilde +dkTilde.item("v") := "ṽ" ; v with tilde +dkTilde.item("V") := "Ṽ" ; V with tilde +dkTilde.item("y") := "ỹ" ; y with tilde +dkTilde.item("Y") := "Ỹ" ; Y with tilde +dkTilde.item("~") := "~" ; tilde +dkTilde.item(" ") := "~" ; tilde + + +; Dead Key : Not Sign + +dkNotSign := ComObjCreate("Scripting.Dictionary") +dkNotSign.item("a") := "ª" ; feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("A") := "ª" ; feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("b") := "☐" ; ballot box +dkNotSign.item("B") := "☒" ; ballot box with x +dkNotSign.item("c") := "©" ; copyright sign +dkNotSign.item("C") := "¤" ; currency sign +dkNotSign.item("d") := "†" ; dagger +dkNotSign.item("D") := "‡" ; double dagger +dkNotSign.item("e") := "…" ; ellipsis +dkNotSign.item("E") := "℮" ; estimated symbol +dkNotSign.item("f") := "♀" ; Venus symbol (female) +dkNotSign.item("F") := "♀" ; Venus symbol (female) +dkNotSign.item("h") := "♡" ; white heart suit +dkNotSign.item("H") := "♥" ; black heart suit +dkNotSign.item("l") := "ℓ" ; script small l +dkNotSign.item("L") := "ℓ" ; script small l +dkNotSign.item("m") := "♂" ; Mars symbol (male) +dkNotSign.item("M") := "♂" ; Mars symbol (male) +dkNotSign.item("n") := "¬" ; not sign +dkNotSign.item("N") := "¬" ; not sign +dkNotSign.item("o") := "º" ; masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("O") := "º" ; masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("p") := "¶" ; pilcrow sign +dkNotSign.item("P") := "℗" ; sound recording copyright +dkNotSign.item("r") := "®" ; registered sign +dkNotSign.item("R") := "®" ; registered sign +dkNotSign.item("s") := "§" ; section sign +dkNotSign.item("S") := "℠" ; service mark +dkNotSign.item("t") := "™" ; trademark symbol +dkNotSign.item("T") := "™" ; trademark symbol +dkNotSign.item("v") := "✓" ; check mark +dkNotSign.item("V") := "✔" ; heavy check mark +dkNotSign.item("w") := "☑" ; ballot box with check +dkNotSign.item("W") := "☙" ; reversed rotated floral heart bullet +dkNotSign.item("x") := "✗" ; ballot x +dkNotSign.item("X") := "✘" ; heavy ballot x +dkNotSign.item("y") := "☺" ; white smiling face +dkNotSign.item("Y") := "☻" ; black smiling face +dkNotSign.item("1") := "№" ; numero sign +dkNotSign.item("2") := "½" ; vulgar fraction 1/2 +dkNotSign.item("3") := "⅓" ; vulgar fraction 1/3 +dkNotSign.item("4") := "¼" ; vulgar fraction 1/4 +dkNotSign.item("5") := "⅔" ; vulgar fraction 2/3 +dkNotSign.item("6") := "¾" ; vulgar fraction 3/4 +dkNotSign.item("7") := "⅛" ; vulgar fraction 1/8 +dkNotSign.item("8") := "⅜" ; vulgar fraction 3/8 +dkNotSign.item("9") := "⅝" ; vulgar fraction 5/8 +dkNotSign.item("0") := "⅞" ; vulgar fraction 7/8 +dkNotSign.item(".") := "•" ; bullet +dkNotSign.item("-") := "⁃" ; hyphen bullet +dkNotSign.item("\") := "⁞" ; vertical four dots +dkNotSign.item("|") := "⁞" ; vertical four dots +dkNotSign.item(" ") := "¬" ; not sign + + +; Dead Key : Broken Bar + +dkBrokenBar := ComObjCreate("Scripting.Dictionary") +dkBrokenBar.item("a") := "ɑ" ; latin small letter alpha +dkBrokenBar.item("A") := "Ɑ" ; latin capital letter alpha +dkBrokenBar.item("ä") := "ɒ" ; latin small letter turned alpha +dkBrokenBar.item("Ä") := "Ɒ" ; latin capital letter turned alpha +dkBrokenBar.item("c") := "ƈ" ; c with hook +dkBrokenBar.item("C") := "Ƈ" ; C with hook +dkBrokenBar.item("e") := "ɛ" ; small open e (latin small epsilon) +dkBrokenBar.item("E") := "Ɛ" ; capital open E (latin capital epsilon) +dkBrokenBar.item("f") := "❦" ; floral heart +dkBrokenBar.item("F") := "❧" ; rotated floral heart bullet +dkBrokenBar.item("g") := "ɠ" ; g with hook +dkBrokenBar.item("G") := "Ɠ" ; G with hook +dkBrokenBar.item("h") := "ꜧ" ; small letter heng +dkBrokenBar.item("H") := "Ꜧ" ; capital letter heng +dkBrokenBar.item("ù") := "ɧ" ; small letter heng with hook +dkBrokenBar.item("k") := "ḱ" ; k with acute +dkBrokenBar.item("K") := "Ḱ" ; K with acute +dkBrokenBar.item("n") := "ɲ" ; n with left hook +dkBrokenBar.item("N") := "Ɲ" ; N with left hook +dkBrokenBar.item("o") := "ơ" ; o with horn +dkBrokenBar.item("O") := "Ơ" ; O with horn +dkBrokenBar.item("p") := "ṕ" ; p with acute +dkBrokenBar.item("P") := "Ṕ" ; P with acute +dkBrokenBar.item("s") := "ʃ" ; small letter esh +dkBrokenBar.item("S") := "Ʃ" ; capital letter esh +dkBrokenBar.item("ß") := "ſ" ; small long s +dkBrokenBar.item("u") := "ư" ; u with horn +dkBrokenBar.item("U") := "Ư" ; U with horn +dkBrokenBar.item("v") := "ʌ" ; latin small letter turned v +dkBrokenBar.item("V") := "Ʌ" ; latin capital letter turned V +dkBrokenBar.item("w") := "ⱳ" ; w with hook +dkBrokenBar.item("W") := "Ⱳ" ; W with hook +dkBrokenBar.item("y") := "ƴ" ; y with hook +dkBrokenBar.item("Y") := "Ƴ" ; Y with hook +dkBrokenBar.item("z") := "ȥ" ; z with hook +dkBrokenBar.item("Z") := "Ȥ" ; Z with hook +dkBrokenBar.item("1") := "←" ; leftwards arrow +dkBrokenBar.item("2") := "↓" ; downwards arrow +dkBrokenBar.item("3") := "↑" ; upwards arrow +dkBrokenBar.item("4") := "→" ; rightwards arrow +dkBrokenBar.item("5") := "↖" ; north west arrow +dkBrokenBar.item("6") := "↙" ; south west arrow +dkBrokenBar.item("7") := "↗" ; north east arrow +dkBrokenBar.item("8") := "↘" ; south east arrow +dkBrokenBar.item("9") := "↕" ; up down arrow +dkBrokenBar.item("0") := "↨" ; up down arrow with base +dkBrokenBar.item("=") := "↔" ; left right arrow +dkBrokenBar.item("!") := "⇐" ; leftwards double arrow +dkBrokenBar.item("@") := "⇓" ; downwards double arrow +dkBrokenBar.item("#") := "⇑" ; upwards double arrow +dkBrokenBar.item("$") := "⇒" ; rightwards double arrow +dkBrokenBar.item("%") := "⇖" ; north west double arrow +dkBrokenBar.item("^") := "⇙" ; south west double arrow +dkBrokenBar.item("&") := "⇗" ; north east double arrow +dkBrokenBar.item("*") := "⇘" ; south east double arrow +dkBrokenBar.item("(") := "⇕" ; up down double arrow +dkBrokenBar.item(")") := "↲" ; downwards arrow with tip leftwards +dkBrokenBar.item("+") := "⇔" ; left right double arrow +dkBrokenBar.item("\") := "¦" ; broken bar +dkBrokenBar.item("|") := "¦" ; broken bar +dkBrokenBar.item(" ") := "¦" ; broken bar + + +; Dead Key : Greek Alphabet + +dkGreekAlphabet := ComObjCreate("Scripting.Dictionary") +dkGreekAlphabet.item("a") := "α" ; small alpha +dkGreekAlphabet.item("A") := "Α" ; capital alpha +dkGreekAlphabet.item("b") := "β" ; small beta +dkGreekAlphabet.item("B") := "Β" ; capital beta +dkGreekAlphabet.item("v") := "β" ; small beta +dkGreekAlphabet.item("V") := "Β" ; capital beta +dkGreekAlphabet.item("g") := "γ" ; small gamma +dkGreekAlphabet.item("G") := "Γ" ; capital gamma +dkGreekAlphabet.item("d") := "δ" ; small delta +dkGreekAlphabet.item("D") := "Δ" ; capital delta +dkGreekAlphabet.item("e") := "ε" ; small epsilon +dkGreekAlphabet.item("E") := "Ε" ; capital epsilon +dkGreekAlphabet.item("z") := "ζ" ; small zeta +dkGreekAlphabet.item("Z") := "Ζ" ; capital zeta +dkGreekAlphabet.item("h") := "η" ; small eta +dkGreekAlphabet.item("H") := "Η" ; capital eta +dkGreekAlphabet.item("j") := "θ" ; small theta +dkGreekAlphabet.item("J") := "Θ" ; capital theta +dkGreekAlphabet.item("i") := "ι" ; small iota +dkGreekAlphabet.item("I") := "Ι" ; capital iota +dkGreekAlphabet.item("k") := "κ" ; small kappa +dkGreekAlphabet.item("K") := "Κ" ; capital kappa +dkGreekAlphabet.item("l") := "λ" ; small lambda +dkGreekAlphabet.item("L") := "Λ" ; capital lambda +dkGreekAlphabet.item("m") := "μ" ; small mu +dkGreekAlphabet.item("M") := "Μ" ; capital mu +dkGreekAlphabet.item("n") := "ν" ; small nu +dkGreekAlphabet.item("N") := "Ν" ; capital nu +dkGreekAlphabet.item("x") := "ξ" ; small xi +dkGreekAlphabet.item("X") := "Ξ" ; capital xi +dkGreekAlphabet.item("o") := "ο" ; small omikron +dkGreekAlphabet.item("O") := "Ο" ; capital omikron +dkGreekAlphabet.item("p") := "π" ; small pi +dkGreekAlphabet.item("P") := "Π" ; capital pi +dkGreekAlphabet.item("r") := "ρ" ; small rho +dkGreekAlphabet.item("R") := "Ρ" ; capital rho +dkGreekAlphabet.item("s") := "σ" ; small sigma +dkGreekAlphabet.item("S") := "Σ" ; capital sigma +dkGreekAlphabet.item(",") := "ς" ; small sigma, in word-final position +dkGreekAlphabet.item("ß") := "ς" ; small sigma, in word-final position +dkGreekAlphabet.item("t") := "τ" ; small tau +dkGreekAlphabet.item("T") := "Τ" ; capital tau +dkGreekAlphabet.item("u") := "υ" ; small upsilon +dkGreekAlphabet.item("U") := "Υ" ; capital upsilon +dkGreekAlphabet.item("y") := "υ" ; small upsilon +dkGreekAlphabet.item("Y") := "Υ" ; capital upsilon +dkGreekAlphabet.item("f") := "φ" ; small phi +dkGreekAlphabet.item("F") := "Φ" ; capital phi +dkGreekAlphabet.item("c") := "χ" ; small chi +dkGreekAlphabet.item("C") := "Χ" ; capital chi +dkGreekAlphabet.item("w") := "ψ" ; small psi +dkGreekAlphabet.item("W") := "Ψ" ; capital psi +dkGreekAlphabet.item("q") := "ω" ; small omega +dkGreekAlphabet.item("Q") := "Ω" ; capital omega +dkGreekAlphabet.item("1") := "¹" ; superscript 1 +dkGreekAlphabet.item("2") := "²" ; superscript 2 +dkGreekAlphabet.item("3") := "³" ; superscript 3 +dkGreekAlphabet.item("4") := "⁴" ; superscript 4 +dkGreekAlphabet.item("5") := "⁵" ; superscript 5 +dkGreekAlphabet.item("6") := "⁶" ; superscript 6 +dkGreekAlphabet.item("7") := "⁷" ; superscript 7 +dkGreekAlphabet.item("8") := "⁸" ; superscript 8 +dkGreekAlphabet.item("9") := "⁹" ; superscript 9 +dkGreekAlphabet.item("0") := "⁰" ; superscript 0 +dkGreekAlphabet.item("-") := "⁻" ; superscript - +dkGreekAlphabet.item("=") := "⁼" ; superscript = +dkGreekAlphabet.item("+") := "⁺" ; superscript + +dkGreekAlphabet.item("[") := "⁽" ; superscript ( +dkGreekAlphabet.item("]") := "⁾" ; superscript ) +dkGreekAlphabet.item("!") := "₁" ; subscript 1 +dkGreekAlphabet.item("@") := "₂" ; subscript 2 +dkGreekAlphabet.item("#") := "₃" ; subscript 3 +dkGreekAlphabet.item("$") := "₄" ; subscript 4 +dkGreekAlphabet.item("%") := "₅" ; subscript 5 +dkGreekAlphabet.item("^") := "₆" ; subscript 6 +dkGreekAlphabet.item("&") := "₇" ; subscript 7 +dkGreekAlphabet.item("*") := "₈" ; subscript 8 +dkGreekAlphabet.item("(") := "₉" ; subscript 9 +dkGreekAlphabet.item(")") := "₀" ; subscript 0 +dkGreekAlphabet.item(";") := "₋" ; subscript - +dkGreekAlphabet.item("'") := "₌" ; subscript = +dkGreekAlphabet.item("""") := "₊" ; subscript + +dkGreekAlphabet.item("{") := "₍" ; subscript ( +dkGreekAlphabet.item("}") := "₎" ; subscript ) +dkGreekAlphabet.item(".") := "µ" ; micro sign +dkGreekAlphabet.item(" ") := "μ" ; small mu + + +; Dead Key : Math Symbols + +dkMathSymbols := ComObjCreate("Scripting.Dictionary") +dkMathSymbols.item("a") := "∀" ; for all +dkMathSymbols.item("A") := "∀" ; for all +dkMathSymbols.item("b") := "⊆" ; subset of or equal to +dkMathSymbols.item("B") := "⊇" ; superset of or equal to +dkMathSymbols.item("c") := "∝" ; proportional to +dkMathSymbols.item("C") := "ℂ" ; complex numbers +dkMathSymbols.item("d") := "∆" ; increment operator +dkMathSymbols.item("D") := "∇" ; nable/del operator +dkMathSymbols.item("e") := "∃" ; there exists +dkMathSymbols.item("E") := "∄" ; there does not exist +dkMathSymbols.item("f") := "ƒ" ; f with hook +dkMathSymbols.item("F") := "∎" ; end of proof +dkMathSymbols.item("g") := "⊂" ; subset of +dkMathSymbols.item("G") := "⊄" ; not a subset of +dkMathSymbols.item("h") := "⊃" ; superset of +dkMathSymbols.item("H") := "⊅" ; not a superset of +dkMathSymbols.item("i") := "∞" ; infinity symbol +dkMathSymbols.item("I") := "∞" ; infinity symbol +dkMathSymbols.item("k") := "∋" ; contains as member +dkMathSymbols.item("K") := "∌" ; does not contain as member +dkMathSymbols.item("l") := "∥" ; parallel to +dkMathSymbols.item("L") := "∦" ; not parallel to +dkMathSymbols.item("m") := "∈" ; element of +dkMathSymbols.item("M") := "∉" ; not an element of +dkMathSymbols.item("n") := "ⁿ" ; superscript n +dkMathSymbols.item("N") := "ℕ" ; natural numbers +dkMathSymbols.item("o") := "∘" ; ring operator +dkMathSymbols.item("O") := "∅" ; empty set +dkMathSymbols.item("p") := "∂" ; partial differential +dkMathSymbols.item("P") := "ℙ" ; prime numbers +dkMathSymbols.item("q") := "ℚ" ; rational numbers +dkMathSymbols.item("Q") := "ℚ" ; rational numbers +dkMathSymbols.item("r") := "√" ; square root +dkMathSymbols.item("R") := "ℝ" ; real numbers +dkMathSymbols.item("s") := "∩" ; set intersection +dkMathSymbols.item("S") := "∫" ; integral symbol +dkMathSymbols.item("u") := "∪" ; set union +dkMathSymbols.item("U") := "∖" ; set minus +dkMathSymbols.item("z") := "↯" ; downwards zigzag arrow +dkMathSymbols.item("Z") := "ℤ" ; whole numbers +dkMathSymbols.item("1") := "≠" ; not equal to +dkMathSymbols.item("!") := "≠" ; not equal to +dkMathSymbols.item("2") := "√" ; square root +dkMathSymbols.item("3") := "∛" ; cube root +dkMathSymbols.item("4") := "∜" ; fourth root +dkMathSymbols.item("5") := "‰" ; per mille sign +dkMathSymbols.item("%") := "‱" ; per ten thousand sign +dkMathSymbols.item("6") := "℘" ; script capital p +dkMathSymbols.item("^") := "℘" ; script capital p +dkMathSymbols.item("7") := "∧" ; logical and +dkMathSymbols.item("&") := "∧" ; logical and +dkMathSymbols.item("8") := "⊗" ; tensor product +dkMathSymbols.item("*") := "⊗" ; tensor product +dkMathSymbols.item("9") := "∟" ; right angle +dkMathSymbols.item("0") := "∠" ; angle symbol +dkMathSymbols.item(")") := "∡" ; measured angle +dkMathSymbols.item("``") := "≈" ; almost equal to +dkMathSymbols.item("~") := "≈" ; almost equal to +dkMathSymbols.item(",") := "≤" ; less-than or equal to +dkMathSymbols.item("<") := "≤" ; less-than or equal to +dkMathSymbols.item(".") := "≥" ; greater-than or equal to +dkMathSymbols.item(">") := "≥" ; greater-than or equal to +dkMathSymbols.item("-") := "±" ; plus-minus sign +dkMathSymbols.item("_") := "⊖" ; circled minus +dkMathSymbols.item("=") := "≝" ; equal to by definition +dkMathSymbols.item("+") := "⊕" ; exclusive or +dkMathSymbols.item(";") := "∵" ; because sign +dkMathSymbols.item(":") := "∴" ; therefore sign +dkMathSymbols.item("\") := "∨" ; logical or +dkMathSymbols.item("|") := "∨" ; logical or +dkMathSymbols.item(" ") := "√" ; square root + + +; Configuration : Right Alt on US QWERTY + +>!a:: + if GetKeyState("CapsLock", "T") + Send Ä ; A with diaeresis + else + Send ä ; a with diaeresis +return +>!+a:: + if GetKeyState("CapsLock", "T") + Send ä ; a with diaeresis + else + Send Ä ; A with diaeresis +return + +>!z:: + if GetKeyState("CapsLock", "T") + Send À ; A with grave + else + Send à ; a with grave +return +>!+z:: + if GetKeyState("CapsLock", "T") + Send à ; a with grave + else + Send À ; A with grave +return + +>!x:: + if GetKeyState("CapsLock", "T") + Send Á ; A with acute + else + Send á ; a with acute +return +>!+x:: + if GetKeyState("CapsLock", "T") + Send á ; a with acute + else + Send Á ; A with acute +return + +>!q:: + if GetKeyState("CapsLock", "T") + Send Æ ; letter AE + else + Send æ ; letter ae +return +>!+q:: + if GetKeyState("CapsLock", "T") + Send æ ; letter ae + else + Send Æ ; letter AE +return + +>!w:: + if GetKeyState("CapsLock", "T") + Send Å ; A with ring above + else + Send å ; a with ring above +return +>!+w:: + if GetKeyState("CapsLock", "T") + Send å ; a with ring above + else + Send Å ; A with ring above +return + +>!c:: + if GetKeyState("CapsLock", "T") + Send Ç ; C with cedilla + else + Send ç ; c with cedilla +return +>!+c:: + if GetKeyState("CapsLock", "T") + Send ç ; c with cedilla + else + Send Ç ; C with cedilla +return + +>!d:: + if GetKeyState("CapsLock", "T") + Send Ð ; capital letter eth + else + Send ð ; small letter eth +return +>!+d:: + if GetKeyState("CapsLock", "T") + Send ð ; small letter eth + else + Send Ð ; capital letter eth +return + +>!e:: + if GetKeyState("CapsLock", "T") + Send Ë ; E with diaeresis + else + Send ë ; e with diaeresis +return +>!+e:: + if GetKeyState("CapsLock", "T") + Send ë ; e with diaeresis + else + Send Ë ; E with diaeresis +return + +>!f:: + if GetKeyState("CapsLock", "T") + Send È ; E with grave + else + Send è ; e with grave +return +>!+f:: + if GetKeyState("CapsLock", "T") + Send è ; e with grave + else + Send È ; E with grave +return + +>!g:: + if GetKeyState("CapsLock", "T") + Send É ; E with acute + else + Send é ; e with acute +return +>!+g:: + if GetKeyState("CapsLock", "T") + Send é ; e with acute + else + Send É ; E with acute +return + +>!i:: + if GetKeyState("CapsLock", "T") + Send Ï ; I with diaeresis + else + Send ï ; i with diaeresis +return +>!+i:: + if GetKeyState("CapsLock", "T") + Send ï ; i with diaeresis + else + Send Ï ; I with diaeresis +return + +>!v:: + if GetKeyState("CapsLock", "T") + Send Ì ; I with grave + else + Send ì ; i with grave +return +>!+v:: + if GetKeyState("CapsLock", "T") + Send ì ; i with grave + else + Send Ì ; I with grave +return + +>!b:: + if GetKeyState("CapsLock", "T") + Send Í ; I with acute + else + Send í ; i with acute +return +>!+b:: + if GetKeyState("CapsLock", "T") + Send í ; i with acute + else + Send Í ; I with acute +return + +>!o:: + if GetKeyState("CapsLock", "T") + Send Ö ; O with diaeresis + else + Send ö ; o with diaeresis +return +>!+o:: + if GetKeyState("CapsLock", "T") + Send ö ; o with diaeresis + else + Send Ö ; O with diaeresis +return + +>!,:: + if GetKeyState("CapsLock", "T") + Send Ò ; O with grave + else + Send ò ; o with grave +return +>!<:: + if GetKeyState("CapsLock", "T") + Send ò ; o with grave + else + Send Ò ; O with grave +return + +>!.:: + if GetKeyState("CapsLock", "T") + Send Ó ; O with acute + else + Send ó ; o with acute +return +>!>:: + if GetKeyState("CapsLock", "T") + Send ó ; o with acute + else + Send Ó ; O with acute +return + +>!k:: + if GetKeyState("CapsLock", "T") + Send Œ ; ligature OE + else + Send œ ; ligature oe +return +>!+k:: + if GetKeyState("CapsLock", "T") + Send œ ; ligature oe + else + Send Œ ; ligature OE +return + +>!l:: + if GetKeyState("CapsLock", "T") + Send Ø ; O with stroke + else + Send ø ; o with stroke +return +>!+l:: + if GetKeyState("CapsLock", "T") + Send ø ; o with stroke + else + Send Ø ; O with stroke +return + +>!n:: + if GetKeyState("CapsLock", "T") + Send Ñ ; N with tilde + else + Send ñ ; n with tilde +return +>!+n:: + if GetKeyState("CapsLock", "T") + Send ñ ; n with tilde + else + Send Ñ ; N with tilde +return + +>!t:: + if GetKeyState("CapsLock", "T") + Send Þ ; capital letter thorn + else + Send þ ; small letter thorn +return +>!+t:: + if GetKeyState("CapsLock", "T") + Send þ ; small letter thorn + else + Send Þ ; capital letter thorn +return + +>!u:: + if GetKeyState("CapsLock", "T") + Send Ü ; U with diaeresis + else + Send ü ; u with diaeresis +return +>!+u:: + if GetKeyState("CapsLock", "T") + Send ü ; u with diaeresis + else + Send Ü ; U with diaeresis +return + +>!h:: + if GetKeyState("CapsLock", "T") + Send Ù ; U with grave + else + Send ù ; u with grave +return +>!+h:: + if GetKeyState("CapsLock", "T") + Send ù ; u with grave + else + Send Ù ; U with grave +return + +>!j:: + if GetKeyState("CapsLock", "T") + Send Ú ; U with acute + else + Send ú ; u with acute +return +>!+j:: + if GetKeyState("CapsLock", "T") + Send ú ; u with acute + else + Send Ú ; U with acute +return + +>!y:: + if GetKeyState("CapsLock", "T") + Send Ÿ ; Y with diaeresis + else + Send ÿ ; y with diaeresis +return +>!+y:: + if GetKeyState("CapsLock", "T") + Send ÿ ; y with diaeresis + else + Send Ÿ ; Y with diaeresis +return + +>!r:: + if GetKeyState("CapsLock", "T") + Send Ý ; Y with acute + else + Send ý ; y with acute +return +>!+r:: + if GetKeyState("CapsLock", "T") + Send ý ; y with acute + else + Send Ý ; Y with acute +return + +>!p::Send † ; dagger +>!+p::Send ‡ ; double dagger + +>!s::Send ß ; small sharp s (Eszett) +>!+s::Send § ; section sign + +>!/::Send ¿ ; inverted question mark +>!?::Send ¶ ; pilcrow sign + +>!1::Send ¡ ; inverted exclamation mark +>!+1::Send ¹ ; superscript 1 + +>!2::Send © ; copyright sign +>!+2::Send ² ; superscript 2 + +>!3::Send ± ; plus-minus sign +>!+3::Send ³ ; superscript 3 + +>!4::Send £ ; pound sign +>!+4::Send ¥ ; yen sign + +>!5::Send € ; euro sign +>!+5::Send ¢ ; cent sign (dollar) + +>!8::Send „ ; double low-9 quotation mark +>!+8::Send ‚ ; single low-9 quotation mark + +>!9::Send “ ; left double quotation mark +>!+9::Send ‘ ; left single quotation mark + +>!0::Send ” ; right double quotation mark +>!+0::Send ’ ; right single quotation mark + +>!=::Send × ; multiplication sign +>!+=::Send ÷ ; division sign + +>![::Send « ; left-pointing double angle quotation mark +>!{::Send ‹ ; left-pointing single angle quotation mark + +>!]::Send » ; right-pointing double angle quotation mark +>!}::Send › ; right-pointing single angle quotation mark + +>!;::Send ° ; degree sign +>!+;::Send · ; 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   ; non-breaking space +>!+space::Send   ; non-breaking space diff --git a/UltimateKEYS - 2020-03-31.klc b/UltimateKEYS - 2020-03-31.klc new file mode 100644 index 0000000000000000000000000000000000000000..0737fa9a70e5b6069595a68c05d36cfa8bd165d0 GIT binary patch literal 73046 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 z