From ff13a40eefb6c57dfdac262167b141008f5551fd Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Mon, 24 Feb 2020 23:43:51 +0100 Subject: [PATCH] Add files via upload Some small modifications have been made concerning the mappings to the Greek alphabet (AltGr + M). --- UltimateKEYS - 2020-02-24.ahk | 1170 +++++++++++++++++++++++++++++++++ UltimateKEYS - 2020-02-24.klc | Bin 0 -> 68946 bytes 2 files changed, 1170 insertions(+) create mode 100644 UltimateKEYS - 2020-02-24.ahk create mode 100644 UltimateKEYS - 2020-02-24.klc diff --git a/UltimateKEYS - 2020-02-24.ahk b/UltimateKEYS - 2020-02-24.ahk new file mode 100644 index 0000000..5de9c41 --- /dev/null +++ b/UltimateKEYS - 2020-02-24.ahk @@ -0,0 +1,1170 @@ +; UltimateKEYS - 2020-02-24.ahk + +; Created by : Pieter Degroote + +; License : GNU General Public License Version 3 + +; Website : https://github.com/pieter-degroote/UltimateKEYS + + +; Requirements : + +; Keyboard layout (on Windows OS) : US QWERTY + +; AutoHotkey v1.1 (https://www.autohotkey.com/) + + + +; Dead Key : Circumflex Accent + +dkCircumflex := ComObjCreate("Scripting.Dictionary") +dkCircumflex.item("a") := "â" ; a with circumflex +dkCircumflex.item("A") := "Â" ; A with circumflex +dkCircumflex.item("c") := "ĉ" ; c with circumflex +dkCircumflex.item("C") := "Ĉ" ; C with circumflex +dkCircumflex.item("e") := "ê" ; e with circumflex +dkCircumflex.item("E") := "Ê" ; E with circumflex +dkCircumflex.item("g") := "ĝ" ; g with circumflex +dkCircumflex.item("G") := "Ĝ" ; G with circumflex +dkCircumflex.item("h") := "ĥ" ; h with circumflex +dkCircumflex.item("H") := "Ĥ" ; H with circumflex +dkCircumflex.item("i") := "î" ; i with circumflex +dkCircumflex.item("I") := "Î" ; I with circumflex +dkCircumflex.item("j") := "ĵ" ; j with circumflex +dkCircumflex.item("J") := "Ĵ" ; J with circumflex +dkCircumflex.item("o") := "ô" ; o with circumflex +dkCircumflex.item("O") := "Ô" ; O with circumflex +dkCircumflex.item("s") := "ŝ" ; s with circumflex +dkCircumflex.item("S") := "Ŝ" ; S with circumflex +dkCircumflex.item("u") := "û" ; u with circumflex +dkCircumflex.item("U") := "Û" ; U with circumflex +dkCircumflex.item("w") := "ŵ" ; w with circumflex +dkCircumflex.item("W") := "Ŵ" ; W with circumflex +dkCircumflex.item("y") := "ŷ" ; y with circumflex +dkCircumflex.item("Y") := "Ŷ" ; Y with circumflex +dkCircumflex.item("z") := "ẑ" ; z with circumflex +dkCircumflex.item("Z") := "Ẑ" ; Z with circumflex +dkCircumflex.item("n") := "₦" ; Nigerian naira +dkCircumflex.item("N") := "₦" ; Nigerian naira +dkCircumflex.item("^") := "{^}" ; circumflex accent +dkCircumflex.item(" ") := "{^}" ; circumflex accent + + +; Dead Key : Caron + +dkCaron := ComObjCreate("Scripting.Dictionary") +dkCaron.item("a") := "ǎ" ; a with caron +dkCaron.item("A") := "Ǎ" ; A with caron +dkCaron.item("c") := "č" ; c with caron +dkCaron.item("C") := "Č" ; C with caron +dkCaron.item("d") := "ď" ; d with caron +dkCaron.item("D") := "Ď" ; D with caron +dkCaron.item("e") := "ě" ; e with caron +dkCaron.item("E") := "Ě" ; E with caron +dkCaron.item("g") := "ǧ" ; g with caron +dkCaron.item("G") := "Ǧ" ; G with caron +dkCaron.item("h") := "ȟ" ; h with caron +dkCaron.item("H") := "Ȟ" ; H with caron +dkCaron.item("i") := "ǐ" ; i with caron +dkCaron.item("I") := "Ǐ" ; I with caron +dkCaron.item("j") := "ǰ" ; j with caron +dkCaron.item("k") := "ǩ" ; k with caron +dkCaron.item("K") := "Ǩ" ; K with caron +dkCaron.item("l") := "ľ" ; l with caron +dkCaron.item("L") := "Ľ" ; L with caron +dkCaron.item("n") := "ň" ; n with caron +dkCaron.item("N") := "Ň" ; N with caron +dkCaron.item("o") := "ǒ" ; o with caron +dkCaron.item("O") := "Ǒ" ; O with caron +dkCaron.item("r") := "ř" ; r with caron +dkCaron.item("R") := "Ř" ; R with caron +dkCaron.item("s") := "š" ; s with caron +dkCaron.item("S") := "Š" ; S with caron +dkCaron.item("t") := "ť" ; t with caron +dkCaron.item("T") := "Ť" ; T with caron +dkCaron.item("u") := "ǔ" ; u with caron +dkCaron.item("U") := "Ǔ" ; U with caron +dkCaron.item("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("h") := "η" ; small eta +dkGreekAlphabet.item("H") := "Η" ; capital eta +dkGreekAlphabet.item("j") := "θ" ; small theta +dkGreekAlphabet.item("J") := "Θ" ; capital theta +dkGreekAlphabet.item("i") := "ι" ; small iota +dkGreekAlphabet.item("I") := "Ι" ; capital iota +dkGreekAlphabet.item("k") := "κ" ; small kappa +dkGreekAlphabet.item("K") := "Κ" ; capital kappa +dkGreekAlphabet.item("l") := "λ" ; small lambda +dkGreekAlphabet.item("L") := "Λ" ; capital lambda +dkGreekAlphabet.item("m") := "μ" ; small mu +dkGreekAlphabet.item("M") := "Μ" ; capital mu +dkGreekAlphabet.item("n") := "ν" ; small nu +dkGreekAlphabet.item("N") := "Ν" ; capital nu +dkGreekAlphabet.item("x") := "ξ" ; small xi +dkGreekAlphabet.item("X") := "Ξ" ; capital xi +dkGreekAlphabet.item("o") := "ο" ; small omikron +dkGreekAlphabet.item("O") := "Ο" ; capital omikron +dkGreekAlphabet.item("p") := "π" ; small pi +dkGreekAlphabet.item("P") := "Π" ; capital pi +dkGreekAlphabet.item("r") := "ρ" ; small rho +dkGreekAlphabet.item("R") := "Ρ" ; capital rho +dkGreekAlphabet.item("s") := "σ" ; small sigma +dkGreekAlphabet.item("S") := "Σ" ; capital sigma +dkGreekAlphabet.item(",") := "ς" ; small sigma, in word-final position +dkGreekAlphabet.item("ß") := "ς" ; small sigma, in word-final position +dkGreekAlphabet.item("t") := "τ" ; small tau +dkGreekAlphabet.item("T") := "Τ" ; capital tau +dkGreekAlphabet.item("u") := "υ" ; small upsilon +dkGreekAlphabet.item("U") := "Υ" ; capital upsilon +dkGreekAlphabet.item("y") := "υ" ; small upsilon +dkGreekAlphabet.item("Y") := "Υ" ; capital upsilon +dkGreekAlphabet.item("f") := "φ" ; small phi +dkGreekAlphabet.item("F") := "Φ" ; capital phi +dkGreekAlphabet.item("c") := "χ" ; small chi +dkGreekAlphabet.item("C") := "Χ" ; capital chi +dkGreekAlphabet.item("w") := "ψ" ; small psi +dkGreekAlphabet.item("W") := "Ψ" ; capital psi +dkGreekAlphabet.item("q") := "ω" ; small omega +dkGreekAlphabet.item("Q") := "Ω" ; capital omega +dkGreekAlphabet.item("1") := "¹" ; superscript 1 +dkGreekAlphabet.item("2") := "²" ; superscript 2 +dkGreekAlphabet.item("3") := "³" ; superscript 3 +dkGreekAlphabet.item("4") := "⁴" ; superscript 4 +dkGreekAlphabet.item("5") := "⁵" ; superscript 5 +dkGreekAlphabet.item("6") := "⁶" ; superscript 6 +dkGreekAlphabet.item("7") := "⁷" ; superscript 7 +dkGreekAlphabet.item("8") := "⁸" ; superscript 8 +dkGreekAlphabet.item("9") := "⁹" ; superscript 9 +dkGreekAlphabet.item("0") := "⁰" ; superscript 0 +dkGreekAlphabet.item("-") := "⁻" ; superscript - +dkGreekAlphabet.item("=") := "⁼" ; superscript = +dkGreekAlphabet.item("+") := "⁺" ; superscript + +dkGreekAlphabet.item("[") := "⁽" ; superscript ( +dkGreekAlphabet.item("]") := "⁾" ; superscript ) +dkGreekAlphabet.item("!") := "₁" ; subscript 1 +dkGreekAlphabet.item("@") := "₂" ; subscript 2 +dkGreekAlphabet.item("#") := "₃" ; subscript 3 +dkGreekAlphabet.item("$") := "₄" ; subscript 4 +dkGreekAlphabet.item("%") := "₅" ; subscript 5 +dkGreekAlphabet.item("^") := "₆" ; subscript 6 +dkGreekAlphabet.item("&") := "₇" ; subscript 7 +dkGreekAlphabet.item("*") := "₈" ; subscript 8 +dkGreekAlphabet.item("(") := "₉" ; subscript 9 +dkGreekAlphabet.item(")") := "₀" ; subscript 0 +dkGreekAlphabet.item(";") := "₋" ; subscript - +dkGreekAlphabet.item("'") := "₌" ; subscript = +dkGreekAlphabet.item("""") := "₊" ; subscript + +dkGreekAlphabet.item("{") := "₍" ; subscript ( +dkGreekAlphabet.item("}") := "₎" ; subscript ) +dkGreekAlphabet.item(".") := "µ" ; micro sign +dkGreekAlphabet.item(" ") := "μ" ; small mu + + +; Dead Key : Math Symbols + +dkMathSymbols := ComObjCreate("Scripting.Dictionary") +dkMathSymbols.item("a") := "∀" ; for all +dkMathSymbols.item("A") := "∀" ; for all +dkMathSymbols.item("b") := "⊆" ; subset of or equal to +dkMathSymbols.item("B") := "⊇" ; superset of or equal to +dkMathSymbols.item("c") := "∝" ; proportional to +dkMathSymbols.item("C") := "ℂ" ; complex numbers +dkMathSymbols.item("d") := "∆" ; increment operator +dkMathSymbols.item("D") := "∇" ; nable/del operator +dkMathSymbols.item("e") := "∃" ; there exists +dkMathSymbols.item("E") := "∄" ; there does not exist +dkMathSymbols.item("f") := "ƒ" ; f with hook +dkMathSymbols.item("F") := "∎" ; end of proof +dkMathSymbols.item("g") := "⊂" ; subset of +dkMathSymbols.item("G") := "⊄" ; not a subset of +dkMathSymbols.item("h") := "⊃" ; superset of +dkMathSymbols.item("H") := "⊅" ; not a superset of +dkMathSymbols.item("i") := "∞" ; infinity symbol +dkMathSymbols.item("I") := "∞" ; infinity symbol +dkMathSymbols.item("k") := "∋" ; contains as member +dkMathSymbols.item("K") := "∌" ; does not contain as member +dkMathSymbols.item("l") := "∥" ; parallel to +dkMathSymbols.item("L") := "∦" ; not parallel to +dkMathSymbols.item("m") := "∈" ; element of +dkMathSymbols.item("M") := "∉" ; not an element of +dkMathSymbols.item("n") := "ⁿ" ; superscript n +dkMathSymbols.item("N") := "ℕ" ; natural numbers +dkMathSymbols.item("o") := "∘" ; ring operator +dkMathSymbols.item("O") := "∅" ; empty set +dkMathSymbols.item("p") := "∂" ; partial differential +dkMathSymbols.item("P") := "ℙ" ; prime numbers +dkMathSymbols.item("q") := "ℚ" ; rational numbers +dkMathSymbols.item("Q") := "ℚ" ; rational numbers +dkMathSymbols.item("r") := "√" ; square root +dkMathSymbols.item("R") := "ℝ" ; real numbers +dkMathSymbols.item("s") := "∩" ; set intersection +dkMathSymbols.item("S") := "∫" ; integral symbol +dkMathSymbols.item("u") := "∪" ; set union +dkMathSymbols.item("U") := "∖" ; set minus +dkMathSymbols.item("z") := "↯" ; downwards zigzag arrow +dkMathSymbols.item("Z") := "ℤ" ; whole numbers +dkMathSymbols.item("1") := "≠" ; not equal to +dkMathSymbols.item("!") := "≠" ; not equal to +dkMathSymbols.item("2") := "√" ; square root +dkMathSymbols.item("3") := "∛" ; cube root +dkMathSymbols.item("4") := "∜" ; fourth root +dkMathSymbols.item("5") := "‰" ; per mille sign +dkMathSymbols.item("%") := "‱" ; per ten thousand sign +dkMathSymbols.item("6") := "℘" ; script capital p +dkMathSymbols.item("^") := "℘" ; script capital p +dkMathSymbols.item("7") := "∧" ; logical and +dkMathSymbols.item("&") := "∧" ; logical and +dkMathSymbols.item("8") := "⊗" ; tensor product +dkMathSymbols.item("*") := "⊗" ; tensor product +dkMathSymbols.item("9") := "∟" ; right angle +dkMathSymbols.item("0") := "∠" ; angle symbol +dkMathSymbols.item(")") := "∡" ; measured angle +dkMathSymbols.item("``") := "≈" ; almost equal to +dkMathSymbols.item("~") := "≈" ; almost equal to +dkMathSymbols.item(",") := "≤" ; less-than or equal to +dkMathSymbols.item("<") := "≤" ; less-than or equal to +dkMathSymbols.item(".") := "≥" ; greater-than or equal to +dkMathSymbols.item(">") := "≥" ; greater-than or equal to +dkMathSymbols.item("-") := "±" ; plus-minus sign +dkMathSymbols.item("_") := "⊖" ; circled minus +dkMathSymbols.item("=") := "≝" ; equal to by definition +dkMathSymbols.item("+") := "⊕" ; exclusive or +dkMathSymbols.item(";") := "∵" ; because sign +dkMathSymbols.item(":") := "∴" ; therefore sign +dkMathSymbols.item("\") := "∨" ; logical or +dkMathSymbols.item("|") := "∨" ; logical or +dkMathSymbols.item(" ") := "√" ; square root + + +; Configuration : Right Alt on US QWERTY + +>!a:: + if GetKeyState("CapsLock", "T") + Send Ä ; A with diaeresis + else + Send ä ; a with diaeresis +return +>!+a:: + if GetKeyState("CapsLock", "T") + Send ä ; a with diaeresis + else + Send Ä ; A with diaeresis +return + +>!z:: + if GetKeyState("CapsLock", "T") + Send À ; A with grave + else + Send à ; a with grave +return +>!+z:: + if GetKeyState("CapsLock", "T") + Send à ; a with grave + else + Send À ; A with grave +return + +>!x:: + if GetKeyState("CapsLock", "T") + Send Á ; A with acute + else + Send á ; a with acute +return +>!+x:: + if GetKeyState("CapsLock", "T") + Send á ; a with acute + else + Send Á ; A with acute +return + +>!q:: + if GetKeyState("CapsLock", "T") + Send Æ ; letter AE + else + Send æ ; letter ae +return +>!+q:: + if GetKeyState("CapsLock", "T") + Send æ ; letter ae + else + Send Æ ; letter AE +return + +>!w:: + if GetKeyState("CapsLock", "T") + Send Å ; A with ring above + else + Send å ; a with ring above +return +>!+w:: + if GetKeyState("CapsLock", "T") + Send å ; a with ring above + else + Send Å ; A with ring above +return + +>!c:: + if GetKeyState("CapsLock", "T") + Send Ç ; C with cedilla + else + Send ç ; c with cedilla +return +>!+c:: + if GetKeyState("CapsLock", "T") + Send ç ; c with cedilla + else + Send Ç ; C with cedilla +return + +>!d:: + if GetKeyState("CapsLock", "T") + Send Ð ; capital letter eth + else + Send ð ; small letter eth +return +>!+d:: + if GetKeyState("CapsLock", "T") + Send ð ; small letter eth + else + Send Ð ; capital letter eth +return + +>!e:: + if GetKeyState("CapsLock", "T") + Send Ë ; E with diaeresis + else + Send ë ; e with diaeresis +return +>!+e:: + if GetKeyState("CapsLock", "T") + Send ë ; e with diaeresis + else + Send Ë ; E with diaeresis +return + +>!f:: + if GetKeyState("CapsLock", "T") + Send È ; E with grave + else + Send è ; e with grave +return +>!+f:: + if GetKeyState("CapsLock", "T") + Send è ; e with grave + else + Send È ; E with grave +return + +>!g:: + if GetKeyState("CapsLock", "T") + Send É ; E with acute + else + Send é ; e with acute +return +>!+g:: + if GetKeyState("CapsLock", "T") + Send é ; e with acute + else + Send É ; E with acute +return + +>!i:: + if GetKeyState("CapsLock", "T") + Send Ï ; I with diaeresis + else + Send ï ; i with diaeresis +return +>!+i:: + if GetKeyState("CapsLock", "T") + Send ï ; i with diaeresis + else + Send Ï ; I with diaeresis +return + +>!v:: + if GetKeyState("CapsLock", "T") + Send Ì ; I with grave + else + Send ì ; i with grave +return +>!+v:: + if GetKeyState("CapsLock", "T") + Send ì ; i with grave + else + Send Ì ; I with grave +return + +>!b:: + if GetKeyState("CapsLock", "T") + Send Í ; I with acute + else + Send í ; i with acute +return +>!+b:: + if GetKeyState("CapsLock", "T") + Send í ; i with acute + else + Send Í ; I with acute +return + +>!o:: + if GetKeyState("CapsLock", "T") + Send Ö ; O with diaeresis + else + Send ö ; o with diaeresis +return +>!+o:: + if GetKeyState("CapsLock", "T") + Send ö ; o with diaeresis + else + Send Ö ; O with diaeresis +return + +>!,:: + if GetKeyState("CapsLock", "T") + Send Ò ; O with grave + else + Send ò ; o with grave +return +>!<:: + if GetKeyState("CapsLock", "T") + Send ò ; o with grave + else + Send Ò ; O with grave +return + +>!.:: + if GetKeyState("CapsLock", "T") + Send Ó ; O with acute + else + Send ó ; o with acute +return +>!>:: + if GetKeyState("CapsLock", "T") + Send ó ; o with acute + else + Send Ó ; O with acute +return + +>!l:: + if GetKeyState("CapsLock", "T") + Send Ø ; O with stroke + else + Send ø ; o with stroke +return +>!+l:: + if GetKeyState("CapsLock", "T") + Send ø ; o with stroke + else + Send Ø ; O with stroke +return + +>!p:: + if GetKeyState("CapsLock", "T") + Send Œ ; ligature OE + else + Send œ ; ligature oe +return +>!+p:: + if GetKeyState("CapsLock", "T") + Send œ ; ligature oe + else + Send Œ ; ligature OE +return + +>!n:: + if GetKeyState("CapsLock", "T") + Send Ñ ; N with tilde + else + Send ñ ; n with tilde +return +>!+n:: + if GetKeyState("CapsLock", "T") + Send ñ ; n with tilde + else + Send Ñ ; N with tilde +return + +>!t:: + if GetKeyState("CapsLock", "T") + Send Þ ; capital letter thorn + else + Send þ ; small letter thorn +return +>!+t:: + if GetKeyState("CapsLock", "T") + Send þ ; small letter thorn + else + Send Þ ; capital letter thorn +return + +>!u:: + if GetKeyState("CapsLock", "T") + Send Ü ; U with diaeresis + else + Send ü ; u with diaeresis +return +>!+u:: + if GetKeyState("CapsLock", "T") + Send ü ; u with diaeresis + else + Send Ü ; U with diaeresis +return + +>!h:: + if GetKeyState("CapsLock", "T") + Send Ù ; U with grave + else + Send ù ; u with grave +return +>!+h:: + if GetKeyState("CapsLock", "T") + Send ù ; u with grave + else + Send Ù ; U with grave +return + +>!j:: + if GetKeyState("CapsLock", "T") + Send Ú ; U with acute + else + Send ú ; u with acute +return +>!+j:: + if GetKeyState("CapsLock", "T") + Send ú ; u with acute + else + Send Ú ; U with acute +return + +>!y:: + if GetKeyState("CapsLock", "T") + Send Ÿ ; Y with diaeresis + else + Send ÿ ; y with diaeresis +return +>!+y:: + if GetKeyState("CapsLock", "T") + Send ÿ ; y with diaeresis + else + Send Ÿ ; Y with diaeresis +return + +>!r:: + if GetKeyState("CapsLock", "T") + Send Ý ; Y with acute + else + Send ý ; y with acute +return +>!+r:: + if GetKeyState("CapsLock", "T") + Send ý ; y with acute + else + Send Ý ; Y with acute +return + +>!k::Send † ; dagger +>!+k::Send ‡ ; double dagger + +>!s::Send ß ; small sharp s (Eszett) +>!+s::Send § ; section sign + +>!/::Send ¿ ; inverted question mark +>!?::Send ¶ ; pilcrow sign + +>!1::Send ¡ ; inverted exclamation mark +>!+1::Send ¹ ; superscript 1 + +>!2::Send © ; copyright sign +>!+2::Send ² ; superscript 2 + +>!3::Send ± ; plus-minus sign +>!+3::Send ³ ; superscript 3 + +>!4::Send £ ; pound sign +>!+4::Send ¥ ; yen sign + +>!5::Send € ; euro sign +>!+5::Send ¢ ; cent sign (dollar) + +>!8::Send „ ; double low-9 quotation mark +>!+8::Send ‚ ; single low-9 quotation mark + +>!9::Send “ ; left double quotation mark +>!+9::Send ‘ ; left single quotation mark + +>!0::Send ” ; right double quotation mark +>!+0::Send ’ ; right single quotation mark + +>!=::Send × ; multiplication sign +>!+=::Send ÷ ; division sign + +>![::Send « ; left-pointing double angle quotation mark +>!{::Send ‹ ; left-pointing single angle quotation mark + +>!]::Send » ; right-pointing double angle quotation mark +>!}::Send › ; right-pointing single angle quotation mark + +>!;::Send ° ; degree sign +>!+;::Send · ; middle dot + +>!6:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCircumflex.item(key) +return +>!+6:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCaron.item(key) +return + +>!7:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkRingDotAbove.item(key) +return +>!+7:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkMacron.item(key) +return + +>!-:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkCedillaOgonek.item(key) +return +>!_:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkBreveSpecial.item(key) +return + +>!':: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkAcuteAccent.item(key) +return +>!":: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkDiaeresis.item(key) +return + +>!`:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkGraveAccent.item(key) +return +>!~:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkTilde.item(key) +return + +>!\:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkNotSign.item(key) +return +>!|:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkBrokenBar.item(key) +return + +>!m:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkGreekAlphabet.item(key) +return +>!+m:: + Input, key, L1, {bs}{del}{esc}{home}{end} + Send % dkMathSymbols.item(key) +return + +>!space::Send   ; no-break space +>!+space::Send   ; no-break space diff --git a/UltimateKEYS - 2020-02-24.klc b/UltimateKEYS - 2020-02-24.klc new file mode 100644 index 0000000000000000000000000000000000000000..f7bf19a0b35b11bd72d0cdbae279de822519a3f1 GIT binary patch literal 68946 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