From dc30bfb5968de3524287383af8bf78ff72b6424f Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Thu, 23 Apr 2020 15:07:21 +0200 Subject: [PATCH 1/1] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The letters ɱ and Ɱ (m/M with hook) have been added to the dead key 'AltGr+Shift+|'. --- UltimateKEYS - 2020-04-23.ahk | 1235 ++++++++++++++++++++++++++++ UltimateKEYS - 2020-04-23.klc | Bin 0 -> 74296 bytes UltimateKEYS SW - 2020-04-23.ahk | 1305 ++++++++++++++++++++++++++++++ UltimateKEYS SW - 2020-04-23.klc | Bin 0 -> 77226 bytes 4 files changed, 2540 insertions(+) create mode 100644 UltimateKEYS - 2020-04-23.ahk create mode 100644 UltimateKEYS - 2020-04-23.klc create mode 100644 UltimateKEYS SW - 2020-04-23.ahk create mode 100644 UltimateKEYS SW - 2020-04-23.klc diff --git a/UltimateKEYS - 2020-04-23.ahk b/UltimateKEYS - 2020-04-23.ahk new file mode 100644 index 0000000..8ca9972 --- /dev/null +++ b/UltimateKEYS - 2020-04-23.ahk @@ -0,0 +1,1235 @@ +; UltimateKEYS - 2020-04-23.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("4") := "★" ; black star +dkAcuteAccent.item("5") := "☆" ; white star +dkAcuteAccent.item("6") := "✽" ; heavy teardrop-spoked asterisk +dkAcuteAccent.item("7") := "✻" ; teardrop-spoked asterisk +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") := "←" ; 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("m") := "ɱ" ; m with hook +dkBrokenBar.item("M") := "Ɱ" ; M with hook +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-23.klc b/UltimateKEYS - 2020-04-23.klc new file mode 100644 index 0000000000000000000000000000000000000000..e0452248febd7be2e0751ac59ed3839bb04ec7e0 GIT binary patch literal 74296 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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-23.klc b/UltimateKEYS SW - 2020-04-23.klc new file mode 100644 index 0000000000000000000000000000000000000000..c69fe1807baba65db0fbaefc4a540364b1b90ab9 GIT binary patch literal 77226 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 Wr%3Jm%2QRj1DHF4JJ-d(eEz>*&d%BZ literal 0 HcmV?d00001 -- 2.47.3