From 93c9ae25583727468d359a1a658283704e9e9d10 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Wed, 25 Mar 2020 08:59:32 +0100 Subject: [PATCH 1/1] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The letter ʉ/Ʉ (u/U with bar) has been added. --- UltimateKEYS - 2020-03-25.ahk | 1204 +++++++++++++++++++++++++++++++++ UltimateKEYS - 2020-03-25.klc | Bin 0 -> 71588 bytes 2 files changed, 1204 insertions(+) create mode 100644 UltimateKEYS - 2020-03-25.ahk create mode 100644 UltimateKEYS - 2020-03-25.klc diff --git a/UltimateKEYS - 2020-03-25.ahk b/UltimateKEYS - 2020-03-25.ahk new file mode 100644 index 0000000..18c22b2 --- /dev/null +++ b/UltimateKEYS - 2020-03-25.ahk @@ -0,0 +1,1204 @@ +; UltimateKEYS - 2020-03-25.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 ring above +dkRingDotAbove.item("A") := "Å" ; A with ring above +dkRingDotAbove.item("ä") := "ȧ" ; a with dot above +dkRingDotAbove.item("Ä") := "Ȧ" ; a with dot 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 ring above +dkRingDotAbove.item("å") := "ẇ" ; w with dot above +dkRingDotAbove.item("Å") := "Ẇ" ; W with dot above +dkRingDotAbove.item("x") := "ẋ" ; x with dot above +dkRingDotAbove.item("X") := "Ẋ" ; X with dot above +dkRingDotAbove.item("y") := "ẙ" ; y with ring above +dkRingDotAbove.item("ÿ") := "ẏ" ; y with dot above +dkRingDotAbove.item("Ÿ") := "Ẏ" ; Y with dot 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("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("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("ü") := "ʊ" ; latin small letter upsilon +dkBreveSpecial.item("Ü") := "Ʊ" ; 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("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("e") := "é" ; e with acute +dkAcuteAccent.item("E") := "É" ; E with acute +dkAcuteAccent.item("g") := "ǵ" ; g with acute +dkAcuteAccent.item("G") := "Ǵ" ; G with acute +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 acute +dkAcuteAccent.item("K") := "Ḱ" ; K with acute +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 acute +dkAcuteAccent.item("P") := "Ṕ" ; P with acute +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("u") := "ú" ; u with acute +dkAcuteAccent.item("U") := "Ú" ; U with acute +dkAcuteAccent.item("ü") := "ű" ; u with double acute +dkAcuteAccent.item("Ü") := "Ű" ; U with double acute +dkAcuteAccent.item("w") := "ẃ" ; w with acute +dkAcuteAccent.item("W") := "Ẃ" ; W with acute +dkAcuteAccent.item("y") := "ý" ; y with acute +dkAcuteAccent.item("Y") := "Ý" ; Y with acute +dkAcuteAccent.item("z") := "ź" ; z with acute +dkAcuteAccent.item("Z") := "Ź" ; Z with acute +dkAcuteAccent.item("å") := "ǻ" ; a with ring above and acute +dkAcuteAccent.item("Å") := "Ǻ" ; A with ring above and acute +dkAcuteAccent.item("æ") := "ǽ" ; ae with acute +dkAcuteAccent.item("Æ") := "Ǽ" ; AE with acute +dkAcuteAccent.item("ø") := "ǿ" ; o with stroke and acute +dkAcuteAccent.item("Ø") := "Ǿ" ; O with stroke and acute +dkAcuteAccent.item("2") := "♫" ; beamed eighth notes +dkAcuteAccent.item("8") := "♪" ; eighth note +dkAcuteAccent.item("'") := "´" ; acute accent +dkAcuteAccent.item(" ") := "´" ; acute accent + + +; Dead Key : Diaeresis + +dkDiaeresis := ComObjCreate("Scripting.Dictionary") +dkDiaeresis.item("a") := "ä" ; a with diaeresis +dkDiaeresis.item("A") := "Ä" ; A with diaeresis +dkDiaeresis.item("e") := "ë" ; e with diaeresis +dkDiaeresis.item("E") := "Ë" ; E with diaeresis +dkDiaeresis.item("h") := "ḧ" ; h with diaeresis +dkDiaeresis.item("H") := "Ḧ" ; H with diaeresis +dkDiaeresis.item("i") := "ï" ; i with diaeresis +dkDiaeresis.item("I") := "Ï" ; I with diaeresis +dkDiaeresis.item("o") := "ö" ; o with diaeresis +dkDiaeresis.item("O") := "Ö" ; O with diaeresis +dkDiaeresis.item("s") := "ß" ; small sharp s (Eszett) +dkDiaeresis.item("S") := "ẞ" ; capital sharp S (capital Eszett) +dkDiaeresis.item("t") := "ẗ" ; t with diaeresis +dkDiaeresis.item("u") := "ü" ; u with diaeresis +dkDiaeresis.item("U") := "Ü" ; U with diaeresis +dkDiaeresis.item("w") := "ẅ" ; w with diaeresis +dkDiaeresis.item("W") := "Ẅ" ; W with diaeresis +dkDiaeresis.item("x") := "ẍ" ; x with diaeresis +dkDiaeresis.item("X") := "Ẍ" ; X with diaeresis +dkDiaeresis.item("y") := "ÿ" ; y with diaeresis +dkDiaeresis.item("Y") := "Ÿ" ; Y with diaeresis +dkDiaeresis.item("""") := "¨" ; diaeresis +dkDiaeresis.item(" ") := "¨" ; diaeresis + + +; Dead Key : Grave Accent + +dkGraveAccent := ComObjCreate("Scripting.Dictionary") +dkGraveAccent.item("a") := "à" ; a with grave +dkGraveAccent.item("A") := "À" ; A with grave +dkGraveAccent.item("e") := "è" ; e with grave +dkGraveAccent.item("E") := "È" ; E with grave +dkGraveAccent.item("i") := "ì" ; i with grave +dkGraveAccent.item("I") := "Ì" ; I with grave +dkGraveAccent.item("n") := "ǹ" ; n with grave +dkGraveAccent.item("N") := "Ǹ" ; N with grave +dkGraveAccent.item("o") := "ò" ; o with grave +dkGraveAccent.item("O") := "Ò" ; O with grave +dkGraveAccent.item("u") := "ù" ; u with grave +dkGraveAccent.item("U") := "Ù" ; U with grave +dkGraveAccent.item("w") := "ẁ" ; w with grave +dkGraveAccent.item("W") := "Ẁ" ; W with grave +dkGraveAccent.item("y") := "ỳ" ; y with grave +dkGraveAccent.item("Y") := "Ỳ" ; Y with grave +dkGraveAccent.item("ä") := "₳" ; Argentine austral +dkGraveAccent.item("Ä") := "₳" ; Argentine austral +dkGraveAccent.item("b") := "₿" ; bitcoin +dkGraveAccent.item("B") := "₿" ; bitcoin +dkGraveAccent.item("c") := "₡" ; Costa Rican colón +dkGraveAccent.item("C") := "₵" ; Ghanaian cedi +dkGraveAccent.item("ç") := "₢" ; Brazilian cruzeiro +dkGraveAccent.item("Ç") := "₢" ; Brazilian cruzeiro +dkGraveAccent.item("d") := "₫" ; Vietnamese dong +dkGraveAccent.item("D") := "₯" ; Greek drachma +dkGraveAccent.item("f") := "₣" ; French franc +dkGraveAccent.item("F") := "₣" ; French franc +dkGraveAccent.item("g") := "₲" ; Paraguayan guaraní +dkGraveAccent.item("G") := "₲" ; Paraguayan guaraní +dkGraveAccent.item("h") := "₴" ; Ukrainian hryvnia +dkGraveAccent.item("H") := "₴" ; Ukrainian hryvnia +dkGraveAccent.item("k") := "₭" ; Laotian kip +dkGraveAccent.item("K") := "₭" ; Laotian kip +dkGraveAccent.item("l") := "₺" ; Turkish lira +dkGraveAccent.item("L") := "₾" ; Georgian lari +dkGraveAccent.item("ø") := "₤" ; lira +dkGraveAccent.item("Ø") := "₤" ; lira +dkGraveAccent.item("m") := "₼" ; Azerbaijani manat +dkGraveAccent.item("M") := "₥" ; mill sign +dkGraveAccent.item("ñ") := "₦" ; Nigerian naira +dkGraveAccent.item("Ñ") := "₦" ; Nigerian naira +dkGraveAccent.item("p") := "₱" ; Philippine peso +dkGraveAccent.item("P") := "₱" ; Philippine peso +dkGraveAccent.item("r") := "₹" ; Indian rupee +dkGraveAccent.item("R") := "₽" ; Russian ruble +dkGraveAccent.item("s") := "₪" ; Israeli new shekel +dkGraveAccent.item("S") := "₪" ; Israeli new shekel +dkGraveAccent.item("t") := "₮" ; Mongolian tögrög (tugrik) +dkGraveAccent.item("T") := "₸" ; Kazakh tenge +dkGraveAccent.item("å") := "₩" ; South Korean won +dkGraveAccent.item("Å") := "₩" ; South Korean won +dkGraveAccent.item("1") := " " ; en space +dkGraveAccent.item("2") := " " ; em space +dkGraveAccent.item("3") := " " ; three-per-em space +dkGraveAccent.item("4") := " " ; four-per-em space +dkGraveAccent.item("5") := " " ; punctuation space +dkGraveAccent.item("6") := " " ; six-per-em space +dkGraveAccent.item("7") := " " ; thin space +dkGraveAccent.item("8") := " " ; hair space +dkGraveAccent.item("9") := " " ; figure space +dkGraveAccent.item("0") := "​" ; zero-width space +dkGraveAccent.item("-") := " " ; non-breaking space +dkGraveAccent.item("!") := " " ; en quad +dkGraveAccent.item("@") := " " ; em quad +dkGraveAccent.item("``") := "``" ; grave accent +dkGraveAccent.item(" ") := "``" ; grave accent + + +; Dead Key : Tilde + +dkTilde := ComObjCreate("Scripting.Dictionary") +dkTilde.item("a") := "ã" ; a with tilde +dkTilde.item("A") := "Ã" ; A with tilde +dkTilde.item("e") := "ẽ" ; e with tilde +dkTilde.item("E") := "Ẽ" ; E with tilde +dkTilde.item("i") := "ĩ" ; i with tilde +dkTilde.item("I") := "Ĩ" ; I with tilde +dkTilde.item("n") := "ñ" ; n with tilde +dkTilde.item("N") := "Ñ" ; N with tilde +dkTilde.item("o") := "õ" ; o with tilde +dkTilde.item("O") := "Õ" ; O with tilde +dkTilde.item("u") := "ũ" ; u with tilde +dkTilde.item("U") := "Ũ" ; U with tilde +dkTilde.item("v") := "ṽ" ; v with tilde +dkTilde.item("V") := "Ṽ" ; V with tilde +dkTilde.item("y") := "ỹ" ; y with tilde +dkTilde.item("Y") := "Ỹ" ; Y with tilde +dkTilde.item("~") := "~" ; tilde +dkTilde.item(" ") := "~" ; tilde + + +; Dead Key : Not Sign + +dkNotSign := ComObjCreate("Scripting.Dictionary") +dkNotSign.item("a") := "ª" ; feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("A") := "ª" ; feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("b") := "☐" ; ballot box +dkNotSign.item("B") := "☒" ; ballot box with x +dkNotSign.item("c") := "©" ; copyright sign +dkNotSign.item("C") := "¤" ; currency sign +dkNotSign.item("d") := "†" ; dagger +dkNotSign.item("D") := "‡" ; double dagger +dkNotSign.item("e") := "…" ; ellipsis +dkNotSign.item("E") := "℮" ; estimated symbol +dkNotSign.item("f") := "♀" ; Venus symbol (female) +dkNotSign.item("F") := "♀" ; Venus symbol (female) +dkNotSign.item("h") := "♡" ; white heart suit +dkNotSign.item("H") := "♥" ; black heart suit +dkNotSign.item("l") := "ℓ" ; script small l +dkNotSign.item("L") := "ℓ" ; script small l +dkNotSign.item("m") := "♂" ; Mars symbol (male) +dkNotSign.item("M") := "♂" ; Mars symbol (male) +dkNotSign.item("n") := "¬" ; not sign +dkNotSign.item("N") := "¬" ; not sign +dkNotSign.item("o") := "º" ; masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("O") := "º" ; masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkNotSign.item("p") := "¶" ; pilcrow sign +dkNotSign.item("P") := "℗" ; sound recording copyright +dkNotSign.item("r") := "®" ; registered sign +dkNotSign.item("R") := "®" ; registered sign +dkNotSign.item("s") := "§" ; section sign +dkNotSign.item("S") := "℠" ; service mark +dkNotSign.item("t") := "™" ; trademark symbol +dkNotSign.item("T") := "™" ; trademark symbol +dkNotSign.item("v") := "✓" ; check mark +dkNotSign.item("V") := "✔" ; heavy check mark +dkNotSign.item("w") := "☑" ; ballot box with check +dkNotSign.item("W") := "☙" ; reversed rotated floral heart bullet +dkNotSign.item("x") := "✗" ; ballot x +dkNotSign.item("X") := "✘" ; heavy ballot x +dkNotSign.item("y") := "☺" ; white smiling face +dkNotSign.item("Y") := "☻" ; black smiling face +dkNotSign.item("1") := "№" ; numero sign +dkNotSign.item("2") := "½" ; vulgar fraction 1/2 +dkNotSign.item("3") := "⅓" ; vulgar fraction 1/3 +dkNotSign.item("4") := "¼" ; vulgar fraction 1/4 +dkNotSign.item("5") := "⅔" ; vulgar fraction 2/3 +dkNotSign.item("6") := "¾" ; vulgar fraction 3/4 +dkNotSign.item("7") := "⅛" ; vulgar fraction 1/8 +dkNotSign.item("8") := "⅜" ; vulgar fraction 3/8 +dkNotSign.item("9") := "⅝" ; vulgar fraction 5/8 +dkNotSign.item("0") := "⅞" ; vulgar fraction 7/8 +dkNotSign.item(".") := "•" ; bullet +dkNotSign.item("-") := "⁃" ; hyphen bullet +dkNotSign.item("\") := "⁞" ; vertical four dots +dkNotSign.item("|") := "⁞" ; vertical four dots +dkNotSign.item(" ") := "¬" ; not sign + + +; Dead Key : Broken Bar + +dkBrokenBar := ComObjCreate("Scripting.Dictionary") +dkBrokenBar.item("b") := "ɓ" ; b with hook +dkBrokenBar.item("B") := "Ɓ" ; B with hook +dkBrokenBar.item("c") := "ƈ" ; c with hook +dkBrokenBar.item("C") := "Ƈ" ; C with hook +dkBrokenBar.item("d") := "ɗ" ; d with hook +dkBrokenBar.item("D") := "Ɗ" ; D with hook +dkBrokenBar.item("e") := "ɛ" ; small open e (latin small epsilon) +dkBrokenBar.item("E") := "Ɛ" ; capital open E (latin capital epsilon) +dkBrokenBar.item("f") := "ƒ" ; f with hook +dkBrokenBar.item("F") := "Ƒ" ; F with hook +dkBrokenBar.item("g") := "ɠ" ; g with hook +dkBrokenBar.item("G") := "Ɠ" ; G with hook +dkBrokenBar.item("h") := "❦" ; floral heart +dkBrokenBar.item("H") := "❧" ; rotated floral heart bullet +dkBrokenBar.item("k") := "ƙ" ; k with hook +dkBrokenBar.item("K") := "Ƙ" ; K 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 hook +dkBrokenBar.item("P") := "Ƥ" ; P with hook +dkBrokenBar.item("s") := "ʃ" ; small letter esh +dkBrokenBar.item("S") := "Ʃ" ; capital letter esh +dkBrokenBar.item("ß") := "ſ" ; small long s +dkBrokenBar.item("t") := "ƭ" ; t with hook +dkBrokenBar.item("T") := "Ƭ" ; T with hook +dkBrokenBar.item("u") := "ư" ; u with horn +dkBrokenBar.item("U") := "Ư" ; U with horn +dkBrokenBar.item("v") := "ʋ" ; v with hook +dkBrokenBar.item("V") := "Ʋ" ; V with hook +dkBrokenBar.item("w") := "ⱳ" ; w with hook +dkBrokenBar.item("W") := "Ⱳ" ; W with hook +dkBrokenBar.item("y") := "ƴ" ; y with hook +dkBrokenBar.item("Y") := "Ƴ" ; Y with hook +dkBrokenBar.item("z") := "ȥ" ; z with hook +dkBrokenBar.item("Z") := "Ȥ" ; Z with hook +dkBrokenBar.item("1") := "←" ; leftwards arrow +dkBrokenBar.item("2") := "↓" ; downwards arrow +dkBrokenBar.item("3") := "↑" ; upwards arrow +dkBrokenBar.item("4") := "→" ; rightwards arrow +dkBrokenBar.item("5") := "↖" ; north west arrow +dkBrokenBar.item("6") := "↙" ; south west arrow +dkBrokenBar.item("7") := "↗" ; north east arrow +dkBrokenBar.item("8") := "↘" ; south east arrow +dkBrokenBar.item("9") := "↕" ; up down arrow +dkBrokenBar.item("0") := "↨" ; up down arrow with base +dkBrokenBar.item("=") := "↔" ; left right arrow +dkBrokenBar.item("!") := "⇐" ; leftwards double arrow +dkBrokenBar.item("@") := "⇓" ; downwards double arrow +dkBrokenBar.item("#") := "⇑" ; upwards double arrow +dkBrokenBar.item("$") := "⇒" ; rightwards double arrow +dkBrokenBar.item("%") := "⇖" ; north west double arrow +dkBrokenBar.item("^") := "⇙" ; south west double arrow +dkBrokenBar.item("&") := "⇗" ; north east double arrow +dkBrokenBar.item("*") := "⇘" ; south east double arrow +dkBrokenBar.item("(") := "⇕" ; up down double arrow +dkBrokenBar.item(")") := "↲" ; downwards arrow with tip leftwards +dkBrokenBar.item("+") := "⇔" ; left right double arrow +dkBrokenBar.item("\") := "¦" ; broken bar +dkBrokenBar.item("|") := "¦" ; broken bar +dkBrokenBar.item(" ") := "¦" ; broken bar + + +; Dead Key : Greek Alphabet + +dkGreekAlphabet := ComObjCreate("Scripting.Dictionary") +dkGreekAlphabet.item("a") := "α" ; small alpha +dkGreekAlphabet.item("A") := "Α" ; capital alpha +dkGreekAlphabet.item("b") := "β" ; small beta +dkGreekAlphabet.item("B") := "Β" ; capital beta +dkGreekAlphabet.item("v") := "β" ; small beta +dkGreekAlphabet.item("V") := "Β" ; capital beta +dkGreekAlphabet.item("g") := "γ" ; small gamma +dkGreekAlphabet.item("G") := "Γ" ; capital gamma +dkGreekAlphabet.item("d") := "δ" ; small delta +dkGreekAlphabet.item("D") := "Δ" ; capital delta +dkGreekAlphabet.item("e") := "ε" ; small epsilon +dkGreekAlphabet.item("E") := "Ε" ; capital epsilon +dkGreekAlphabet.item("z") := "ζ" ; small zeta +dkGreekAlphabet.item("Z") := "Ζ" ; capital zeta +dkGreekAlphabet.item("h") := "η" ; small eta +dkGreekAlphabet.item("H") := "Η" ; capital eta +dkGreekAlphabet.item("j") := "θ" ; small theta +dkGreekAlphabet.item("J") := "Θ" ; capital theta +dkGreekAlphabet.item("i") := "ι" ; small iota +dkGreekAlphabet.item("I") := "Ι" ; capital iota +dkGreekAlphabet.item("k") := "κ" ; small kappa +dkGreekAlphabet.item("K") := "Κ" ; capital kappa +dkGreekAlphabet.item("l") := "λ" ; small lambda +dkGreekAlphabet.item("L") := "Λ" ; capital lambda +dkGreekAlphabet.item("m") := "μ" ; small mu +dkGreekAlphabet.item("M") := "Μ" ; capital mu +dkGreekAlphabet.item("n") := "ν" ; small nu +dkGreekAlphabet.item("N") := "Ν" ; capital nu +dkGreekAlphabet.item("x") := "ξ" ; small xi +dkGreekAlphabet.item("X") := "Ξ" ; capital xi +dkGreekAlphabet.item("o") := "ο" ; small omikron +dkGreekAlphabet.item("O") := "Ο" ; capital omikron +dkGreekAlphabet.item("p") := "π" ; small pi +dkGreekAlphabet.item("P") := "Π" ; capital pi +dkGreekAlphabet.item("r") := "ρ" ; small rho +dkGreekAlphabet.item("R") := "Ρ" ; capital rho +dkGreekAlphabet.item("s") := "σ" ; small sigma +dkGreekAlphabet.item("S") := "Σ" ; capital sigma +dkGreekAlphabet.item(",") := "ς" ; small sigma, in word-final position +dkGreekAlphabet.item("ß") := "ς" ; small sigma, in word-final position +dkGreekAlphabet.item("t") := "τ" ; small tau +dkGreekAlphabet.item("T") := "Τ" ; capital tau +dkGreekAlphabet.item("u") := "υ" ; small upsilon +dkGreekAlphabet.item("U") := "Υ" ; capital upsilon +dkGreekAlphabet.item("y") := "υ" ; small upsilon +dkGreekAlphabet.item("Y") := "Υ" ; capital upsilon +dkGreekAlphabet.item("f") := "φ" ; small phi +dkGreekAlphabet.item("F") := "Φ" ; capital phi +dkGreekAlphabet.item("c") := "χ" ; small chi +dkGreekAlphabet.item("C") := "Χ" ; capital chi +dkGreekAlphabet.item("w") := "ψ" ; small psi +dkGreekAlphabet.item("W") := "Ψ" ; capital psi +dkGreekAlphabet.item("q") := "ω" ; small omega +dkGreekAlphabet.item("Q") := "Ω" ; capital omega +dkGreekAlphabet.item("1") := "¹" ; superscript 1 +dkGreekAlphabet.item("2") := "²" ; superscript 2 +dkGreekAlphabet.item("3") := "³" ; superscript 3 +dkGreekAlphabet.item("4") := "⁴" ; superscript 4 +dkGreekAlphabet.item("5") := "⁵" ; superscript 5 +dkGreekAlphabet.item("6") := "⁶" ; superscript 6 +dkGreekAlphabet.item("7") := "⁷" ; superscript 7 +dkGreekAlphabet.item("8") := "⁸" ; superscript 8 +dkGreekAlphabet.item("9") := "⁹" ; superscript 9 +dkGreekAlphabet.item("0") := "⁰" ; superscript 0 +dkGreekAlphabet.item("-") := "⁻" ; superscript - +dkGreekAlphabet.item("=") := "⁼" ; superscript = +dkGreekAlphabet.item("+") := "⁺" ; superscript + +dkGreekAlphabet.item("[") := "⁽" ; superscript ( +dkGreekAlphabet.item("]") := "⁾" ; superscript ) +dkGreekAlphabet.item("!") := "₁" ; subscript 1 +dkGreekAlphabet.item("@") := "₂" ; subscript 2 +dkGreekAlphabet.item("#") := "₃" ; subscript 3 +dkGreekAlphabet.item("$") := "₄" ; subscript 4 +dkGreekAlphabet.item("%") := "₅" ; subscript 5 +dkGreekAlphabet.item("^") := "₆" ; subscript 6 +dkGreekAlphabet.item("&") := "₇" ; subscript 7 +dkGreekAlphabet.item("*") := "₈" ; subscript 8 +dkGreekAlphabet.item("(") := "₉" ; subscript 9 +dkGreekAlphabet.item(")") := "₀" ; subscript 0 +dkGreekAlphabet.item(";") := "₋" ; subscript - +dkGreekAlphabet.item("'") := "₌" ; subscript = +dkGreekAlphabet.item("""") := "₊" ; subscript + +dkGreekAlphabet.item("{") := "₍" ; subscript ( +dkGreekAlphabet.item("}") := "₎" ; subscript ) +dkGreekAlphabet.item(".") := "µ" ; micro sign +dkGreekAlphabet.item(" ") := "μ" ; small mu + + +; Dead Key : Math Symbols + +dkMathSymbols := ComObjCreate("Scripting.Dictionary") +dkMathSymbols.item("a") := "∀" ; for all +dkMathSymbols.item("A") := "∀" ; for all +dkMathSymbols.item("b") := "⊆" ; subset of or equal to +dkMathSymbols.item("B") := "⊇" ; superset of or equal to +dkMathSymbols.item("c") := "∝" ; proportional to +dkMathSymbols.item("C") := "ℂ" ; complex numbers +dkMathSymbols.item("d") := "∆" ; increment operator +dkMathSymbols.item("D") := "∇" ; nable/del operator +dkMathSymbols.item("e") := "∃" ; there exists +dkMathSymbols.item("E") := "∄" ; there does not exist +dkMathSymbols.item("f") := "ƒ" ; f with hook +dkMathSymbols.item("F") := "∎" ; end of proof +dkMathSymbols.item("g") := "⊂" ; subset of +dkMathSymbols.item("G") := "⊄" ; not a subset of +dkMathSymbols.item("h") := "⊃" ; superset of +dkMathSymbols.item("H") := "⊅" ; not a superset of +dkMathSymbols.item("i") := "∞" ; infinity symbol +dkMathSymbols.item("I") := "∞" ; infinity symbol +dkMathSymbols.item("k") := "∋" ; contains as member +dkMathSymbols.item("K") := "∌" ; does not contain as member +dkMathSymbols.item("l") := "∥" ; parallel to +dkMathSymbols.item("L") := "∦" ; not parallel to +dkMathSymbols.item("m") := "∈" ; element of +dkMathSymbols.item("M") := "∉" ; not an element of +dkMathSymbols.item("n") := "ⁿ" ; superscript n +dkMathSymbols.item("N") := "ℕ" ; natural numbers +dkMathSymbols.item("o") := "∘" ; ring operator +dkMathSymbols.item("O") := "∅" ; empty set +dkMathSymbols.item("p") := "∂" ; partial differential +dkMathSymbols.item("P") := "ℙ" ; prime numbers +dkMathSymbols.item("q") := "ℚ" ; rational numbers +dkMathSymbols.item("Q") := "ℚ" ; rational numbers +dkMathSymbols.item("r") := "√" ; square root +dkMathSymbols.item("R") := "ℝ" ; real numbers +dkMathSymbols.item("s") := "∩" ; set intersection +dkMathSymbols.item("S") := "∫" ; integral symbol +dkMathSymbols.item("u") := "∪" ; set union +dkMathSymbols.item("U") := "∖" ; set minus +dkMathSymbols.item("z") := "↯" ; downwards zigzag arrow +dkMathSymbols.item("Z") := "ℤ" ; whole numbers +dkMathSymbols.item("1") := "≠" ; not equal to +dkMathSymbols.item("!") := "≠" ; not equal to +dkMathSymbols.item("2") := "√" ; square root +dkMathSymbols.item("3") := "∛" ; cube root +dkMathSymbols.item("4") := "∜" ; fourth root +dkMathSymbols.item("5") := "‰" ; per mille sign +dkMathSymbols.item("%") := "‱" ; per ten thousand sign +dkMathSymbols.item("6") := "℘" ; script capital p +dkMathSymbols.item("^") := "℘" ; script capital p +dkMathSymbols.item("7") := "∧" ; logical and +dkMathSymbols.item("&") := "∧" ; logical and +dkMathSymbols.item("8") := "⊗" ; tensor product +dkMathSymbols.item("*") := "⊗" ; tensor product +dkMathSymbols.item("9") := "∟" ; right angle +dkMathSymbols.item("0") := "∠" ; angle symbol +dkMathSymbols.item(")") := "∡" ; measured angle +dkMathSymbols.item("``") := "≈" ; almost equal to +dkMathSymbols.item("~") := "≈" ; almost equal to +dkMathSymbols.item(",") := "≤" ; less-than or equal to +dkMathSymbols.item("<") := "≤" ; less-than or equal to +dkMathSymbols.item(".") := "≥" ; greater-than or equal to +dkMathSymbols.item(">") := "≥" ; greater-than or equal to +dkMathSymbols.item("-") := "±" ; plus-minus sign +dkMathSymbols.item("_") := "⊖" ; circled minus +dkMathSymbols.item("=") := "≝" ; equal to by definition +dkMathSymbols.item("+") := "⊕" ; exclusive or +dkMathSymbols.item(";") := "∵" ; because sign +dkMathSymbols.item(":") := "∴" ; therefore sign +dkMathSymbols.item("\") := "∨" ; logical or +dkMathSymbols.item("|") := "∨" ; logical or +dkMathSymbols.item(" ") := "√" ; square root + + +; Configuration : Right Alt on US QWERTY + +>!a:: + if GetKeyState("CapsLock", "T") + Send Ä ; A with diaeresis + else + Send ä ; a with diaeresis +return +>!+a:: + if GetKeyState("CapsLock", "T") + Send ä ; a with diaeresis + else + Send Ä ; A with diaeresis +return + +>!z:: + if GetKeyState("CapsLock", "T") + Send À ; A with grave + else + Send à ; a with grave +return +>!+z:: + if GetKeyState("CapsLock", "T") + Send à ; a with grave + else + Send À ; A with grave +return + +>!x:: + if GetKeyState("CapsLock", "T") + Send Á ; A with acute + else + Send á ; a with acute +return +>!+x:: + if GetKeyState("CapsLock", "T") + Send á ; a with acute + else + Send Á ; A with acute +return + +>!q:: + if GetKeyState("CapsLock", "T") + Send Æ ; letter AE + else + Send æ ; letter ae +return +>!+q:: + if GetKeyState("CapsLock", "T") + Send æ ; letter ae + else + Send Æ ; letter AE +return + +>!w:: + if GetKeyState("CapsLock", "T") + Send Å ; A with ring above + else + Send å ; a with ring above +return +>!+w:: + if GetKeyState("CapsLock", "T") + Send å ; a with ring above + else + Send Å ; A with ring above +return + +>!c:: + if GetKeyState("CapsLock", "T") + Send Ç ; C with cedilla + else + Send ç ; c with cedilla +return +>!+c:: + if GetKeyState("CapsLock", "T") + Send ç ; c with cedilla + else + Send Ç ; C with cedilla +return + +>!d:: + if GetKeyState("CapsLock", "T") + Send Ð ; capital letter eth + else + Send ð ; small letter eth +return +>!+d:: + if GetKeyState("CapsLock", "T") + Send ð ; small letter eth + else + Send Ð ; capital letter eth +return + +>!e:: + if GetKeyState("CapsLock", "T") + Send Ë ; E with diaeresis + else + Send ë ; e with diaeresis +return +>!+e:: + if GetKeyState("CapsLock", "T") + Send ë ; e with diaeresis + else + Send Ë ; E with diaeresis +return + +>!f:: + if GetKeyState("CapsLock", "T") + Send È ; E with grave + else + Send è ; e with grave +return +>!+f:: + if GetKeyState("CapsLock", "T") + Send è ; e with grave + else + Send È ; E with grave +return + +>!g:: + if GetKeyState("CapsLock", "T") + Send É ; E with acute + else + Send é ; e with acute +return +>!+g:: + if GetKeyState("CapsLock", "T") + Send é ; e with acute + else + Send É ; E with acute +return + +>!i:: + if GetKeyState("CapsLock", "T") + Send Ï ; I with diaeresis + else + Send ï ; i with diaeresis +return +>!+i:: + if GetKeyState("CapsLock", "T") + Send ï ; i with diaeresis + else + Send Ï ; I with diaeresis +return + +>!v:: + if GetKeyState("CapsLock", "T") + Send Ì ; I with grave + else + Send ì ; i with grave +return +>!+v:: + if GetKeyState("CapsLock", "T") + Send ì ; i with grave + else + Send Ì ; I with grave +return + +>!b:: + if GetKeyState("CapsLock", "T") + Send Í ; I with acute + else + Send í ; i with acute +return +>!+b:: + if GetKeyState("CapsLock", "T") + Send í ; i with acute + else + Send Í ; I with acute +return + +>!o:: + if GetKeyState("CapsLock", "T") + Send Ö ; O with diaeresis + else + Send ö ; o with diaeresis +return +>!+o:: + if GetKeyState("CapsLock", "T") + Send ö ; o with diaeresis + else + Send Ö ; O with diaeresis +return + +>!,:: + if GetKeyState("CapsLock", "T") + Send Ò ; O with grave + else + Send ò ; o with grave +return +>!<:: + if GetKeyState("CapsLock", "T") + Send ò ; o with grave + else + Send Ò ; O with grave +return + +>!.:: + if GetKeyState("CapsLock", "T") + Send Ó ; O with acute + else + Send ó ; o with acute +return +>!>:: + if GetKeyState("CapsLock", "T") + Send ó ; o with acute + else + Send Ó ; O with acute +return + +>!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 + +>!p:: + if GetKeyState("CapsLock", "T") + Send Œ ; ligature OE + else + Send œ ; ligature oe +return +>!+p:: + if GetKeyState("CapsLock", "T") + Send œ ; ligature oe + else + Send Œ ; ligature OE +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 + +>!k::Send † ; dagger +>!+k::Send ‡ ; double dagger + +>!s::Send ß ; small sharp s (Eszett) +>!+s::Send § ; section sign + +>!/::Send ¿ ; inverted question mark +>!?::Send ¶ ; pilcrow sign + +>!1::Send ¡ ; inverted exclamation mark +>!+1::Send ¹ ; superscript 1 + +>!2::Send © ; copyright sign +>!+2::Send ² ; superscript 2 + +>!3::Send ± ; plus-minus sign +>!+3::Send ³ ; superscript 3 + +>!4::Send £ ; pound sign +>!+4::Send ¥ ; yen sign + +>!5::Send € ; euro sign +>!+5::Send ¢ ; cent sign (dollar) + +>!8::Send „ ; double low-9 quotation mark +>!+8::Send ‚ ; single low-9 quotation mark + +>!9::Send “ ; left double quotation mark +>!+9::Send ‘ ; left single quotation mark + +>!0::Send ” ; right double quotation mark +>!+0::Send ’ ; right single quotation mark + +>!=::Send × ; multiplication sign +>!+=::Send ÷ ; division sign + +>![::Send « ; left-pointing double angle quotation mark +>!{::Send ‹ ; left-pointing single angle quotation mark + +>!]::Send » ; right-pointing double angle quotation mark +>!}::Send › ; right-pointing single angle quotation mark + +>!;::Send ° ; degree sign +>!+;::Send · ; middle dot + +>!6:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCircumflex.item(key) +return +>!+6:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCaron.item(key) +return + +>!7:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkRingDotAbove.item(key) +return +>!+7:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkMacronStroke.item(key) +return + +>!-:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCedillaOgonek.item(key) +return +>!_:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkBreveSpecial.item(key) +return + +>!':: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkAcuteAccent.item(key) +return +>!":: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkDiaeresis.item(key) +return + +>!`:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkGraveAccent.item(key) +return +>!~:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkTilde.item(key) +return + +>!\:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkNotSign.item(key) +return +>!|:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkBrokenBar.item(key) +return + +>!m:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkGreekAlphabet.item(key) +return +>!+m:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkMathSymbols.item(key) +return + +>!space::Send   ; non-breaking space +>!+space::Send   ; non-breaking space diff --git a/UltimateKEYS - 2020-03-25.klc b/UltimateKEYS - 2020-03-25.klc new file mode 100644 index 0000000000000000000000000000000000000000..233de49ef7ac1f42ab42c297c099dea037183cdc GIT binary patch literal 71588 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
    $NSDP$U^7P$Z)@ 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 szo+jhj9lVMok-8QPA8*