From 0ac90e40680ca21d9c4007421d53fab988159552 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Sat, 4 Apr 2020 19:21:22 +0200 Subject: [PATCH] Add files via upload A small change has been made in which the arrows and fractions switched places. --- UltimateKEYS - 2020-04-04.ahk | 1220 ++++++++++++++++++++++++++++ UltimateKEYS - 2020-04-04.klc | Bin 0 -> 73046 bytes UltimateKEYS SW - 2020-04-04.ahk | 1283 ++++++++++++++++++++++++++++++ UltimateKEYS SW - 2020-04-04.klc | Bin 0 -> 75410 bytes 4 files changed, 2503 insertions(+) create mode 100644 UltimateKEYS - 2020-04-04.ahk create mode 100644 UltimateKEYS - 2020-04-04.klc create mode 100644 UltimateKEYS SW - 2020-04-04.ahk create mode 100644 UltimateKEYS SW - 2020-04-04.klc diff --git a/UltimateKEYS - 2020-04-04.ahk b/UltimateKEYS - 2020-04-04.ahk new file mode 100644 index 0000000..fbc50af --- /dev/null +++ b/UltimateKEYS - 2020-04-04.ahk @@ -0,0 +1,1220 @@ +; UltimateKEYS - 2020-04-04.ahk + +; Created by : Pieter Degroote + +; License : GNU General Public License Version 3 + +; Website : https://github.com/pieter-degroote/UltimateKEYS + + +; Requirements : + +; Keyboard layout (on Windows OS) : US QWERTY + +; AutoHotkey v1.1 (https://www.autohotkey.com/) + + + +; Dead Key : Circumflex Accent + +dkCircumflex := ComObjCreate("Scripting.Dictionary") +dkCircumflex.item("a") := "â" ; a with circumflex +dkCircumflex.item("A") := "Â" ; A with circumflex +dkCircumflex.item("c") := "ĉ" ; c with circumflex +dkCircumflex.item("C") := "Ĉ" ; C with circumflex +dkCircumflex.item("e") := "ê" ; e with circumflex +dkCircumflex.item("E") := "Ê" ; E with circumflex +dkCircumflex.item("g") := "ĝ" ; g with circumflex +dkCircumflex.item("G") := "Ĝ" ; G with circumflex +dkCircumflex.item("h") := "ĥ" ; h with circumflex +dkCircumflex.item("H") := "Ĥ" ; H with circumflex +dkCircumflex.item("i") := "î" ; i with circumflex +dkCircumflex.item("I") := "Î" ; I with circumflex +dkCircumflex.item("j") := "ĵ" ; j with circumflex +dkCircumflex.item("J") := "Ĵ" ; J with circumflex +dkCircumflex.item("o") := "ô" ; o with circumflex +dkCircumflex.item("O") := "Ô" ; O with circumflex +dkCircumflex.item("s") := "ŝ" ; s with circumflex +dkCircumflex.item("S") := "Ŝ" ; S with circumflex +dkCircumflex.item("u") := "û" ; u with circumflex +dkCircumflex.item("U") := "Û" ; U with circumflex +dkCircumflex.item("w") := "ŵ" ; w with circumflex +dkCircumflex.item("W") := "Ŵ" ; W with circumflex +dkCircumflex.item("y") := "ŷ" ; y with circumflex +dkCircumflex.item("Y") := "Ŷ" ; Y with circumflex +dkCircumflex.item("z") := "ẑ" ; z with circumflex +dkCircumflex.item("Z") := "Ẑ" ; Z with circumflex +dkCircumflex.item("n") := "₦" ; Nigerian naira +dkCircumflex.item("N") := "₦" ; Nigerian naira +dkCircumflex.item("^") := "{^}" ; circumflex accent +dkCircumflex.item(" ") := "{^}" ; circumflex accent + + +; Dead Key : Caron + +dkCaron := ComObjCreate("Scripting.Dictionary") +dkCaron.item("a") := "ǎ" ; a with caron +dkCaron.item("A") := "Ǎ" ; A with caron +dkCaron.item("c") := "č" ; c with caron +dkCaron.item("C") := "Č" ; C with caron +dkCaron.item("d") := "ď" ; d with caron +dkCaron.item("D") := "Ď" ; D with caron +dkCaron.item("e") := "ě" ; e with caron +dkCaron.item("E") := "Ě" ; E with caron +dkCaron.item("g") := "ǧ" ; g with caron +dkCaron.item("G") := "Ǧ" ; G with caron +dkCaron.item("h") := "ȟ" ; h with caron +dkCaron.item("H") := "Ȟ" ; H with caron +dkCaron.item("i") := "ǐ" ; i with caron +dkCaron.item("I") := "Ǐ" ; I with caron +dkCaron.item("j") := "ǰ" ; j with caron +dkCaron.item("k") := "ǩ" ; k with caron +dkCaron.item("K") := "Ǩ" ; K with caron +dkCaron.item("l") := "ľ" ; l with caron +dkCaron.item("L") := "Ľ" ; L with caron +dkCaron.item("n") := "ň" ; n with caron +dkCaron.item("N") := "Ň" ; N with caron +dkCaron.item("o") := "ǒ" ; o with caron +dkCaron.item("O") := "Ǒ" ; O with caron +dkCaron.item("r") := "ř" ; r with caron +dkCaron.item("R") := "Ř" ; R with caron +dkCaron.item("s") := "š" ; s with caron +dkCaron.item("S") := "Š" ; S with caron +dkCaron.item("t") := "ť" ; t with caron +dkCaron.item("T") := "Ť" ; T with caron +dkCaron.item("u") := "ǔ" ; u with caron +dkCaron.item("U") := "Ǔ" ; U with caron +dkCaron.item("ü") := "ǚ" ; u with diaeresis and caron +dkCaron.item("Ü") := "Ǚ" ; U with diaeresis and caron +dkCaron.item("z") := "ž" ; z with caron +dkCaron.item("Z") := "Ž" ; Z with caron +dkCaron.item("3") := "ǯ" ; small letter ezh with caron +dkCaron.item("#") := "Ǯ" ; capital letter ezh with caron +dkCaron.item(" ") := "ˇ" ; caron + + +; Dead Key : Ring/Dot Above + +dkRingDotAbove := ComObjCreate("Scripting.Dictionary") +dkRingDotAbove.item("a") := "ȧ" ; a with dot above +dkRingDotAbove.item("A") := "Ȧ" ; A with dot above +dkRingDotAbove.item("ä") := "å" ; a with ring above +dkRingDotAbove.item("Ä") := "Å" ; A with ring above +dkRingDotAbove.item("b") := "ḃ" ; b with dot above +dkRingDotAbove.item("B") := "Ḃ" ; B with dot above +dkRingDotAbove.item("c") := "ċ" ; c with dot above +dkRingDotAbove.item("C") := "Ċ" ; C with dot above +dkRingDotAbove.item("d") := "ḋ" ; d with dot above +dkRingDotAbove.item("D") := "Ḋ" ; D with dot above +dkRingDotAbove.item("e") := "ė" ; e with dot above +dkRingDotAbove.item("E") := "Ė" ; E with dot above +dkRingDotAbove.item("f") := "ḟ" ; f with dot above +dkRingDotAbove.item("F") := "Ḟ" ; F with dot above +dkRingDotAbove.item("g") := "ġ" ; g with dot above +dkRingDotAbove.item("G") := "Ġ" ; G with dot above +dkRingDotAbove.item("h") := "ḣ" ; h with dot above +dkRingDotAbove.item("H") := "Ḣ" ; H with dot above +dkRingDotAbove.item("i") := "ı" ; dotless i (Turkish, Azerbaijani) +dkRingDotAbove.item("I") := "İ" ; I with dot above (Turkish, Azerbaijani) +dkRingDotAbove.item("j") := "ȷ" ; dotless j +dkRingDotAbove.item("l") := "ŀ" ; l with middle dot +dkRingDotAbove.item("L") := "Ŀ" ; L with middle dot +dkRingDotAbove.item("m") := "ṁ" ; m with dot above +dkRingDotAbove.item("M") := "Ṁ" ; M with dot above +dkRingDotAbove.item("n") := "ṅ" ; n with dot above +dkRingDotAbove.item("N") := "Ṅ" ; N with dot above +dkRingDotAbove.item("o") := "ȯ" ; o with dot above +dkRingDotAbove.item("O") := "Ȯ" ; O with dot above +dkRingDotAbove.item("p") := "ṗ" ; p with dot above +dkRingDotAbove.item("P") := "Ṗ" ; P with dot above +dkRingDotAbove.item("r") := "ṙ" ; r with dot above +dkRingDotAbove.item("R") := "Ṙ" ; R with dot above +dkRingDotAbove.item("s") := "ṡ" ; s with dot above +dkRingDotAbove.item("S") := "Ṡ" ; S with dot above +dkRingDotAbove.item("t") := "ṫ" ; t with dot above +dkRingDotAbove.item("T") := "Ṫ" ; T with dot above +dkRingDotAbove.item("u") := "ů" ; u with ring above +dkRingDotAbove.item("U") := "Ů" ; U with ring above +dkRingDotAbove.item("w") := "ẇ" ; w with dot above +dkRingDotAbove.item("W") := "Ẇ" ; W with dot above +dkRingDotAbove.item("å") := "ẘ" ; w with ring above +dkRingDotAbove.item("x") := "ẋ" ; x with dot above +dkRingDotAbove.item("X") := "Ẋ" ; X with dot above +dkRingDotAbove.item("y") := "ẏ" ; y with dot above +dkRingDotAbove.item("Y") := "Ẏ" ; Y with dot above +dkRingDotAbove.item("ÿ") := "ẙ" ; y with ring above +dkRingDotAbove.item("z") := "ż" ; z with dot above +dkRingDotAbove.item("Z") := "Ż" ; Z with dot above +dkRingDotAbove.item(" ") := "˙" ; dot above + + +; Dead Key : Macron/Stroke + +dkMacronStroke := ComObjCreate("Scripting.Dictionary") +dkMacronStroke.item("a") := "ā" ; a with macron +dkMacronStroke.item("A") := "Ā" ; A with macron +dkMacronStroke.item("æ") := "ǣ" ; ae with macron +dkMacronStroke.item("Æ") := "Ǣ" ; AE with macron +dkMacronStroke.item("b") := "ƀ" ; b with stroke +dkMacronStroke.item("B") := "Ƀ" ; B with stroke +dkMacronStroke.item("d") := "đ" ; d with stroke +dkMacronStroke.item("D") := "Đ" ; D with stroke +dkMacronStroke.item("e") := "ē" ; e with macron +dkMacronStroke.item("E") := "Ē" ; E with macron +dkMacronStroke.item("g") := "ǥ" ; g with stroke (Skolt Sami) +dkMacronStroke.item("G") := "Ǥ" ; G with stroke (Skolt Sami) +dkMacronStroke.item("é") := "ḡ" ; g with macron +dkMacronStroke.item("É") := "Ḡ" ; G with macron +dkMacronStroke.item("h") := "ħ" ; h with stroke (Maltese) +dkMacronStroke.item("H") := "Ħ" ; H with stroke (Maltese) +dkMacronStroke.item("i") := "ī" ; i with macron +dkMacronStroke.item("I") := "Ī" ; I with macron +dkMacronStroke.item("ï") := "ɨ" ; i with stroke +dkMacronStroke.item("Ï") := "Ɨ" ; I with stroke +dkMacronStroke.item("j") := "ɉ" ; j with stroke +dkMacronStroke.item("J") := "Ɉ" ; J with stroke +dkMacronStroke.item("l") := "ł" ; l with stroke +dkMacronStroke.item("L") := "Ł" ; L with stroke +dkMacronStroke.item("ø") := "ḻ" ; l with line below +dkMacronStroke.item("Ø") := "Ḻ" ; L with line below +dkMacronStroke.item("o") := "ō" ; o with macron +dkMacronStroke.item("O") := "Ō" ; O with macron +dkMacronStroke.item("ö") := "ǭ" ; o with ogonek and macron +dkMacronStroke.item("Ö") := "Ǭ" ; O with ogonek and macron +dkMacronStroke.item("p") := "ᵽ" ; p with stroke +dkMacronStroke.item("P") := "Ᵽ" ; P with stroke +dkMacronStroke.item("r") := "ɍ" ; r with stroke +dkMacronStroke.item("R") := "Ɍ" ; R with stroke +dkMacronStroke.item("t") := "ŧ" ; t with stroke +dkMacronStroke.item("T") := "Ŧ" ; T with stroke +dkMacronStroke.item("u") := "ū" ; u with macron +dkMacronStroke.item("U") := "Ū" ; U with macron +dkMacronStroke.item("ü") := "ʉ" ; u with bar +dkMacronStroke.item("Ü") := "Ʉ" ; U with bar +dkMacronStroke.item("y") := "ȳ" ; y with macron +dkMacronStroke.item("Y") := "Ȳ" ; Y with macron +dkMacronStroke.item("ÿ") := "ɏ" ; y with stroke +dkMacronStroke.item("Ÿ") := "Ɏ" ; Y with stroke +dkMacronStroke.item("z") := "ƶ" ; z with stroke +dkMacronStroke.item("Z") := "Ƶ" ; Z with stroke +dkMacronStroke.item(" ") := "¯" ; macron + + +; Dead Key : Cedilla/Ogonek + +dkCedillaOgonek := ComObjCreate("Scripting.Dictionary") +dkCedillaOgonek.item("a") := "ą" ; a with ogonek +dkCedillaOgonek.item("A") := "Ą" ; A with ogonek +dkCedillaOgonek.item("c") := "ç" ; c with cedilla +dkCedillaOgonek.item("C") := "Ç" ; C with cedilla +dkCedillaOgonek.item("d") := "ḑ" ; d with cedilla +dkCedillaOgonek.item("D") := "Ḑ" ; D with cedilla +dkCedillaOgonek.item("e") := "ę" ; e with ogonek +dkCedillaOgonek.item("E") := "Ę" ; E with ogonek +dkCedillaOgonek.item("ë") := "ȩ" ; e with cedilla +dkCedillaOgonek.item("Ë") := "Ȩ" ; E with cedilla +dkCedillaOgonek.item("g") := "ģ" ; g with cedilla +dkCedillaOgonek.item("G") := "Ģ" ; G with cedilla +dkCedillaOgonek.item("h") := "ḩ" ; h with cedilla +dkCedillaOgonek.item("H") := "Ḩ" ; H with cedilla +dkCedillaOgonek.item("i") := "į" ; i with ogonek +dkCedillaOgonek.item("I") := "Į" ; I with ogonek +dkCedillaOgonek.item("k") := "ķ" ; k with cedilla +dkCedillaOgonek.item("K") := "Ķ" ; K with cedilla +dkCedillaOgonek.item("l") := "ļ" ; l with cedilla +dkCedillaOgonek.item("L") := "Ļ" ; L with cedilla +dkCedillaOgonek.item("n") := "ņ" ; n with cedilla +dkCedillaOgonek.item("N") := "Ņ" ; N with cedilla +dkCedillaOgonek.item("o") := "ǫ" ; o with ogonek +dkCedillaOgonek.item("O") := "Ǫ" ; O with ogonek +dkCedillaOgonek.item("ö") := "ǭ" ; o with ogonek and macron +dkCedillaOgonek.item("Ö") := "Ǭ" ; O with ogonek and macron +dkCedillaOgonek.item("r") := "ŗ" ; r with cedilla +dkCedillaOgonek.item("R") := "Ŗ" ; R with cedilla +dkCedillaOgonek.item("s") := "ş" ; s with cedilla +dkCedillaOgonek.item("S") := "Ş" ; S with cedilla +dkCedillaOgonek.item("t") := "ţ" ; t with cedilla +dkCedillaOgonek.item("T") := "Ţ" ; T with cedilla +dkCedillaOgonek.item("u") := "ų" ; u with ogonek +dkCedillaOgonek.item("U") := "Ų" ; U with ogonek +dkCedillaOgonek.item("w") := "₩" ; South Korean won +dkCedillaOgonek.item("W") := "₩" ; South Korean won +dkCedillaOgonek.item("1") := "–" ; en dash +dkCedillaOgonek.item("2") := "—" ; em dash +dkCedillaOgonek.item("3") := "―" ; horizontal bar +dkCedillaOgonek.item("4") := "‐" ; hyphen +dkCedillaOgonek.item("9") := "‒" ; figure dash +dkCedillaOgonek.item("0") := "­" ; soft hyphen +dkCedillaOgonek.item("-") := "‑" ; non-breaking hyphen +dkCedillaOgonek.item(".") := "˛" ; ogonek +dkCedillaOgonek.item(" ") := "¸" ; cedilla + + +; Dead Key : Breve/Special + +dkBreveSpecial := ComObjCreate("Scripting.Dictionary") +dkBreveSpecial.item("a") := "ă" ; a with breve +dkBreveSpecial.item("A") := "Ă" ; A with breve +dkBreveSpecial.item("d") := "ɖ" ; small letter d with tail +dkBreveSpecial.item("D") := "Ɖ" ; capital letter African D +dkBreveSpecial.item("e") := "ĕ" ; e with breve +dkBreveSpecial.item("E") := "Ĕ" ; E with breve +dkBreveSpecial.item("ë") := "ǝ" ; small turned e +dkBreveSpecial.item("Ë") := "Ǝ" ; capital reversed E +dkBreveSpecial.item("f") := "ə" ; small letter schwa (Azerbaijani) +dkBreveSpecial.item("F") := "Ə" ; capital letter schwa (Azerbaijani) +dkBreveSpecial.item("g") := "ğ" ; g with breve +dkBreveSpecial.item("G") := "Ğ" ; G with breve +dkBreveSpecial.item("é") := "ꬶ" ; cross-tailed g +dkBreveSpecial.item("h") := "ɣ" ; latin small gamma +dkBreveSpecial.item("H") := "Ɣ" ; latin capital gamma +dkBreveSpecial.item("i") := "ĭ" ; i with breve +dkBreveSpecial.item("I") := "Ĭ" ; I with breve +dkBreveSpecial.item("j") := "ij" ; ligature ij +dkBreveSpecial.item("J") := "IJ" ; ligature IJ +dkBreveSpecial.item("k") := "ĸ" ; small letter kra +dkBreveSpecial.item("n") := "ŋ" ; small letter eng(ma) +dkBreveSpecial.item("N") := "Ŋ" ; capital letter eng(ma) +dkBreveSpecial.item("o") := "ŏ" ; o with breve +dkBreveSpecial.item("O") := "Ŏ" ; O with breve +dkBreveSpecial.item("ö") := "ɔ" ; small open o +dkBreveSpecial.item("Ö") := "Ɔ" ; capital open O +dkBreveSpecial.item("s") := "ș" ; s with comma below (Romanian) +dkBreveSpecial.item("S") := "Ș" ; S with comma below (Romanian) +dkBreveSpecial.item("t") := "ț" ; t with comma below (Romanian) +dkBreveSpecial.item("T") := "Ț" ; T with comma below (Romanian) +dkBreveSpecial.item("u") := "ŭ" ; u with breve +dkBreveSpecial.item("U") := "Ŭ" ; U with breve +dkBreveSpecial.item("v") := "ʊ" ; latin small letter upsilon +dkBreveSpecial.item("V") := "Ʊ" ; latin capital letter upsilon +dkBreveSpecial.item("w") := "ƿ" ; small letter wynn +dkBreveSpecial.item("W") := "Ƿ" ; capital letter wynn +dkBreveSpecial.item("y") := "ȝ" ; small letter yogh +dkBreveSpecial.item("Y") := "Ȝ" ; capital letter yogh +dkBreveSpecial.item("3") := "ʒ" ; small letter ezh +dkBreveSpecial.item("#") := "Ʒ" ; capital letter ezh +dkBreveSpecial.item(" ") := "˘" ; breve + + +; Dead Key : Acute Accent + +dkAcuteAccent := ComObjCreate("Scripting.Dictionary") +dkAcuteAccent.item("a") := "á" ; a with acute +dkAcuteAccent.item("A") := "Á" ; A with acute +dkAcuteAccent.item("b") := "ɓ" ; b with hook +dkAcuteAccent.item("B") := "Ɓ" ; B with hook +dkAcuteAccent.item("c") := "ć" ; c with acute +dkAcuteAccent.item("C") := "Ć" ; C with acute +dkAcuteAccent.item("ç") := "ḉ" ; c with cedilla and acute +dkAcuteAccent.item("Ç") := "Ḉ" ; C with cedilla and acute +dkAcuteAccent.item("d") := "ɗ" ; d with hook +dkAcuteAccent.item("D") := "Ɗ" ; D with hook +dkAcuteAccent.item("e") := "é" ; e with acute +dkAcuteAccent.item("E") := "É" ; E with acute +dkAcuteAccent.item("f") := "ƒ" ; f with hook +dkAcuteAccent.item("F") := "Ƒ" ; F with hook +dkAcuteAccent.item("g") := "ǵ" ; g with acute +dkAcuteAccent.item("G") := "Ǵ" ; G with acute +dkAcuteAccent.item("h") := "ɦ" ; h with hook +dkAcuteAccent.item("H") := "Ɦ" ; H with hook +dkAcuteAccent.item("i") := "í" ; i with acute +dkAcuteAccent.item("I") := "Í" ; I with acute +dkAcuteAccent.item("j") := "ij" ; ligature ij +dkAcuteAccent.item("J") := "IJ" ; ligature IJ +dkAcuteAccent.item("k") := "ƙ" ; k with hook +dkAcuteAccent.item("K") := "Ƙ" ; K with hook +dkAcuteAccent.item("l") := "ĺ" ; l with acute +dkAcuteAccent.item("L") := "Ĺ" ; L with acute +dkAcuteAccent.item("m") := "ḿ" ; m with acute +dkAcuteAccent.item("M") := "Ḿ" ; M with acute +dkAcuteAccent.item("n") := "ń" ; n with acute +dkAcuteAccent.item("N") := "Ń" ; N with acute +dkAcuteAccent.item("o") := "ó" ; o with acute +dkAcuteAccent.item("O") := "Ó" ; O with acute +dkAcuteAccent.item("ö") := "ő" ; o with double acute +dkAcuteAccent.item("Ö") := "Ő" ; O with double acute +dkAcuteAccent.item("p") := "ƥ" ; p with hook +dkAcuteAccent.item("P") := "Ƥ" ; P with hook +dkAcuteAccent.item("q") := "ɋ" ; q with hook tail +dkAcuteAccent.item("Q") := "Ɋ" ; Q with hook tail +dkAcuteAccent.item("r") := "ŕ" ; r with acute +dkAcuteAccent.item("R") := "Ŕ" ; R with acute +dkAcuteAccent.item("s") := "ś" ; s with acute +dkAcuteAccent.item("S") := "Ś" ; S with acute +dkAcuteAccent.item("t") := "ƭ" ; t with hook +dkAcuteAccent.item("T") := "Ƭ" ; T with hook +dkAcuteAccent.item("u") := "ú" ; u with acute +dkAcuteAccent.item("U") := "Ú" ; U with acute +dkAcuteAccent.item("ü") := "ű" ; u with double acute +dkAcuteAccent.item("Ü") := "Ű" ; U with double acute +dkAcuteAccent.item("v") := "ʋ" ; v with hook +dkAcuteAccent.item("V") := "Ʋ" ; V with hook +dkAcuteAccent.item("w") := "ẃ" ; w with acute +dkAcuteAccent.item("W") := "Ẃ" ; W with acute +dkAcuteAccent.item("y") := "ý" ; y with acute +dkAcuteAccent.item("Y") := "Ý" ; Y with acute +dkAcuteAccent.item("z") := "ź" ; z with acute +dkAcuteAccent.item("Z") := "Ź" ; Z with acute +dkAcuteAccent.item("å") := "ǻ" ; a with ring above and acute +dkAcuteAccent.item("Å") := "Ǻ" ; A with ring above and acute +dkAcuteAccent.item("æ") := "ǽ" ; ae with acute +dkAcuteAccent.item("Æ") := "Ǽ" ; AE with acute +dkAcuteAccent.item("ø") := "ǿ" ; o with stroke and acute +dkAcuteAccent.item("Ø") := "Ǿ" ; O with stroke and acute +dkAcuteAccent.item("2") := "♫" ; beamed eighth notes +dkAcuteAccent.item("8") := "♪" ; eighth note +dkAcuteAccent.item("'") := "´" ; acute accent +dkAcuteAccent.item(" ") := "´" ; acute accent + + +; Dead Key : Diaeresis + +dkDiaeresis := ComObjCreate("Scripting.Dictionary") +dkDiaeresis.item("a") := "ä" ; a with diaeresis +dkDiaeresis.item("A") := "Ä" ; A with diaeresis +dkDiaeresis.item("e") := "ë" ; e with diaeresis +dkDiaeresis.item("E") := "Ë" ; E with diaeresis +dkDiaeresis.item("h") := "ḧ" ; h with diaeresis +dkDiaeresis.item("H") := "Ḧ" ; H with diaeresis +dkDiaeresis.item("i") := "ï" ; i with diaeresis +dkDiaeresis.item("I") := "Ï" ; I with diaeresis +dkDiaeresis.item("o") := "ö" ; o with diaeresis +dkDiaeresis.item("O") := "Ö" ; O with diaeresis +dkDiaeresis.item("s") := "ß" ; small sharp s (Eszett) +dkDiaeresis.item("S") := "ẞ" ; capital sharp S (capital Eszett) +dkDiaeresis.item("t") := "ẗ" ; t with diaeresis +dkDiaeresis.item("u") := "ü" ; u with diaeresis +dkDiaeresis.item("U") := "Ü" ; U with diaeresis +dkDiaeresis.item("w") := "ẅ" ; w with diaeresis +dkDiaeresis.item("W") := "Ẅ" ; W with diaeresis +dkDiaeresis.item("x") := "ẍ" ; x with diaeresis +dkDiaeresis.item("X") := "Ẍ" ; X with diaeresis +dkDiaeresis.item("y") := "ÿ" ; y with diaeresis +dkDiaeresis.item("Y") := "Ÿ" ; Y with diaeresis +dkDiaeresis.item("""") := "¨" ; diaeresis +dkDiaeresis.item(" ") := "¨" ; diaeresis + + +; Dead Key : Grave Accent + +dkGraveAccent := ComObjCreate("Scripting.Dictionary") +dkGraveAccent.item("a") := "à" ; a with grave +dkGraveAccent.item("A") := "À" ; A with grave +dkGraveAccent.item("e") := "è" ; e with grave +dkGraveAccent.item("E") := "È" ; E with grave +dkGraveAccent.item("i") := "ì" ; i with grave +dkGraveAccent.item("I") := "Ì" ; I with grave +dkGraveAccent.item("n") := "ǹ" ; n with grave +dkGraveAccent.item("N") := "Ǹ" ; N with grave +dkGraveAccent.item("o") := "ò" ; o with grave +dkGraveAccent.item("O") := "Ò" ; O with grave +dkGraveAccent.item("u") := "ù" ; u with grave +dkGraveAccent.item("U") := "Ù" ; U with grave +dkGraveAccent.item("w") := "ẁ" ; w with grave +dkGraveAccent.item("W") := "Ẁ" ; W with grave +dkGraveAccent.item("y") := "ỳ" ; y with grave +dkGraveAccent.item("Y") := "Ỳ" ; Y with grave +dkGraveAccent.item("ä") := "₳" ; Argentine austral +dkGraveAccent.item("Ä") := "₳" ; Argentine austral +dkGraveAccent.item("b") := "₿" ; bitcoin +dkGraveAccent.item("B") := "₿" ; bitcoin +dkGraveAccent.item("c") := "₡" ; Costa Rican colón +dkGraveAccent.item("C") := "₵" ; Ghanaian cedi +dkGraveAccent.item("ç") := "₢" ; Brazilian cruzeiro +dkGraveAccent.item("Ç") := "₢" ; Brazilian cruzeiro +dkGraveAccent.item("d") := "₫" ; Vietnamese dong +dkGraveAccent.item("D") := "₯" ; Greek drachma +dkGraveAccent.item("f") := "₣" ; French franc +dkGraveAccent.item("F") := "₣" ; French franc +dkGraveAccent.item("g") := "₲" ; Paraguayan guaraní +dkGraveAccent.item("G") := "₲" ; Paraguayan guaraní +dkGraveAccent.item("h") := "₴" ; Ukrainian hryvnia +dkGraveAccent.item("H") := "₴" ; Ukrainian hryvnia +dkGraveAccent.item("k") := "₭" ; Laotian kip +dkGraveAccent.item("K") := "₭" ; Laotian kip +dkGraveAccent.item("l") := "₺" ; Turkish lira +dkGraveAccent.item("L") := "₾" ; Georgian lari +dkGraveAccent.item("ø") := "₤" ; lira +dkGraveAccent.item("Ø") := "₤" ; lira +dkGraveAccent.item("m") := "₼" ; Azerbaijani manat +dkGraveAccent.item("M") := "₥" ; mill sign +dkGraveAccent.item("ñ") := "₦" ; Nigerian naira +dkGraveAccent.item("Ñ") := "₦" ; Nigerian naira +dkGraveAccent.item("p") := "₱" ; Philippine peso +dkGraveAccent.item("P") := "₱" ; Philippine peso +dkGraveAccent.item("r") := "₹" ; Indian rupee +dkGraveAccent.item("R") := "₽" ; Russian ruble +dkGraveAccent.item("s") := "₪" ; Israeli new shekel +dkGraveAccent.item("S") := "₪" ; Israeli new shekel +dkGraveAccent.item("t") := "₮" ; Mongolian tögrög (tugrik) +dkGraveAccent.item("T") := "₸" ; Kazakh tenge +dkGraveAccent.item("å") := "₩" ; South Korean won +dkGraveAccent.item("Å") := "₩" ; South Korean won +dkGraveAccent.item("1") := " " ; en space +dkGraveAccent.item("2") := " " ; em space +dkGraveAccent.item("3") := " " ; three-per-em space +dkGraveAccent.item("4") := " " ; four-per-em space +dkGraveAccent.item("5") := " " ; punctuation space +dkGraveAccent.item("6") := " " ; six-per-em space +dkGraveAccent.item("7") := " " ; thin space +dkGraveAccent.item("8") := " " ; hair space +dkGraveAccent.item("9") := " " ; figure space +dkGraveAccent.item("0") := "​" ; zero-width space +dkGraveAccent.item("-") := " " ; non-breaking space +dkGraveAccent.item("!") := " " ; en quad +dkGraveAccent.item("@") := " " ; em quad +dkGraveAccent.item("``") := "``" ; grave accent +dkGraveAccent.item(" ") := "``" ; grave accent + + +; Dead Key : Tilde + +dkTilde := ComObjCreate("Scripting.Dictionary") +dkTilde.item("a") := "ã" ; a with tilde +dkTilde.item("A") := "Ã" ; A with tilde +dkTilde.item("e") := "ẽ" ; e with tilde +dkTilde.item("E") := "Ẽ" ; E with tilde +dkTilde.item("i") := "ĩ" ; i with tilde +dkTilde.item("I") := "Ĩ" ; I with tilde +dkTilde.item("n") := "ñ" ; n with tilde +dkTilde.item("N") := "Ñ" ; N with tilde +dkTilde.item("o") := "õ" ; o with tilde +dkTilde.item("O") := "Õ" ; O with tilde +dkTilde.item("u") := "ũ" ; u with tilde +dkTilde.item("U") := "Ũ" ; U with tilde +dkTilde.item("v") := "ṽ" ; v with tilde +dkTilde.item("V") := "Ṽ" ; V with tilde +dkTilde.item("y") := "ỹ" ; y with tilde +dkTilde.item("Y") := "Ỹ" ; Y with tilde +dkTilde.item("~") := "~" ; tilde +dkTilde.item(" ") := "~" ; tilde + + +; Dead Key : Not Sign + +dkNotSign := ComObjCreate("Scripting.Dictionary") +dkNotSign.item("a") := "ª" ; feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("A") := "ª" ; feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("b") := "☐" ; ballot box +dkNotSign.item("B") := "☒" ; ballot box with x +dkNotSign.item("c") := "©" ; copyright sign +dkNotSign.item("C") := "¤" ; currency sign +dkNotSign.item("d") := "†" ; dagger +dkNotSign.item("D") := "‡" ; double dagger +dkNotSign.item("e") := "…" ; ellipsis +dkNotSign.item("E") := "℮" ; estimated symbol +dkNotSign.item("f") := "♀" ; Venus symbol (female) +dkNotSign.item("F") := "♀" ; Venus symbol (female) +dkNotSign.item("h") := "♡" ; white heart suit +dkNotSign.item("H") := "♥" ; black heart suit +dkNotSign.item("l") := "ℓ" ; script small l +dkNotSign.item("L") := "ℓ" ; script small l +dkNotSign.item("m") := "♂" ; Mars symbol (male) +dkNotSign.item("M") := "♂" ; Mars symbol (male) +dkNotSign.item("n") := "¬" ; not sign +dkNotSign.item("N") := "¬" ; not sign +dkNotSign.item("o") := "º" ; masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("O") := "º" ; masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("p") := "¶" ; pilcrow sign +dkNotSign.item("P") := "℗" ; sound recording copyright +dkNotSign.item("r") := "®" ; registered sign +dkNotSign.item("R") := "®" ; registered sign +dkNotSign.item("s") := "§" ; section sign +dkNotSign.item("S") := "℠" ; service mark +dkNotSign.item("t") := "™" ; trademark symbol +dkNotSign.item("T") := "™" ; trademark symbol +dkNotSign.item("v") := "✓" ; check mark +dkNotSign.item("V") := "✔" ; heavy check mark +dkNotSign.item("w") := "☑" ; ballot box with check +dkNotSign.item("W") := "☙" ; reversed rotated floral heart bullet +dkNotSign.item("x") := "✗" ; ballot x +dkNotSign.item("X") := "✘" ; heavy ballot x +dkNotSign.item("y") := "☺" ; white smiling face +dkNotSign.item("Y") := "☻" ; black smiling face +dkNotSign.item("1") := "←" ; 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("\") := "⁞" ; 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("z") := "↯" ; downwards zigzag arrow +dkMathSymbols.item("Z") := "ℤ" ; whole numbers +dkMathSymbols.item("1") := "≠" ; not equal to +dkMathSymbols.item("!") := "≠" ; not equal to +dkMathSymbols.item("2") := "√" ; square root +dkMathSymbols.item("3") := "∛" ; cube root +dkMathSymbols.item("4") := "∜" ; fourth root +dkMathSymbols.item("5") := "‰" ; per mille sign +dkMathSymbols.item("%") := "‱" ; per ten thousand sign +dkMathSymbols.item("6") := "℘" ; script capital p +dkMathSymbols.item("^") := "℘" ; script capital p +dkMathSymbols.item("7") := "∧" ; logical and +dkMathSymbols.item("&") := "∧" ; logical and +dkMathSymbols.item("8") := "⊗" ; tensor product +dkMathSymbols.item("*") := "⊗" ; tensor product +dkMathSymbols.item("9") := "∟" ; right angle +dkMathSymbols.item("0") := "∠" ; angle symbol +dkMathSymbols.item(")") := "∡" ; measured angle +dkMathSymbols.item("``") := "≈" ; almost equal to +dkMathSymbols.item("~") := "≈" ; almost equal to +dkMathSymbols.item(",") := "≤" ; less-than or equal to +dkMathSymbols.item("<") := "≤" ; less-than or equal to +dkMathSymbols.item(".") := "≥" ; greater-than or equal to +dkMathSymbols.item(">") := "≥" ; greater-than or equal to +dkMathSymbols.item("-") := "±" ; plus-minus sign +dkMathSymbols.item("_") := "⊖" ; circled minus +dkMathSymbols.item("=") := "≝" ; equal to by definition +dkMathSymbols.item("+") := "⊕" ; exclusive or +dkMathSymbols.item(";") := "∵" ; because sign +dkMathSymbols.item(":") := "∴" ; therefore sign +dkMathSymbols.item("\") := "∨" ; logical or +dkMathSymbols.item("|") := "∨" ; logical or +dkMathSymbols.item(" ") := "√" ; square root + + +; Configuration : Right Alt on US QWERTY + +>!a:: + if GetKeyState("CapsLock", "T") + Send Ä ; A with diaeresis + else + Send ä ; a with diaeresis +return +>!+a:: + if GetKeyState("CapsLock", "T") + Send ä ; a with diaeresis + else + Send Ä ; A with diaeresis +return + +>!z:: + if GetKeyState("CapsLock", "T") + Send À ; A with grave + else + Send à ; a with grave +return +>!+z:: + if GetKeyState("CapsLock", "T") + Send à ; a with grave + else + Send À ; A with grave +return + +>!x:: + if GetKeyState("CapsLock", "T") + Send Á ; A with acute + else + Send á ; a with acute +return +>!+x:: + if GetKeyState("CapsLock", "T") + Send á ; a with acute + else + Send Á ; A with acute +return + +>!q:: + if GetKeyState("CapsLock", "T") + Send Æ ; letter AE + else + Send æ ; letter ae +return +>!+q:: + if GetKeyState("CapsLock", "T") + Send æ ; letter ae + else + Send Æ ; letter AE +return + +>!w:: + if GetKeyState("CapsLock", "T") + Send Å ; A with ring above + else + Send å ; a with ring above +return +>!+w:: + if GetKeyState("CapsLock", "T") + Send å ; a with ring above + else + Send Å ; A with ring above +return + +>!c:: + if GetKeyState("CapsLock", "T") + Send Ç ; C with cedilla + else + Send ç ; c with cedilla +return +>!+c:: + if GetKeyState("CapsLock", "T") + Send ç ; c with cedilla + else + Send Ç ; C with cedilla +return + +>!d:: + if GetKeyState("CapsLock", "T") + Send Ð ; capital letter eth + else + Send ð ; small letter eth +return +>!+d:: + if GetKeyState("CapsLock", "T") + Send ð ; small letter eth + else + Send Ð ; capital letter eth +return + +>!e:: + if GetKeyState("CapsLock", "T") + Send Ë ; E with diaeresis + else + Send ë ; e with diaeresis +return +>!+e:: + if GetKeyState("CapsLock", "T") + Send ë ; e with diaeresis + else + Send Ë ; E with diaeresis +return + +>!f:: + if GetKeyState("CapsLock", "T") + Send È ; E with grave + else + Send è ; e with grave +return +>!+f:: + if GetKeyState("CapsLock", "T") + Send è ; e with grave + else + Send È ; E with grave +return + +>!g:: + if GetKeyState("CapsLock", "T") + Send É ; E with acute + else + Send é ; e with acute +return +>!+g:: + if GetKeyState("CapsLock", "T") + Send é ; e with acute + else + Send É ; E with acute +return + +>!i:: + if GetKeyState("CapsLock", "T") + Send Ï ; I with diaeresis + else + Send ï ; i with diaeresis +return +>!+i:: + if GetKeyState("CapsLock", "T") + Send ï ; i with diaeresis + else + Send Ï ; I with diaeresis +return + +>!v:: + if GetKeyState("CapsLock", "T") + Send Ì ; I with grave + else + Send ì ; i with grave +return +>!+v:: + if GetKeyState("CapsLock", "T") + Send ì ; i with grave + else + Send Ì ; I with grave +return + +>!b:: + if GetKeyState("CapsLock", "T") + Send Í ; I with acute + else + Send í ; i with acute +return +>!+b:: + if GetKeyState("CapsLock", "T") + Send í ; i with acute + else + Send Í ; I with acute +return + +>!o:: + if GetKeyState("CapsLock", "T") + Send Ö ; O with diaeresis + else + Send ö ; o with diaeresis +return +>!+o:: + if GetKeyState("CapsLock", "T") + Send ö ; o with diaeresis + else + Send Ö ; O with diaeresis +return + +>!,:: + if GetKeyState("CapsLock", "T") + Send Ò ; O with grave + else + Send ò ; o with grave +return +>!<:: + if GetKeyState("CapsLock", "T") + Send ò ; o with grave + else + Send Ò ; O with grave +return + +>!.:: + if GetKeyState("CapsLock", "T") + Send Ó ; O with acute + else + Send ó ; o with acute +return +>!>:: + if GetKeyState("CapsLock", "T") + Send ó ; o with acute + else + Send Ó ; O with acute +return + +>!k:: + if GetKeyState("CapsLock", "T") + Send Œ ; ligature OE + else + Send œ ; ligature oe +return +>!+k:: + if GetKeyState("CapsLock", "T") + Send œ ; ligature oe + else + Send Œ ; ligature OE +return + +>!l:: + if GetKeyState("CapsLock", "T") + Send Ø ; O with stroke + else + Send ø ; o with stroke +return +>!+l:: + if GetKeyState("CapsLock", "T") + Send ø ; o with stroke + else + Send Ø ; O with stroke +return + +>!n:: + if GetKeyState("CapsLock", "T") + Send Ñ ; N with tilde + else + Send ñ ; n with tilde +return +>!+n:: + if GetKeyState("CapsLock", "T") + Send ñ ; n with tilde + else + Send Ñ ; N with tilde +return + +>!t:: + if GetKeyState("CapsLock", "T") + Send Þ ; capital letter thorn + else + Send þ ; small letter thorn +return +>!+t:: + if GetKeyState("CapsLock", "T") + Send þ ; small letter thorn + else + Send Þ ; capital letter thorn +return + +>!u:: + if GetKeyState("CapsLock", "T") + Send Ü ; U with diaeresis + else + Send ü ; u with diaeresis +return +>!+u:: + if GetKeyState("CapsLock", "T") + Send ü ; u with diaeresis + else + Send Ü ; U with diaeresis +return + +>!h:: + if GetKeyState("CapsLock", "T") + Send Ù ; U with grave + else + Send ù ; u with grave +return +>!+h:: + if GetKeyState("CapsLock", "T") + Send ù ; u with grave + else + Send Ù ; U with grave +return + +>!j:: + if GetKeyState("CapsLock", "T") + Send Ú ; U with acute + else + Send ú ; u with acute +return +>!+j:: + if GetKeyState("CapsLock", "T") + Send ú ; u with acute + else + Send Ú ; U with acute +return + +>!y:: + if GetKeyState("CapsLock", "T") + Send Ÿ ; Y with diaeresis + else + Send ÿ ; y with diaeresis +return +>!+y:: + if GetKeyState("CapsLock", "T") + Send ÿ ; y with diaeresis + else + Send Ÿ ; Y with diaeresis +return + +>!r:: + if GetKeyState("CapsLock", "T") + Send Ý ; Y with acute + else + Send ý ; y with acute +return +>!+r:: + if GetKeyState("CapsLock", "T") + Send ý ; y with acute + else + Send Ý ; Y with acute +return + +>!p::Send † ; dagger +>!+p::Send ‡ ; double dagger + +>!s::Send ß ; small sharp s (Eszett) +>!+s::Send § ; section sign + +>!/::Send ¿ ; inverted question mark +>!?::Send ¶ ; pilcrow sign + +>!1::Send ¡ ; inverted exclamation mark +>!+1::Send ¹ ; superscript 1 + +>!2::Send © ; copyright sign +>!+2::Send ² ; superscript 2 + +>!3::Send ± ; plus-minus sign +>!+3::Send ³ ; superscript 3 + +>!4::Send £ ; pound sign +>!+4::Send ¥ ; yen sign + +>!5::Send € ; euro sign +>!+5::Send ¢ ; cent sign (dollar) + +>!8::Send „ ; double low-9 quotation mark +>!+8::Send ‚ ; single low-9 quotation mark + +>!9::Send “ ; left double quotation mark +>!+9::Send ‘ ; left single quotation mark + +>!0::Send ” ; right double quotation mark +>!+0::Send ’ ; right single quotation mark + +>!=::Send × ; multiplication sign +>!+=::Send ÷ ; division sign + +>![::Send « ; left-pointing double angle quotation mark +>!{::Send ‹ ; left-pointing single angle quotation mark + +>!]::Send » ; right-pointing double angle quotation mark +>!}::Send › ; right-pointing single angle quotation mark + +>!;::Send ° ; degree sign +>!+;::Send · ; middle dot + +>!6:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCircumflex.item(key) +return +>!+6:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCaron.item(key) +return + +>!7:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkRingDotAbove.item(key) +return +>!+7:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkMacronStroke.item(key) +return + +>!-:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCedillaOgonek.item(key) +return +>!_:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkBreveSpecial.item(key) +return + +>!':: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkAcuteAccent.item(key) +return +>!":: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkDiaeresis.item(key) +return + +>!`:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkGraveAccent.item(key) +return +>!~:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkTilde.item(key) +return + +>!\:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkNotSign.item(key) +return +>!|:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkBrokenBar.item(key) +return + +>!m:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkGreekAlphabet.item(key) +return +>!+m:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkMathSymbols.item(key) +return + +>!space::Send   ; non-breaking space +>!+space::Send   ; non-breaking space diff --git a/UltimateKEYS - 2020-04-04.klc b/UltimateKEYS - 2020-04-04.klc new file mode 100644 index 0000000000000000000000000000000000000000..db33093b821df754e5c97374587520c7e6359d3a GIT binary patch literal 73046 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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("\") := "∨" ; 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-04.klc b/UltimateKEYS SW - 2020-04-04.klc new file mode 100644 index 0000000000000000000000000000000000000000..069bef4c065b0d76a552a070002463094060bbc9 GIT binary patch literal 75410 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