From 7d0f5fd008add8f6d2916b65de25e831e398f5ec Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Fri, 17 Apr 2020 18:32:14 +0200 Subject: [PATCH 1/1] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The black and white stars (★, ☆) have been added to the dead key AltGr + '. --- UltimateKEYS - 2020-04-17.ahk | 1231 ++++++++++++++++++++++++++++ UltimateKEYS - 2020-04-17.klc | Bin 0 -> 73944 bytes UltimateKEYS SW - 2020-04-17.ahk | 1299 ++++++++++++++++++++++++++++++ UltimateKEYS SW - 2020-04-17.klc | Bin 0 -> 76666 bytes 4 files changed, 2530 insertions(+) create mode 100644 UltimateKEYS - 2020-04-17.ahk create mode 100644 UltimateKEYS - 2020-04-17.klc create mode 100644 UltimateKEYS SW - 2020-04-17.ahk create mode 100644 UltimateKEYS SW - 2020-04-17.klc diff --git a/UltimateKEYS - 2020-04-17.ahk b/UltimateKEYS - 2020-04-17.ahk new file mode 100644 index 0000000..127a6a3 --- /dev/null +++ b/UltimateKEYS - 2020-04-17.ahk @@ -0,0 +1,1231 @@ +; UltimateKEYS - 2020-04-17.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("3") := "⁂" ; asterism +dkAcuteAccent.item("8") := "♪" ; eighth note +dkAcuteAccent.item("9") := "★" ; black star +dkAcuteAccent.item("0") := "☆" ; white star +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") := "←" ; leftwards arrow +dkNotSign.item("2") := "↓" ; downwards arrow +dkNotSign.item("3") := "↑" ; upwards arrow +dkNotSign.item("4") := "→" ; rightwards arrow +dkNotSign.item("5") := "↖" ; north west arrow +dkNotSign.item("6") := "↙" ; south west arrow +dkNotSign.item("7") := "↗" ; north east arrow +dkNotSign.item("8") := "↘" ; south east arrow +dkNotSign.item("9") := "↕" ; up down arrow +dkNotSign.item("0") := "↨" ; up down arrow with base +dkNotSign.item("=") := "↔" ; left right arrow +dkNotSign.item("!") := "⇐" ; leftwards double arrow +dkNotSign.item("@") := "⇓" ; downwards double arrow +dkNotSign.item("#") := "⇑" ; upwards double arrow +dkNotSign.item("$") := "⇒" ; rightwards double arrow +dkNotSign.item("%") := "⇖" ; north west double arrow +dkNotSign.item("^") := "⇙" ; south west double arrow +dkNotSign.item("&") := "⇗" ; north east double arrow +dkNotSign.item("*") := "⇘" ; south east double arrow +dkNotSign.item("(") := "⇕" ; up down double arrow +dkNotSign.item(")") := "↲" ; downwards arrow with tip leftwards +dkNotSign.item("+") := "⇔" ; left right double arrow +dkNotSign.item(".") := "•" ; bullet +dkNotSign.item("-") := "⁃" ; hyphen bullet +dkNotSign.item("/") := "‼" ; double exclamation mark +dkNotSign.item("?") := "‽" ; interrobang +dkNotSign.item("¿") := "⸘" ; inverted interrobang +dkNotSign.item("¶") := "⸮" ; reversed question mark +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") := "№" ; numero sign +dkBrokenBar.item("2") := "½" ; vulgar fraction 1/2 +dkBrokenBar.item("3") := "⅓" ; vulgar fraction 1/3 +dkBrokenBar.item("4") := "¼" ; vulgar fraction 1/4 +dkBrokenBar.item("5") := "⅔" ; vulgar fraction 2/3 +dkBrokenBar.item("6") := "¾" ; vulgar fraction 3/4 +dkBrokenBar.item("7") := "⅛" ; vulgar fraction 1/8 +dkBrokenBar.item("8") := "⅜" ; vulgar fraction 3/8 +dkBrokenBar.item("9") := "⅝" ; vulgar fraction 5/8 +dkBrokenBar.item("0") := "⅞" ; vulgar fraction 7/8 +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("w") := "℘" ; Weierstrass elliptic function +dkMathSymbols.item("W") := "℘" ; Weierstrass elliptic function +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") := "∠" ; angle symbol +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") := "∡" ; 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("'") := "′" ; prime +dkMathSymbols.item("""") := "″" ; double prime +dkMathSymbols.item("/") := "‴" ; triple prime +dkMathSymbols.item("?") := "⁗" ; quadruple prime +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-04-17.klc b/UltimateKEYS - 2020-04-17.klc new file mode 100644 index 0000000000000000000000000000000000000000..51f02a1ed6f25bf229df7facfaa9f6876112dddf GIT binary patch literal 73944 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") := "≥" ; 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("'") := "′" ; prime +dkMathSymbols.item("""") := "″" ; double prime +dkMathSymbols.item("/") := "‴" ; triple prime +dkMathSymbols.item("?") := "⁗" ; quadruple prime +dkMathSymbols.item("\") := "∨" ; logical or +dkMathSymbols.item("|") := "∨" ; logical or +dkMathSymbols.item(" ") := "√" ; square root + + +; Configuration : Switch positions of symbols and digits + +$1::Send {!} ; exclamation mark +$+1::Send 1 ; digit 1 + +$2::Send @ ; at sign +$+2::Send 2 ; digit 2 + +$3::Send {#} ; number sign +$+3::Send 3 ; digit 3 + +$4::Send $ ; dollar sign +$+4::Send 4 ; digit 4 + +$5::Send `% ; percent sign +$+5::Send 5 ; digit 5 + +$6::Send {^} ; circumflex accent +$+6::Send 6 ; digit 6 + +$7::Send & ; ampersand +$+7::Send 7 ; digit 7 + +$8::Send * ; asterisk +$+8::Send 8 ; digit 8 + +$9::Send ( ; left parenthesis +$+9::Send 9 ; digit 9 + +$0::Send ) ; right parenthesis +$+0::Send 0 ; digit 0 + + +; 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 SW - 2020-04-17.klc b/UltimateKEYS SW - 2020-04-17.klc new file mode 100644 index 0000000000000000000000000000000000000000..784ac35ec838c52d752e427e91ab860e85f4e6ca GIT binary patch literal 76666 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