From c781cd24e9feb0c6364ad095958fab0ef17782b7 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Wed, 12 Feb 2020 22:16:12 +0100 Subject: [PATCH] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The letters ǥ and Ǥ have been added to the dead key 'AltGr+Shift+7' (Skolt Sami alphabet). --- UltimateKEYS - 2020-02-12.ahk | 1170 +++++++++++++++++++++++++++++++++ UltimateKEYS - 2020-02-12.klc | Bin 0 -> 68930 bytes 2 files changed, 1170 insertions(+) create mode 100644 UltimateKEYS - 2020-02-12.ahk create mode 100644 UltimateKEYS - 2020-02-12.klc diff --git a/UltimateKEYS - 2020-02-12.ahk b/UltimateKEYS - 2020-02-12.ahk new file mode 100644 index 0000000..204a0b0 --- /dev/null +++ b/UltimateKEYS - 2020-02-12.ahk @@ -0,0 +1,1170 @@ +; UltimateKEYS - 2020-02-12.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("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("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("é") := "ǥ" ; 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("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(".") := "˛" ; 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") := "₡" ; 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("``") := "``" ; 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("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("ß") := "ς" ; small sigma, in word-final position +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(".") := "µ" ; 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-02-12.klc b/UltimateKEYS - 2020-02-12.klc new file mode 100644 index 0000000000000000000000000000000000000000..2d8bb06cbbdad9ae7ffc0862a408e87916845e1a GIT binary patch literal 68930 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