From dd9ed8849139cddea996d3d66e30daa811ffd3c4 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Tue, 28 Jan 2020 22:22:40 +0100 Subject: [PATCH 1/1] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit - New currencies have been added under the dead key AltGr+`. - The ellipsis (…) and estimated symbol (℮) have been switched. --- UltimateKEYS - 2020-01-28.ahk | 1160 +++++++++++++++++++++++++++++++++ UltimateKEYS - 2020-01-28.klc | Bin 0 -> 68080 bytes 2 files changed, 1160 insertions(+) create mode 100644 UltimateKEYS - 2020-01-28.ahk create mode 100644 UltimateKEYS - 2020-01-28.klc diff --git a/UltimateKEYS - 2020-01-28.ahk b/UltimateKEYS - 2020-01-28.ahk new file mode 100644 index 0000000..a345731 --- /dev/null +++ b/UltimateKEYS - 2020-01-28.ahk @@ -0,0 +1,1160 @@ +; UltimateKEYS - 2020-01-28.ahk + +; Author : 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("^") := "{^}" ; 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("z") := "ž" ; z with caron +dkCaron.item("Z") := "Ž" ; Z 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("h") := "ħ" ; h with stroke +dkMacron.item("H") := "Ħ" ; H with stroke +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("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(".") := "˛" ; 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("z") := "ʒ" ; small letter ezh +dkBreveSpecial.item("Z") := "Ʒ" ; capital letter ezh +dkBreveSpecial.item("à") := "ǯ" ; small letter ezh with caron +dkBreveSpecial.item("À") := "Ǯ" ; capital letter ezh with caron +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") := "₵" ; Ghanaian cedi +dkGraveAccent.item("C") := "₡" ; Costa Rican colón +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("``") := "``" ; 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("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("i") := "η" ; small eta +dkGreekAlphabet.item("I") := "Η" ; capital eta +dkGreekAlphabet.item("h") := "θ" ; small theta +dkGreekAlphabet.item("H") := "Θ" ; capital theta +dkGreekAlphabet.item("j") := "ι" ; small iota +dkGreekAlphabet.item("J") := "Ι" ; 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("§") := "Σ" ; capital sigma +dkGreekAlphabet.item("t") := "τ" ; small tau +dkGreekAlphabet.item("T") := "Τ" ; capital tau +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("u") := "ω" ; small omega +dkGreekAlphabet.item("U") := "Ω" ; 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(" ") := "μ" ; 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 ð ; small letter eth + else + Send Ð ; capital letter eth +return +>!d:: + if GetKeyState("CapsLock", "T") + Send Ð ; capital letter eth + else + Send ð ; small 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 þ ; small letter thorn + else + Send Þ ; capital letter thorn +return +>!t:: + if GetKeyState("CapsLock", "T") + Send Þ ; capital letter thorn + else + Send þ ; small 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 diff --git a/UltimateKEYS - 2020-01-28.klc b/UltimateKEYS - 2020-01-28.klc new file mode 100644 index 0000000000000000000000000000000000000000..cb0087e867f99c4dfc48b28dadd51ed8c071c110 GIT binary patch literal 68080 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