From 6c187437ec6d3f1cf3535f4b24c8ab8c3b4ef580 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Thu, 5 Dec 2019 20:14:41 +0100 Subject: [PATCH] Add files via upload Some minor changes have been made and the comments have been updated. --- UltimateKEYS - 2019-12-05.ahk | 952 ++++++++++++++++++++++++++++++++++ UltimateKEYS - 2019-12-05.klc | Bin 0 -> 50894 bytes 2 files changed, 952 insertions(+) create mode 100644 UltimateKEYS - 2019-12-05.ahk create mode 100644 UltimateKEYS - 2019-12-05.klc diff --git a/UltimateKEYS - 2019-12-05.ahk b/UltimateKEYS - 2019-12-05.ahk new file mode 100644 index 0000000..d22a733 --- /dev/null +++ b/UltimateKEYS - 2019-12-05.ahk @@ -0,0 +1,952 @@ +; UltimateKEYS - 2019-12-05.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 1.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("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("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("i") := "ĭ" ; i with breve +dkBreveSpecial.item("I") := "Ĭ" ; I with breve +dkBreveSpecial.item("j") := "ij" ; ligature ij +dkBreveSpecial.item("J") := "IJ" ; ligature IJ +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("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(" ") := "˘" ; breve + + +; Dead Key : Acute Accent + +dkAcuteAccent := ComObjCreate("Scripting.Dictionary") +dkAcuteAccent.item("a") := "á" ; a with acute +dkAcuteAccent.item("A") := "Á" ; A with acute +dkAcuteAccent.item("b") := "ɓ" ; b with hook +dkAcuteAccent.item("B") := "Ɓ" ; B with hook +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("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 : 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(" ") := "μ" ; small mu + + +; Dead Key : Symbols + +dkSymbols := ComObjCreate("Scripting.Dictionary") +dkSymbols.item("a") := "ª" ; feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkSymbols.item("A") := "ª" ; feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkSymbols.item("b") := "•" ; bullet +dkSymbols.item("B") := "¦" ; broken bar +dkSymbols.item("c") := "©" ; copyright sign +dkSymbols.item("C") := "¤" ; currency sign +dkSymbols.item("d") := "†" ; dagger +dkSymbols.item("D") := "‡" ; double dagger +dkSymbols.item("e") := "℮" ; estimated symbol +dkSymbols.item("E") := "…" ; ellipsis +dkSymbols.item("f") := "♀" ; Venus symbol (female) +dkSymbols.item("F") := "♀" ; Venus symbol (female) +dkSymbols.item("h") := "⁃" ; hyphen bullet +dkSymbols.item("H") := "⁃" ; hyphen bullet +dkSymbols.item("i") := "∞" ; infinity symbol +dkSymbols.item("I") := "∞" ; infinity symbol +dkSymbols.item("l") := "ℓ" ; script small l +dkSymbols.item("L") := "ℓ" ; script small l +dkSymbols.item("m") := "♂" ; Mars symbol (male) +dkSymbols.item("M") := "♂" ; Mars symbol (male) +dkSymbols.item("n") := "ⁿ" ; superscript n +dkSymbols.item("N") := "¬" ; not sign +dkSymbols.item("o") := "º" ; masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkSymbols.item("O") := "º" ; masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) +dkSymbols.item("p") := "¶" ; pilcrow sign +dkSymbols.item("P") := "¶" ; pilcrow sign +dkSymbols.item("r") := "®" ; registered sign +dkSymbols.item("R") := "®" ; registered sign +dkSymbols.item("s") := "§" ; section sign +dkSymbols.item("S") := "§" ; section sign +dkSymbols.item("t") := "™" ; trademark symbol +dkSymbols.item("T") := "™" ; trademark symbol +dkSymbols.item("v") := "→" ; rightwards arrow +dkSymbols.item("V") := "⇒" ; rightwards double arrow +dkSymbols.item("x") := "✗" ; ballot x +dkSymbols.item("X") := "✗" ; ballot x +dkSymbols.item("y") := "✓" ; check mark +dkSymbols.item("Y") := "✓" ; check mark +dkSymbols.item("z") := "←" ; leftwards arrow +dkSymbols.item("Z") := "⇐" ; leftwards double arrow +dkSymbols.item("1") := "≠" ; not equal to +dkSymbols.item("!") := "≠" ; not equal to +dkSymbols.item("2") := "√" ; square root +dkSymbols.item("@") := "√" ; square root +dkSymbols.item("3") := "∛" ; cube root +dkSymbols.item("#") := "∛" ; cube root +dkSymbols.item("4") := "∜" ; fourth root +dkSymbols.item("$") := "∜" ; fourth root +dkSymbols.item("5") := "‰" ; per mille sign +dkSymbols.item("%") := "‰" ; per mille sign +dkSymbols.item("6") := "ƒ" ; f with hook +dkSymbols.item("^") := "ƒ" ; f with hook +dkSymbols.item("7") := "№" ; numero sign +dkSymbols.item("&") := "№" ; numero sign +dkSymbols.item("8") := "·" ; middle dot +dkSymbols.item("*") := "·" ; middle dot +dkSymbols.item("``") := "≈" ; almost equal to +dkSymbols.item("~") := "≈" ; almost equal to +dkSymbols.item("=") := "↔" ; left right arrow +dkSymbols.item("+") := "⇔" ; left right double arrow +dkSymbols.item(",") := "≤" ; less-than or equal to +dkSymbols.item("<") := "≤" ; less-than or equal to +dkSymbols.item(".") := "≥" ; greater-than or equal to +dkSymbols.item(">") := "≥" ; greater-than or equal to +dkSymbols.item("-") := "±" ; plus-minus sign +dkSymbols.item("_") := "±" ; plus-minus sign +dkSymbols.item("\") := "⁞" ; vertical four dots +dkSymbols.item("|") := "⁞" ; vertical four dots +dkSymbols.item(" ") := "·" ; middle dot + + +; 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 + +>!+s:: + if GetKeyState("CapsLock", "T") + Send ß ; small sharp s (Eszett) + else + Send ẞ ; capital sharp S (capital Eszett) +return +>!s:: + if GetKeyState("CapsLock", "T") + Send ẞ ; capital sharp S (capital Eszett) + else + Send ß ; small sharp s (Eszett) +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 + +>!/::Send ¿ ; inverted question mark +>!?::Send § ; section 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 ¶ ; pilcrow sign + +>!\::Send ¬ ; not sign +>!|::Send ¦ ; broken bar + +>!6:: + Input, key, L1, {delete}{esc}{home}{end} + Send % dkCircumflex.item(key) +return +>!+6:: + Input, key, L1, {delete}{esc}{home}{end} + Send % dkCaron.item(key) +return + +>!7:: + Input, key, L1, {delete}{esc}{home}{end} + Send % dkRingDotAbove.item(key) +return +>!+7:: + Input, key, L1, {delete}{esc}{home}{end} + Send % dkMacron.item(key) +return + +>!-:: + Input, key, L1, {delete}{esc}{home}{end} + Send % dkCedillaOgonek.item(key) +return +>!_:: + Input, key, L1, {delete}{esc}{home}{end} + Send % dkBreveSpecial.item(key) +return + +>!':: + Input, key, L1, {delete}{esc}{home}{end} + Send % dkAcuteAccent.item(key) +return +>!":: + Input, key, L1, {delete}{esc}{home}{end} + Send % dkDiaeresis.item(key) +return + +>!`:: + Input, key, L1, {delete}{esc}{home}{end} + Send % dkGraveAccent.item(key) +return +>!~:: + Input, key, L1, {delete}{esc}{home}{end} + Send % dkTilde.item(key) +return + +>!m:: + Input, key, L1, {delete}{esc}{home}{end} + Send % dkGreekAlphabet.item(key) +return +>!+m:: + Input, key, L1, {delete}{esc}{home}{end} + Send % dkSymbols.item(key) +return + +>!space::Send   ; no-break space diff --git a/UltimateKEYS - 2019-12-05.klc b/UltimateKEYS - 2019-12-05.klc new file mode 100644 index 0000000000000000000000000000000000000000..1bc108ede5364c3fce31ffff9f73ab4878b78e9c GIT binary patch literal 50894 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