From 93b83347767df28f98419a1607375138329eaad5 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Sun, 8 Mar 2020 23:14:02 +0100 Subject: [PATCH] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Additions : character ǚ / Ǚ on 'AltGr + Shift + 6', followed by 'u' / 'U' some general punctuation symbols (dashes and spacing) --- UltimateKEYS - 2020-03-08.ahk | 1191 +++++++++++++++++++++++++++++++++ UltimateKEYS - 2020-03-08.klc | Bin 0 -> 70600 bytes 2 files changed, 1191 insertions(+) create mode 100644 UltimateKEYS - 2020-03-08.ahk create mode 100644 UltimateKEYS - 2020-03-08.klc diff --git a/UltimateKEYS - 2020-03-08.ahk b/UltimateKEYS - 2020-03-08.ahk new file mode 100644 index 0000000..536f4d2 --- /dev/null +++ b/UltimateKEYS - 2020-03-08.ahk @@ -0,0 +1,1191 @@ +; UltimateKEYS - 2020-03-08.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 + +dkMacron := ComObjCreate("Scripting.Dictionary") +dkMacron.item("a") := "ā" ; a with macron +dkMacron.item("A") := "Ā" ; A with macron +dkMacron.item("æ") := "ǣ" ; ae with macron +dkMacron.item("Æ") := "Ǣ" ; AE with macron +dkMacron.item("b") := "ƀ" ; b with stroke +dkMacron.item("B") := "Ƀ" ; B with stroke +dkMacron.item("d") := "đ" ; d with stroke +dkMacron.item("D") := "Đ" ; D with stroke +dkMacron.item("e") := "ē" ; e with macron +dkMacron.item("E") := "Ē" ; E with macron +dkMacron.item("g") := "ḡ" ; g with macron +dkMacron.item("G") := "Ḡ" ; G with macron +dkMacron.item("é") := "ǥ" ; g with stroke (Skolt Sami) +dkMacron.item("É") := "Ǥ" ; G with stroke (Skolt Sami) +dkMacron.item("h") := "ħ" ; h with stroke (Maltese) +dkMacron.item("H") := "Ħ" ; H with stroke (Maltese) +dkMacron.item("i") := "ī" ; i with macron +dkMacron.item("I") := "Ī" ; I with macron +dkMacron.item("l") := "ł" ; l with stroke +dkMacron.item("L") := "Ł" ; L with stroke +dkMacron.item("ø") := "ḻ" ; l with line below +dkMacron.item("Ø") := "Ḻ" ; L with line below +dkMacron.item("o") := "ō" ; o with macron +dkMacron.item("O") := "Ō" ; O with macron +dkMacron.item("ö") := "ǭ" ; o with ogonek and macron +dkMacron.item("Ö") := "Ǭ" ; O with ogonek and macron +dkMacron.item("t") := "ŧ" ; t with stroke +dkMacron.item("T") := "Ŧ" ; T with stroke +dkMacron.item("u") := "ū" ; u with macron +dkMacron.item("U") := "Ū" ; U with macron +dkMacron.item("y") := "ȳ" ; y with macron +dkMacron.item("Y") := "Ȳ" ; Y with macron +dkMacron.item("z") := "ƶ" ; z with stroke +dkMacron.item("Z") := "Ƶ" ; Z with stroke +dkMacron.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("8") := "♪" ; eighth note +dkAcuteAccent.item("*") := "♫" ; beamed eighth notes +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") := " " ; six-per-em space +dkGraveAccent.item("6") := " " ; punctuation space +dkGraveAccent.item("7") := " " ; en quad +dkGraveAccent.item("8") := " " ; em quad +dkGraveAccent.item("9") := " " ; figure space +dkGraveAccent.item("0") := "​" ; zero-width space +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 % dkMacron.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   ; no-break space +>!+space::Send   ; no-break space diff --git a/UltimateKEYS - 2020-03-08.klc b/UltimateKEYS - 2020-03-08.klc new file mode 100644 index 0000000000000000000000000000000000000000..24187029a5d206328b3ab124f84c1cb540b550d1 GIT binary patch literal 70600 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