From bca34923a0ccfd3b5b716e1d4cf32a4b6d0dccbe Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Wed, 1 Jan 2020 23:59:05 +0100 Subject: [PATCH 1/1] Add files via upload A few characters have been added for African languages. --- UltimateKEYS - 2020-01-01.ahk | 1116 +++++++++++++++++++++++++++++++++ UltimateKEYS - 2020-01-01.klc | Bin 0 -> 64502 bytes 2 files changed, 1116 insertions(+) create mode 100644 UltimateKEYS - 2020-01-01.ahk create mode 100644 UltimateKEYS - 2020-01-01.klc diff --git a/UltimateKEYS - 2020-01-01.ahk b/UltimateKEYS - 2020-01-01.ahk new file mode 100644 index 0000000..a794bc5 --- /dev/null +++ b/UltimateKEYS - 2020-01-01.ahk @@ -0,0 +1,1116 @@ +; UltimateKEYS - 2020-01-01.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("'") := "´" ; 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("``") := "``" ; 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") := "•" ; bullet +dkNotSign.item("B") := "•" ; bullet +dkNotSign.item("c") := "©" ; copyright sign +dkNotSign.item("C") := "¤" ; currency sign +dkNotSign.item("d") := "†" ; dagger +dkNotSign.item("D") := "‡" ; double dagger +dkNotSign.item("e") := "℮" ; estimated symbol +dkNotSign.item("E") := "…" ; ellipsis +dkNotSign.item("f") := "♀" ; Venus symbol (female) +dkNotSign.item("F") := "♀" ; Venus symbol (female) +dkNotSign.item("h") := "⁃" ; hyphen bullet +dkNotSign.item("H") := "⁃" ; hyphen bullet +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("x") := "✗" ; ballot x +dkNotSign.item("X") := "✗" ; ballot x +dkNotSign.item("y") := "✓" ; check mark +dkNotSign.item("Y") := "✓" ; check mark +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("\") := "⁞" ; 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("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 mille 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 : AltGr modifiers for 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-01.klc b/UltimateKEYS - 2020-01-01.klc new file mode 100644 index 0000000000000000000000000000000000000000..cd7f272be5450709173fab068c40f8802a56ce5c GIT binary patch literal 64502 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