From 46e6208449be4d44937aef46ee66562284707acd Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Thu, 20 Feb 2020 22:08:53 +0100 Subject: [PATCH 01/16] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9933601..47ff8a8 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,7 @@ An MSKLC source file is available for integration on Windows OSes (although not ## XKB integration (Linux) -Experimental support for GNU/Linux via XKB integration (X11) :  see the branch 'linux' in this repository. +Experimental support for GNU/Linux via XKB integration (X11) :  see the 'linux' branch in this repository. ## Enjoy and have fun !  -  Veel plezier !  â˜º -- 2.47.3 From d95e5d22ad2d684c8522038bc63aac8d74110232 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Mon, 24 Feb 2020 23:40:58 +0100 Subject: [PATCH 02/16] Delete UltimateKEYS - 2020-02-12.ahk --- UltimateKEYS - 2020-02-12.ahk | 1170 --------------------------------- 1 file changed, 1170 deletions(-) delete mode 100644 UltimateKEYS - 2020-02-12.ahk diff --git a/UltimateKEYS - 2020-02-12.ahk b/UltimateKEYS - 2020-02-12.ahk deleted file mode 100644 index 204a0b0..0000000 --- a/UltimateKEYS - 2020-02-12.ahk +++ /dev/null @@ -1,1170 +0,0 @@ -; UltimateKEYS - 2020-02-12.ahk - -; Author : Pieter Degroote - -; License : GNU General Public License Version 3 - -; Website : https://github.com/pieter-degroote/UltimateKEYS - - -; Requirements : - -; Keyboard layout (on Windows OS) : US QWERTY - -; AutoHotkey v1.1 (https://www.autohotkey.com/) - - - -; Dead Key : Circumflex Accent - -dkCircumflex := ComObjCreate("Scripting.Dictionary") -dkCircumflex.item("a") := "â" ; a with circumflex -dkCircumflex.item("A") := "Â" ; A with circumflex -dkCircumflex.item("c") := "ĉ" ; c with circumflex -dkCircumflex.item("C") := "Ĉ" ; C with circumflex -dkCircumflex.item("e") := "ê" ; e with circumflex -dkCircumflex.item("E") := "Ê" ; E with circumflex -dkCircumflex.item("g") := "ĝ" ; g with circumflex -dkCircumflex.item("G") := "Ĝ" ; G with circumflex -dkCircumflex.item("h") := "Ä¥" ; h with circumflex -dkCircumflex.item("H") := "Ĥ" ; H with circumflex -dkCircumflex.item("i") := "î" ; i with circumflex -dkCircumflex.item("I") := "Î" ; I with circumflex -dkCircumflex.item("j") := "ĵ" ; j with circumflex -dkCircumflex.item("J") := "Ä´" ; J with circumflex -dkCircumflex.item("o") := "ô" ; o with circumflex -dkCircumflex.item("O") := "Ô" ; O with circumflex -dkCircumflex.item("s") := "ŝ" ; s with circumflex -dkCircumflex.item("S") := "Ŝ" ; S with circumflex -dkCircumflex.item("u") := "û" ; u with circumflex -dkCircumflex.item("U") := "Û" ; U with circumflex -dkCircumflex.item("w") := "ŵ" ; w with circumflex -dkCircumflex.item("W") := "Å´" ; W with circumflex -dkCircumflex.item("y") := "Å·" ; y with circumflex -dkCircumflex.item("Y") := "Ŷ" ; Y with circumflex -dkCircumflex.item("z") := "ẑ" ; z with circumflex -dkCircumflex.item("Z") := "Ẑ" ; Z with circumflex -dkCircumflex.item("n") := "₦" ; Nigerian naira -dkCircumflex.item("N") := "₦" ; Nigerian naira -dkCircumflex.item("^") := "{^}" ; circumflex accent -dkCircumflex.item(" ") := "{^}" ; circumflex accent - - -; Dead Key : Caron - -dkCaron := ComObjCreate("Scripting.Dictionary") -dkCaron.item("a") := "ǎ" ; a with caron -dkCaron.item("A") := "Ǎ" ; A with caron -dkCaron.item("c") := "č" ; c with caron -dkCaron.item("C") := "Č" ; C with caron -dkCaron.item("d") := "ď" ; d with caron -dkCaron.item("D") := "Ď" ; D with caron -dkCaron.item("e") := "ě" ; e with caron -dkCaron.item("E") := "Ě" ; E with caron -dkCaron.item("g") := "ǧ" ; g with caron -dkCaron.item("G") := "Ǧ" ; G with caron -dkCaron.item("h") := "ȟ" ; h with caron -dkCaron.item("H") := "Ȟ" ; H with caron -dkCaron.item("i") := "ǐ" ; i with caron -dkCaron.item("I") := "Ǐ" ; I with caron -dkCaron.item("j") := "ǰ" ; j with caron -dkCaron.item("k") := "Ç©" ; k with caron -dkCaron.item("K") := "Ǩ" ; K with caron -dkCaron.item("l") := "ľ" ; l with caron -dkCaron.item("L") := "Ľ" ; L with caron -dkCaron.item("n") := "ň" ; n with caron -dkCaron.item("N") := "Ň" ; N with caron -dkCaron.item("o") := "ǒ" ; o with caron -dkCaron.item("O") := "Ǒ" ; O with caron -dkCaron.item("r") := "ř" ; r with caron -dkCaron.item("R") := "Ř" ; R with caron -dkCaron.item("s") := "Å¡" ; s with caron -dkCaron.item("S") := "Å " ; S with caron -dkCaron.item("t") := "Å¥" ; t with caron -dkCaron.item("T") := "Ť" ; T with caron -dkCaron.item("u") := "ǔ" ; u with caron -dkCaron.item("U") := "Ǔ" ; U with caron -dkCaron.item("z") := "ž" ; z with caron -dkCaron.item("Z") := "Ž" ; Z with caron -dkCaron.item(" ") := "ˇ" ; caron - - -; Dead Key : Ring/Dot Above - -dkRingDotAbove := ComObjCreate("Scripting.Dictionary") -dkRingDotAbove.item("a") := "Ã¥" ; a with ring above -dkRingDotAbove.item("A") := "Å" ; A with ring above -dkRingDotAbove.item("ä") := "ȧ" ; a with dot above -dkRingDotAbove.item("Ä") := "Ȧ" ; a with dot above -dkRingDotAbove.item("b") := "ḃ" ; b with dot above -dkRingDotAbove.item("B") := "Ḃ" ; B with dot above -dkRingDotAbove.item("c") := "ċ" ; c with dot above -dkRingDotAbove.item("C") := "Ċ" ; C with dot above -dkRingDotAbove.item("d") := "ḋ" ; d with dot above -dkRingDotAbove.item("D") := "Ḋ" ; D with dot above -dkRingDotAbove.item("e") := "ė" ; e with dot above -dkRingDotAbove.item("E") := "Ė" ; E with dot above -dkRingDotAbove.item("f") := "ḟ" ; f with dot above -dkRingDotAbove.item("F") := "Ḟ" ; F with dot above -dkRingDotAbove.item("g") := "Ä¡" ; g with dot above -dkRingDotAbove.item("G") := "Ä " ; G with dot above -dkRingDotAbove.item("h") := "ḣ" ; h with dot above -dkRingDotAbove.item("H") := "Ḣ" ; H with dot above -dkRingDotAbove.item("i") := "ı" ; dotless i (Turkish, Azerbaijani) -dkRingDotAbove.item("I") := "İ" ; I with dot above (Turkish, Azerbaijani) -dkRingDotAbove.item("j") := "È·" ; dotless j -dkRingDotAbove.item("l") := "ŀ" ; l with middle dot -dkRingDotAbove.item("L") := "Ä¿" ; L with middle dot -dkRingDotAbove.item("m") := "ṁ" ; m with dot above -dkRingDotAbove.item("M") := "Ṁ" ; M with dot above -dkRingDotAbove.item("n") := "ṅ" ; n with dot above -dkRingDotAbove.item("N") := "Ṅ" ; N with dot above -dkRingDotAbove.item("o") := "ȯ" ; o with dot above -dkRingDotAbove.item("O") := "È®" ; O with dot above -dkRingDotAbove.item("p") := "ṗ" ; p with dot above -dkRingDotAbove.item("P") := "Ṗ" ; P with dot above -dkRingDotAbove.item("r") := "ṙ" ; r with dot above -dkRingDotAbove.item("R") := "Ṙ" ; R with dot above -dkRingDotAbove.item("s") := "ṡ" ; s with dot above -dkRingDotAbove.item("S") := "á¹ " ; S with dot above -dkRingDotAbove.item("t") := "ṫ" ; t with dot above -dkRingDotAbove.item("T") := "Ṫ" ; T with dot above -dkRingDotAbove.item("u") := "ů" ; u with ring above -dkRingDotAbove.item("U") := "Å®" ; U with ring above -dkRingDotAbove.item("w") := "ẘ" ; w with ring above -dkRingDotAbove.item("Ã¥") := "ẇ" ; w with dot above -dkRingDotAbove.item("Å") := "Ẇ" ; W with dot above -dkRingDotAbove.item("x") := "ẋ" ; x with dot above -dkRingDotAbove.item("X") := "Ẋ" ; X with dot above -dkRingDotAbove.item("y") := "ẙ" ; y with ring above -dkRingDotAbove.item("ÿ") := "ẏ" ; y with dot above -dkRingDotAbove.item("Ÿ") := "Ẏ" ; Y with dot above -dkRingDotAbove.item("z") := "ż" ; z with dot above -dkRingDotAbove.item("Z") := "Å»" ; Z with dot above -dkRingDotAbove.item(" ") := "˙" ; dot above - - -; Dead Key : Macron - -dkMacron := ComObjCreate("Scripting.Dictionary") -dkMacron.item("a") := "ā" ; a with macron -dkMacron.item("A") := "Ā" ; A with macron -dkMacron.item("æ") := "Ç£" ; ae with macron -dkMacron.item("Æ") := "Ç¢" ; AE with macron -dkMacron.item("b") := "ƀ" ; b with stroke -dkMacron.item("B") := "Ƀ" ; B with stroke -dkMacron.item("d") := "đ" ; d with stroke -dkMacron.item("D") := "Đ" ; D with stroke -dkMacron.item("e") := "ē" ; e with macron -dkMacron.item("E") := "Ē" ; E with macron -dkMacron.item("g") := "ḡ" ; g with macron -dkMacron.item("G") := "Ḡ" ; G with macron -dkMacron.item("é") := "Ç¥" ; g with stroke (Skolt Sami) -dkMacron.item("É") := "Ǥ" ; G with stroke (Skolt Sami) -dkMacron.item("h") := "ħ" ; h with stroke (Maltese) -dkMacron.item("H") := "Ħ" ; H with stroke (Maltese) -dkMacron.item("i") := "Ä«" ; i with macron -dkMacron.item("I") := "Ī" ; I with macron -dkMacron.item("l") := "ł" ; l with stroke -dkMacron.item("L") := "Ł" ; L with stroke -dkMacron.item("ø") := "ḻ" ; l with line below -dkMacron.item("Ø") := "Ḻ" ; L with line below -dkMacron.item("o") := "ō" ; o with macron -dkMacron.item("O") := "Ō" ; O with macron -dkMacron.item("t") := "ŧ" ; t with stroke -dkMacron.item("T") := "Ŧ" ; T with stroke -dkMacron.item("u") := "Å«" ; u with macron -dkMacron.item("U") := "Ū" ; U with macron -dkMacron.item("y") := "ȳ" ; y with macron -dkMacron.item("Y") := "Ȳ" ; Y with macron -dkMacron.item("z") := "ƶ" ; z with stroke -dkMacron.item("Z") := "Ƶ" ; Z with stroke -dkMacron.item(" ") := "¯" ; macron - - -; Dead Key : Cedilla/Ogonek - -dkCedillaOgonek := ComObjCreate("Scripting.Dictionary") -dkCedillaOgonek.item("a") := "ą" ; a with ogonek -dkCedillaOgonek.item("A") := "Ą" ; A with ogonek -dkCedillaOgonek.item("c") := "ç" ; c with cedilla -dkCedillaOgonek.item("C") := "Ç" ; C with cedilla -dkCedillaOgonek.item("d") := "ḑ" ; d with cedilla -dkCedillaOgonek.item("D") := "Ḑ" ; D with cedilla -dkCedillaOgonek.item("e") := "ę" ; e with ogonek -dkCedillaOgonek.item("E") := "Ę" ; E with ogonek -dkCedillaOgonek.item("ë") := "È©" ; e with cedilla -dkCedillaOgonek.item("Ë") := "Ȩ" ; E with cedilla -dkCedillaOgonek.item("g") := "Ä£" ; g with cedilla -dkCedillaOgonek.item("G") := "Ä¢" ; G with cedilla -dkCedillaOgonek.item("h") := "ḩ" ; h with cedilla -dkCedillaOgonek.item("H") := "Ḩ" ; H with cedilla -dkCedillaOgonek.item("i") := "į" ; i with ogonek -dkCedillaOgonek.item("I") := "Ä®" ; I with ogonek -dkCedillaOgonek.item("k") := "Ä·" ; k with cedilla -dkCedillaOgonek.item("K") := "Ķ" ; K with cedilla -dkCedillaOgonek.item("l") := "ļ" ; l with cedilla -dkCedillaOgonek.item("L") := "Ä»" ; L with cedilla -dkCedillaOgonek.item("n") := "ņ" ; n with cedilla -dkCedillaOgonek.item("N") := "Ņ" ; N with cedilla -dkCedillaOgonek.item("o") := "Ç«" ; o with ogonek -dkCedillaOgonek.item("O") := "Ǫ" ; O with ogonek -dkCedillaOgonek.item("ö") := "Ç­" ; o with ogonek and macron -dkCedillaOgonek.item("Ö") := "Ǭ" ; O with ogonek and macron -dkCedillaOgonek.item("r") := "ŗ" ; r with cedilla -dkCedillaOgonek.item("R") := "Ŗ" ; R with cedilla -dkCedillaOgonek.item("s") := "ş" ; s with cedilla -dkCedillaOgonek.item("S") := "Ş" ; S with cedilla -dkCedillaOgonek.item("t") := "Å£" ; t with cedilla -dkCedillaOgonek.item("T") := "Å¢" ; T with cedilla -dkCedillaOgonek.item("u") := "ų" ; u with ogonek -dkCedillaOgonek.item("U") := "Ų" ; U with ogonek -dkCedillaOgonek.item("w") := "₩" ; South Korean won -dkCedillaOgonek.item("W") := "₩" ; South Korean won -dkCedillaOgonek.item(".") := "˛" ; ogonek -dkCedillaOgonek.item(" ") := "¸" ; cedilla - - -; Dead Key : Breve/Special - -dkBreveSpecial := ComObjCreate("Scripting.Dictionary") -dkBreveSpecial.item("a") := "ă" ; a with breve -dkBreveSpecial.item("A") := "Ă" ; A with breve -dkBreveSpecial.item("d") := "ɖ" ; small letter d with tail -dkBreveSpecial.item("D") := "Ɖ" ; capital letter African D -dkBreveSpecial.item("e") := "ĕ" ; e with breve -dkBreveSpecial.item("E") := "Ĕ" ; E with breve -dkBreveSpecial.item("ë") := "ǝ" ; small turned e -dkBreveSpecial.item("Ë") := "Ǝ" ; capital reversed E -dkBreveSpecial.item("f") := "ə" ; small letter schwa (Azerbaijani) -dkBreveSpecial.item("F") := "Ə" ; capital letter schwa (Azerbaijani) -dkBreveSpecial.item("g") := "ğ" ; g with breve -dkBreveSpecial.item("G") := "Ğ" ; G with breve -dkBreveSpecial.item("h") := "É£" ; latin small gamma -dkBreveSpecial.item("H") := "Ɣ" ; latin capital gamma -dkBreveSpecial.item("i") := "Ä­" ; i with breve -dkBreveSpecial.item("I") := "Ĭ" ; I with breve -dkBreveSpecial.item("j") := "ij" ; ligature ij -dkBreveSpecial.item("J") := "IJ" ; ligature IJ -dkBreveSpecial.item("k") := "ĸ" ; small letter kra -dkBreveSpecial.item("n") := "ŋ" ; small letter eng(ma) -dkBreveSpecial.item("N") := "Ŋ" ; capital letter eng(ma) -dkBreveSpecial.item("o") := "ŏ" ; o with breve -dkBreveSpecial.item("O") := "Ŏ" ; O with breve -dkBreveSpecial.item("ö") := "ɔ" ; small open o -dkBreveSpecial.item("Ö") := "Ɔ" ; capital open O -dkBreveSpecial.item("s") := "ș" ; s with comma below (Romanian) -dkBreveSpecial.item("S") := "Ș" ; S with comma below (Romanian) -dkBreveSpecial.item("t") := "ț" ; t with comma below (Romanian) -dkBreveSpecial.item("T") := "Ț" ; T with comma below (Romanian) -dkBreveSpecial.item("u") := "Å­" ; u with breve -dkBreveSpecial.item("U") := "Ŭ" ; U with breve -dkBreveSpecial.item("ü") := "ʊ" ; latin small letter upsilon -dkBreveSpecial.item("Ü") := "Ʊ" ; latin capital letter upsilon -dkBreveSpecial.item("w") := "Æ¿" ; small letter wynn -dkBreveSpecial.item("W") := "Ç·" ; capital letter wynn -dkBreveSpecial.item("y") := "ȝ" ; small letter yogh -dkBreveSpecial.item("Y") := "Ȝ" ; capital letter yogh -dkBreveSpecial.item("z") := "ʒ" ; small letter ezh -dkBreveSpecial.item("Z") := "Æ·" ; capital letter ezh -dkBreveSpecial.item("à") := "ǯ" ; small letter ezh with caron -dkBreveSpecial.item("À") := "Ç®" ; capital letter ezh with caron -dkBreveSpecial.item(" ") := "˘" ; breve - - -; Dead Key : Acute Accent - -dkAcuteAccent := ComObjCreate("Scripting.Dictionary") -dkAcuteAccent.item("a") := "á" ; a with acute -dkAcuteAccent.item("A") := "Á" ; A with acute -dkAcuteAccent.item("c") := "ć" ; c with acute -dkAcuteAccent.item("C") := "Ć" ; C with acute -dkAcuteAccent.item("ç") := "ḉ" ; c with cedilla and acute -dkAcuteAccent.item("Ç") := "Ḉ" ; C with cedilla and acute -dkAcuteAccent.item("e") := "é" ; e with acute -dkAcuteAccent.item("E") := "É" ; E with acute -dkAcuteAccent.item("g") := "ǵ" ; g with acute -dkAcuteAccent.item("G") := "Ç´" ; G with acute -dkAcuteAccent.item("i") := "í" ; i with acute -dkAcuteAccent.item("I") := "Í" ; I with acute -dkAcuteAccent.item("j") := "ij" ; ligature ij -dkAcuteAccent.item("J") := "IJ" ; ligature IJ -dkAcuteAccent.item("k") := "ḱ" ; k with acute -dkAcuteAccent.item("K") := "Ḱ" ; K with acute -dkAcuteAccent.item("l") := "ĺ" ; l with acute -dkAcuteAccent.item("L") := "Ĺ" ; L with acute -dkAcuteAccent.item("m") := "ḿ" ; m with acute -dkAcuteAccent.item("M") := "Ḿ" ; M with acute -dkAcuteAccent.item("n") := "ń" ; n with acute -dkAcuteAccent.item("N") := "Ń" ; N with acute -dkAcuteAccent.item("o") := "ó" ; o with acute -dkAcuteAccent.item("O") := "Ó" ; O with acute -dkAcuteAccent.item("ö") := "ő" ; o with double acute -dkAcuteAccent.item("Ö") := "Ő" ; O with double acute -dkAcuteAccent.item("p") := "ṕ" ; p with acute -dkAcuteAccent.item("P") := "Ṕ" ; P with acute -dkAcuteAccent.item("r") := "ŕ" ; r with acute -dkAcuteAccent.item("R") := "Ŕ" ; R with acute -dkAcuteAccent.item("s") := "ś" ; s with acute -dkAcuteAccent.item("S") := "Ś" ; S with acute -dkAcuteAccent.item("u") := "ú" ; u with acute -dkAcuteAccent.item("U") := "Ú" ; U with acute -dkAcuteAccent.item("ü") := "ű" ; u with double acute -dkAcuteAccent.item("Ü") := "Ű" ; U with double acute -dkAcuteAccent.item("w") := "ẃ" ; w with acute -dkAcuteAccent.item("W") := "Ẃ" ; W with acute -dkAcuteAccent.item("y") := "ý" ; y with acute -dkAcuteAccent.item("Y") := "Ý" ; Y with acute -dkAcuteAccent.item("z") := "ź" ; z with acute -dkAcuteAccent.item("Z") := "Ź" ; Z with acute -dkAcuteAccent.item("Ã¥") := "Ç»" ; a with ring above and acute -dkAcuteAccent.item("Å") := "Ǻ" ; A with ring above and acute -dkAcuteAccent.item("æ") := "ǽ" ; ae with acute -dkAcuteAccent.item("Æ") := "Ǽ" ; AE with acute -dkAcuteAccent.item("ø") := "Ç¿" ; o with stroke and acute -dkAcuteAccent.item("Ø") := "Ǿ" ; O with stroke and acute -dkAcuteAccent.item("8") := "♪" ; eighth note -dkAcuteAccent.item("*") := "♫" ; beamed eighth notes -dkAcuteAccent.item("'") := "´" ; acute accent -dkAcuteAccent.item(" ") := "´" ; acute accent - - -; Dead Key : Diaeresis - -dkDiaeresis := ComObjCreate("Scripting.Dictionary") -dkDiaeresis.item("a") := "ä" ; a with diaeresis -dkDiaeresis.item("A") := "Ä" ; A with diaeresis -dkDiaeresis.item("e") := "ë" ; e with diaeresis -dkDiaeresis.item("E") := "Ë" ; E with diaeresis -dkDiaeresis.item("h") := "ḧ" ; h with diaeresis -dkDiaeresis.item("H") := "Ḧ" ; H with diaeresis -dkDiaeresis.item("i") := "ï" ; i with diaeresis -dkDiaeresis.item("I") := "Ï" ; I with diaeresis -dkDiaeresis.item("o") := "ö" ; o with diaeresis -dkDiaeresis.item("O") := "Ö" ; O with diaeresis -dkDiaeresis.item("s") := "ß" ; small sharp s (Eszett) -dkDiaeresis.item("S") := "ẞ" ; capital sharp S (capital Eszett) -dkDiaeresis.item("t") := "ẗ" ; t with diaeresis -dkDiaeresis.item("u") := "ü" ; u with diaeresis -dkDiaeresis.item("U") := "Ü" ; U with diaeresis -dkDiaeresis.item("w") := "ẅ" ; w with diaeresis -dkDiaeresis.item("W") := "Ẅ" ; W with diaeresis -dkDiaeresis.item("x") := "ẍ" ; x with diaeresis -dkDiaeresis.item("X") := "Ẍ" ; X with diaeresis -dkDiaeresis.item("y") := "ÿ" ; y with diaeresis -dkDiaeresis.item("Y") := "Ÿ" ; Y with diaeresis -dkDiaeresis.item("""") := "¨" ; diaeresis -dkDiaeresis.item(" ") := "¨" ; diaeresis - - -; Dead Key : Grave Accent - -dkGraveAccent := ComObjCreate("Scripting.Dictionary") -dkGraveAccent.item("a") := "à" ; a with grave -dkGraveAccent.item("A") := "À" ; A with grave -dkGraveAccent.item("e") := "è" ; e with grave -dkGraveAccent.item("E") := "È" ; E with grave -dkGraveAccent.item("i") := "ì" ; i with grave -dkGraveAccent.item("I") := "Ì" ; I with grave -dkGraveAccent.item("n") := "ǹ" ; n with grave -dkGraveAccent.item("N") := "Ǹ" ; N with grave -dkGraveAccent.item("o") := "ò" ; o with grave -dkGraveAccent.item("O") := "Ò" ; O with grave -dkGraveAccent.item("u") := "ù" ; u with grave -dkGraveAccent.item("U") := "Ù" ; U with grave -dkGraveAccent.item("w") := "ẁ" ; w with grave -dkGraveAccent.item("W") := "Ẁ" ; W with grave -dkGraveAccent.item("y") := "ỳ" ; y with grave -dkGraveAccent.item("Y") := "Ỳ" ; Y with grave -dkGraveAccent.item("ä") := "₳" ; Argentine austral -dkGraveAccent.item("Ä") := "₳" ; Argentine austral -dkGraveAccent.item("b") := "₿" ; bitcoin -dkGraveAccent.item("B") := "₿" ; bitcoin -dkGraveAccent.item("c") := "₡" ; Costa Rican colón -dkGraveAccent.item("C") := "₵" ; Ghanaian cedi -dkGraveAccent.item("ç") := "₢" ; Brazilian cruzeiro -dkGraveAccent.item("Ç") := "₢" ; Brazilian cruzeiro -dkGraveAccent.item("d") := "₫" ; Vietnamese dong -dkGraveAccent.item("D") := "₯" ; Greek drachma -dkGraveAccent.item("f") := "₣" ; French franc -dkGraveAccent.item("F") := "₣" ; French franc -dkGraveAccent.item("g") := "₲" ; Paraguayan guaraní -dkGraveAccent.item("G") := "₲" ; Paraguayan guaraní -dkGraveAccent.item("h") := "₴" ; Ukrainian hryvnia -dkGraveAccent.item("H") := "₴" ; Ukrainian hryvnia -dkGraveAccent.item("k") := "₭" ; Laotian kip -dkGraveAccent.item("K") := "₭" ; Laotian kip -dkGraveAccent.item("l") := "₺" ; Turkish lira -dkGraveAccent.item("L") := "₾" ; Georgian lari -dkGraveAccent.item("ø") := "₤" ; lira -dkGraveAccent.item("Ø") := "₤" ; lira -dkGraveAccent.item("m") := "₼" ; Azerbaijani manat -dkGraveAccent.item("M") := "₥" ; mill sign -dkGraveAccent.item("ñ") := "₦" ; Nigerian naira -dkGraveAccent.item("Ñ") := "₦" ; Nigerian naira -dkGraveAccent.item("p") := "₱" ; Philippine peso -dkGraveAccent.item("P") := "₱" ; Philippine peso -dkGraveAccent.item("r") := "₹" ; Indian rupee -dkGraveAccent.item("R") := "₽" ; Russian ruble -dkGraveAccent.item("s") := "₪" ; Israeli new shekel -dkGraveAccent.item("S") := "₪" ; Israeli new shekel -dkGraveAccent.item("t") := "₮" ; Mongolian tögrög (tugrik) -dkGraveAccent.item("T") := "₸" ; Kazakh tenge -dkGraveAccent.item("Ã¥") := "₩" ; South Korean won -dkGraveAccent.item("Å") := "₩" ; South Korean won -dkGraveAccent.item("``") := "``" ; grave accent -dkGraveAccent.item(" ") := "``" ; grave accent - - -; Dead Key : Tilde - -dkTilde := ComObjCreate("Scripting.Dictionary") -dkTilde.item("a") := "ã" ; a with tilde -dkTilde.item("A") := "Ã" ; A with tilde -dkTilde.item("e") := "ẽ" ; e with tilde -dkTilde.item("E") := "Ẽ" ; E with tilde -dkTilde.item("i") := "Ä©" ; i with tilde -dkTilde.item("I") := "Ĩ" ; I with tilde -dkTilde.item("n") := "ñ" ; n with tilde -dkTilde.item("N") := "Ñ" ; N with tilde -dkTilde.item("o") := "õ" ; o with tilde -dkTilde.item("O") := "Õ" ; O with tilde -dkTilde.item("u") := "Å©" ; u with tilde -dkTilde.item("U") := "Ũ" ; U with tilde -dkTilde.item("v") := "á¹½" ; v with tilde -dkTilde.item("V") := "á¹¼" ; V with tilde -dkTilde.item("y") := "ỹ" ; y with tilde -dkTilde.item("Y") := "Ỹ" ; Y with tilde -dkTilde.item("~") := "~" ; tilde -dkTilde.item(" ") := "~" ; tilde - - -; Dead Key : Not Sign - -dkNotSign := ComObjCreate("Scripting.Dictionary") -dkNotSign.item("a") := "ª" ; feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) -dkNotSign.item("A") := "ª" ; feminine ordinal indicator (Spanish, Portuguese, Italian, Galician) -dkNotSign.item("b") := "☐" ; ballot box -dkNotSign.item("B") := "☒" ; ballot box with x -dkNotSign.item("c") := "©" ; copyright sign -dkNotSign.item("C") := "¤" ; currency sign -dkNotSign.item("d") := "†" ; dagger -dkNotSign.item("D") := "‡" ; double dagger -dkNotSign.item("e") := "…" ; ellipsis -dkNotSign.item("E") := "℮" ; estimated symbol -dkNotSign.item("f") := "♀" ; Venus symbol (female) -dkNotSign.item("F") := "♀" ; Venus symbol (female) -dkNotSign.item("h") := "♡" ; white heart suit -dkNotSign.item("H") := "♥" ; black heart suit -dkNotSign.item("l") := "ℓ" ; script small l -dkNotSign.item("L") := "ℓ" ; script small l -dkNotSign.item("m") := "♂" ; Mars symbol (male) -dkNotSign.item("M") := "♂" ; Mars symbol (male) -dkNotSign.item("n") := "¬" ; not sign -dkNotSign.item("N") := "¬" ; not sign -dkNotSign.item("o") := "º" ; masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) -dkNotSign.item("O") := "º" ; masculine ordinal indicator (Spanish, Portuguese, Italian, Galician) -dkNotSign.item("p") := "¶" ; pilcrow sign -dkNotSign.item("P") := "℗" ; sound recording copyright -dkNotSign.item("r") := "®" ; registered sign -dkNotSign.item("R") := "®" ; registered sign -dkNotSign.item("s") := "§" ; section sign -dkNotSign.item("S") := "℠" ; service mark -dkNotSign.item("t") := "™" ; trademark symbol -dkNotSign.item("T") := "™" ; trademark symbol -dkNotSign.item("v") := "✓" ; check mark -dkNotSign.item("V") := "✔" ; heavy check mark -dkNotSign.item("w") := "☑" ; ballot box with check -dkNotSign.item("W") := "☙" ; reversed rotated floral heart bullet -dkNotSign.item("x") := "✗" ; ballot x -dkNotSign.item("X") := "✘" ; heavy ballot x -dkNotSign.item("y") := "☺" ; white smiling face -dkNotSign.item("Y") := "☻" ; black smiling face -dkNotSign.item("1") := "№" ; numero sign -dkNotSign.item("2") := "½" ; vulgar fraction 1/2 -dkNotSign.item("3") := "⅓" ; vulgar fraction 1/3 -dkNotSign.item("4") := "¼" ; vulgar fraction 1/4 -dkNotSign.item("5") := "⅔" ; vulgar fraction 2/3 -dkNotSign.item("6") := "¾" ; vulgar fraction 3/4 -dkNotSign.item("7") := "⅛" ; vulgar fraction 1/8 -dkNotSign.item("8") := "⅜" ; vulgar fraction 3/8 -dkNotSign.item("9") := "⅝" ; vulgar fraction 5/8 -dkNotSign.item("0") := "⅞" ; vulgar fraction 7/8 -dkNotSign.item(".") := "•" ; bullet -dkNotSign.item("-") := "⁃" ; hyphen bullet -dkNotSign.item("\") := "⁞" ; vertical four dots -dkNotSign.item("|") := "⁞" ; vertical four dots -dkNotSign.item(" ") := "¬" ; not sign - - -; Dead Key : Broken Bar - -dkBrokenBar := ComObjCreate("Scripting.Dictionary") -dkBrokenBar.item("b") := "ɓ" ; b with hook -dkBrokenBar.item("B") := "Ɓ" ; B with hook -dkBrokenBar.item("c") := "ƈ" ; c with hook -dkBrokenBar.item("C") := "Ƈ" ; C with hook -dkBrokenBar.item("d") := "ɗ" ; d with hook -dkBrokenBar.item("D") := "Ɗ" ; D with hook -dkBrokenBar.item("e") := "ɛ" ; small open e (latin small epsilon) -dkBrokenBar.item("E") := "Ɛ" ; capital open E (latin capital epsilon) -dkBrokenBar.item("f") := "ƒ" ; f with hook -dkBrokenBar.item("F") := "Ƒ" ; F with hook -dkBrokenBar.item("g") := "É " ; g with hook -dkBrokenBar.item("G") := "Ɠ" ; G with hook -dkBrokenBar.item("h") := "❦" ; floral heart -dkBrokenBar.item("H") := "❧" ; rotated floral heart bullet -dkBrokenBar.item("k") := "ƙ" ; k with hook -dkBrokenBar.item("K") := "Ƙ" ; K with hook -dkBrokenBar.item("n") := "ɲ" ; n with left hook -dkBrokenBar.item("N") := "Ɲ" ; N with left hook -dkBrokenBar.item("o") := "Æ¡" ; o with horn -dkBrokenBar.item("O") := "Æ " ; O with horn -dkBrokenBar.item("p") := "Æ¥" ; p with hook -dkBrokenBar.item("P") := "Ƥ" ; P with hook -dkBrokenBar.item("s") := "ʃ" ; small letter esh -dkBrokenBar.item("S") := "Æ©" ; capital letter esh -dkBrokenBar.item("ß") := "Å¿" ; small long s -dkBrokenBar.item("t") := "Æ­" ; t with hook -dkBrokenBar.item("T") := "Ƭ" ; T with hook -dkBrokenBar.item("u") := "ư" ; u with horn -dkBrokenBar.item("U") := "Ư" ; U with horn -dkBrokenBar.item("v") := "ʋ" ; v with hook -dkBrokenBar.item("V") := "Ʋ" ; V with hook -dkBrokenBar.item("w") := "â±³" ; w with hook -dkBrokenBar.item("W") := "â±²" ; W with hook -dkBrokenBar.item("y") := "Æ´" ; y with hook -dkBrokenBar.item("Y") := "Ƴ" ; Y with hook -dkBrokenBar.item("z") := "È¥" ; z with hook -dkBrokenBar.item("Z") := "Ȥ" ; Z with hook -dkBrokenBar.item("1") := "←" ; leftwards arrow -dkBrokenBar.item("2") := "↓" ; downwards arrow -dkBrokenBar.item("3") := "↑" ; upwards arrow -dkBrokenBar.item("4") := "→" ; rightwards arrow -dkBrokenBar.item("5") := "↖" ; north west arrow -dkBrokenBar.item("6") := "↙" ; south west arrow -dkBrokenBar.item("7") := "↗" ; north east arrow -dkBrokenBar.item("8") := "↘" ; south east arrow -dkBrokenBar.item("9") := "↕" ; up down arrow -dkBrokenBar.item("0") := "↨" ; up down arrow with base -dkBrokenBar.item("=") := "↔" ; left right arrow -dkBrokenBar.item("!") := "⇐" ; leftwards double arrow -dkBrokenBar.item("@") := "⇓" ; downwards double arrow -dkBrokenBar.item("#") := "⇑" ; upwards double arrow -dkBrokenBar.item("$") := "⇒" ; rightwards double arrow -dkBrokenBar.item("%") := "⇖" ; north west double arrow -dkBrokenBar.item("^") := "⇙" ; south west double arrow -dkBrokenBar.item("&") := "⇗" ; north east double arrow -dkBrokenBar.item("*") := "⇘" ; south east double arrow -dkBrokenBar.item("(") := "⇕" ; up down double arrow -dkBrokenBar.item(")") := "↲" ; downwards arrow with tip leftwards -dkBrokenBar.item("+") := "⇔" ; left right double arrow -dkBrokenBar.item("\") := "¦" ; broken bar -dkBrokenBar.item("|") := "¦" ; broken bar -dkBrokenBar.item(" ") := "¦" ; broken bar - - -; Dead Key : Greek Alphabet - -dkGreekAlphabet := ComObjCreate("Scripting.Dictionary") -dkGreekAlphabet.item("a") := "α" ; small alpha -dkGreekAlphabet.item("A") := "Α" ; capital alpha -dkGreekAlphabet.item("b") := "β" ; small beta -dkGreekAlphabet.item("B") := "Β" ; capital beta -dkGreekAlphabet.item("v") := "β" ; small beta -dkGreekAlphabet.item("V") := "Β" ; capital beta -dkGreekAlphabet.item("g") := "γ" ; small gamma -dkGreekAlphabet.item("G") := "Γ" ; capital gamma -dkGreekAlphabet.item("d") := "δ" ; small delta -dkGreekAlphabet.item("D") := "Δ" ; capital delta -dkGreekAlphabet.item("e") := "ε" ; small epsilon -dkGreekAlphabet.item("E") := "Ε" ; capital epsilon -dkGreekAlphabet.item("z") := "ζ" ; small zeta -dkGreekAlphabet.item("Z") := "Ζ" ; capital zeta -dkGreekAlphabet.item("i") := "η" ; small eta -dkGreekAlphabet.item("I") := "Η" ; capital eta -dkGreekAlphabet.item("h") := "θ" ; small theta -dkGreekAlphabet.item("H") := "Θ" ; capital theta -dkGreekAlphabet.item("j") := "ι" ; small iota -dkGreekAlphabet.item("J") := "Ι" ; capital iota -dkGreekAlphabet.item("k") := "κ" ; small kappa -dkGreekAlphabet.item("K") := "Κ" ; capital kappa -dkGreekAlphabet.item("l") := "λ" ; small lambda -dkGreekAlphabet.item("L") := "Λ" ; capital lambda -dkGreekAlphabet.item("m") := "μ" ; small mu -dkGreekAlphabet.item("M") := "Μ" ; capital mu -dkGreekAlphabet.item("n") := "ν" ; small nu -dkGreekAlphabet.item("N") := "Ν" ; capital nu -dkGreekAlphabet.item("x") := "ξ" ; small xi -dkGreekAlphabet.item("X") := "Ξ" ; capital xi -dkGreekAlphabet.item("o") := "ο" ; small omikron -dkGreekAlphabet.item("O") := "Ο" ; capital omikron -dkGreekAlphabet.item("p") := "π" ; small pi -dkGreekAlphabet.item("P") := "Π" ; capital pi -dkGreekAlphabet.item("r") := "ρ" ; small rho -dkGreekAlphabet.item("R") := "Ρ" ; capital rho -dkGreekAlphabet.item("s") := "σ" ; small sigma -dkGreekAlphabet.item("S") := "Σ" ; capital sigma -dkGreekAlphabet.item(",") := "ς" ; small sigma, in word-final position -dkGreekAlphabet.item("ß") := "ς" ; small sigma, in word-final position -dkGreekAlphabet.item("t") := "τ" ; small tau -dkGreekAlphabet.item("T") := "Τ" ; capital tau -dkGreekAlphabet.item("y") := "υ" ; small upsilon -dkGreekAlphabet.item("Y") := "Î¥" ; capital upsilon -dkGreekAlphabet.item("f") := "φ" ; small phi -dkGreekAlphabet.item("F") := "Φ" ; capital phi -dkGreekAlphabet.item("c") := "χ" ; small chi -dkGreekAlphabet.item("C") := "Χ" ; capital chi -dkGreekAlphabet.item("w") := "ψ" ; small psi -dkGreekAlphabet.item("W") := "Ψ" ; capital psi -dkGreekAlphabet.item("q") := "ω" ; small omega -dkGreekAlphabet.item("Q") := "Ω" ; capital omega -dkGreekAlphabet.item("u") := "ω" ; small omega -dkGreekAlphabet.item("U") := "Ω" ; capital omega -dkGreekAlphabet.item("1") := "¹" ; superscript 1 -dkGreekAlphabet.item("2") := "²" ; superscript 2 -dkGreekAlphabet.item("3") := "³" ; superscript 3 -dkGreekAlphabet.item("4") := "⁴" ; superscript 4 -dkGreekAlphabet.item("5") := "⁵" ; superscript 5 -dkGreekAlphabet.item("6") := "⁶" ; superscript 6 -dkGreekAlphabet.item("7") := "⁷" ; superscript 7 -dkGreekAlphabet.item("8") := "⁸" ; superscript 8 -dkGreekAlphabet.item("9") := "⁹" ; superscript 9 -dkGreekAlphabet.item("0") := "⁰" ; superscript 0 -dkGreekAlphabet.item("-") := "⁻" ; superscript - -dkGreekAlphabet.item("=") := "⁼" ; superscript = -dkGreekAlphabet.item("+") := "⁺" ; superscript + -dkGreekAlphabet.item("[") := "⁽" ; superscript ( -dkGreekAlphabet.item("]") := "⁾" ; superscript ) -dkGreekAlphabet.item("!") := "₁" ; subscript 1 -dkGreekAlphabet.item("@") := "₂" ; subscript 2 -dkGreekAlphabet.item("#") := "₃" ; subscript 3 -dkGreekAlphabet.item("$") := "₄" ; subscript 4 -dkGreekAlphabet.item("%") := "₅" ; subscript 5 -dkGreekAlphabet.item("^") := "₆" ; subscript 6 -dkGreekAlphabet.item("&") := "₇" ; subscript 7 -dkGreekAlphabet.item("*") := "₈" ; subscript 8 -dkGreekAlphabet.item("(") := "₉" ; subscript 9 -dkGreekAlphabet.item(")") := "₀" ; subscript 0 -dkGreekAlphabet.item(";") := "₋" ; subscript - -dkGreekAlphabet.item("'") := "₌" ; subscript = -dkGreekAlphabet.item("""") := "₊" ; subscript + -dkGreekAlphabet.item("{") := "₍" ; subscript ( -dkGreekAlphabet.item("}") := "₎" ; subscript ) -dkGreekAlphabet.item(".") := "µ" ; micro sign -dkGreekAlphabet.item(" ") := "μ" ; small mu - - -; Dead Key : Math Symbols - -dkMathSymbols := ComObjCreate("Scripting.Dictionary") -dkMathSymbols.item("a") := "∀" ; for all -dkMathSymbols.item("A") := "∀" ; for all -dkMathSymbols.item("b") := "⊆" ; subset of or equal to -dkMathSymbols.item("B") := "⊇" ; superset of or equal to -dkMathSymbols.item("c") := "∝" ; proportional to -dkMathSymbols.item("C") := "ℂ" ; complex numbers -dkMathSymbols.item("d") := "∆" ; increment operator -dkMathSymbols.item("D") := "∇" ; nable/del operator -dkMathSymbols.item("e") := "∃" ; there exists -dkMathSymbols.item("E") := "∄" ; there does not exist -dkMathSymbols.item("f") := "ƒ" ; f with hook -dkMathSymbols.item("F") := "∎" ; end of proof -dkMathSymbols.item("g") := "⊂" ; subset of -dkMathSymbols.item("G") := "⊄" ; not a subset of -dkMathSymbols.item("h") := "⊃" ; superset of -dkMathSymbols.item("H") := "⊅" ; not a superset of -dkMathSymbols.item("i") := "∞" ; infinity symbol -dkMathSymbols.item("I") := "∞" ; infinity symbol -dkMathSymbols.item("k") := "∋" ; contains as member -dkMathSymbols.item("K") := "∌" ; does not contain as member -dkMathSymbols.item("l") := "∥" ; parallel to -dkMathSymbols.item("L") := "∦" ; not parallel to -dkMathSymbols.item("m") := "∈" ; element of -dkMathSymbols.item("M") := "∉" ; not an element of -dkMathSymbols.item("n") := "ⁿ" ; superscript n -dkMathSymbols.item("N") := "ℕ" ; natural numbers -dkMathSymbols.item("o") := "∘" ; ring operator -dkMathSymbols.item("O") := "∅" ; empty set -dkMathSymbols.item("p") := "∂" ; partial differential -dkMathSymbols.item("P") := "ℙ" ; prime numbers -dkMathSymbols.item("q") := "ℚ" ; rational numbers -dkMathSymbols.item("Q") := "ℚ" ; rational numbers -dkMathSymbols.item("r") := "√" ; square root -dkMathSymbols.item("R") := "ℝ" ; real numbers -dkMathSymbols.item("s") := "∩" ; set intersection -dkMathSymbols.item("S") := "∫" ; integral symbol -dkMathSymbols.item("u") := "∪" ; set union -dkMathSymbols.item("U") := "∖" ; set minus -dkMathSymbols.item("z") := "↯" ; downwards zigzag arrow -dkMathSymbols.item("Z") := "ℤ" ; whole numbers -dkMathSymbols.item("1") := "≠" ; not equal to -dkMathSymbols.item("!") := "≠" ; not equal to -dkMathSymbols.item("2") := "√" ; square root -dkMathSymbols.item("3") := "∛" ; cube root -dkMathSymbols.item("4") := "∜" ; fourth root -dkMathSymbols.item("5") := "‰" ; per mille sign -dkMathSymbols.item("%") := "‱" ; per ten thousand sign -dkMathSymbols.item("6") := "℘" ; script capital p -dkMathSymbols.item("^") := "℘" ; script capital p -dkMathSymbols.item("7") := "∧" ; logical and -dkMathSymbols.item("&") := "∧" ; logical and -dkMathSymbols.item("8") := "⊗" ; tensor product -dkMathSymbols.item("*") := "⊗" ; tensor product -dkMathSymbols.item("9") := "∟" ; right angle -dkMathSymbols.item("0") := "∠" ; angle symbol -dkMathSymbols.item(")") := "∡" ; measured angle -dkMathSymbols.item("``") := "≈" ; almost equal to -dkMathSymbols.item("~") := "≈" ; almost equal to -dkMathSymbols.item(",") := "≤" ; less-than or equal to -dkMathSymbols.item("<") := "≤" ; less-than or equal to -dkMathSymbols.item(".") := "≥" ; greater-than or equal to -dkMathSymbols.item(">") := "≥" ; greater-than or equal to -dkMathSymbols.item("-") := "±" ; plus-minus sign -dkMathSymbols.item("_") := "⊖" ; circled minus -dkMathSymbols.item("=") := "≝" ; equal to by definition -dkMathSymbols.item("+") := "⊕" ; exclusive or -dkMathSymbols.item(";") := "∵" ; because sign -dkMathSymbols.item(":") := "∴" ; therefore sign -dkMathSymbols.item("\") := "∨" ; logical or -dkMathSymbols.item("|") := "∨" ; logical or -dkMathSymbols.item(" ") := "√" ; square root - - -; Configuration : Right Alt on US QWERTY - ->!a:: - if GetKeyState("CapsLock", "T") - Send Ä ; A with diaeresis - else - Send ä ; a with diaeresis -return ->!+a:: - if GetKeyState("CapsLock", "T") - Send ä ; a with diaeresis - else - Send Ä ; A with diaeresis -return - ->!z:: - if GetKeyState("CapsLock", "T") - Send À ; A with grave - else - Send à ; a with grave -return ->!+z:: - if GetKeyState("CapsLock", "T") - Send à ; a with grave - else - Send À ; A with grave -return - ->!x:: - if GetKeyState("CapsLock", "T") - Send Á ; A with acute - else - Send á ; a with acute -return ->!+x:: - if GetKeyState("CapsLock", "T") - Send á ; a with acute - else - Send Á ; A with acute -return - ->!q:: - if GetKeyState("CapsLock", "T") - Send Æ ; letter AE - else - Send æ ; letter ae -return ->!+q:: - if GetKeyState("CapsLock", "T") - Send æ ; letter ae - else - Send Æ ; letter AE -return - ->!w:: - if GetKeyState("CapsLock", "T") - Send Å ; A with ring above - else - Send Ã¥ ; a with ring above -return ->!+w:: - if GetKeyState("CapsLock", "T") - Send Ã¥ ; a with ring above - else - Send Å ; A with ring above -return - ->!c:: - if GetKeyState("CapsLock", "T") - Send Ç ; C with cedilla - else - Send ç ; c with cedilla -return ->!+c:: - if GetKeyState("CapsLock", "T") - Send ç ; c with cedilla - else - Send Ç ; C with cedilla -return - ->!d:: - if GetKeyState("CapsLock", "T") - Send Ð ; capital letter eth - else - Send ð ; small letter eth -return ->!+d:: - if GetKeyState("CapsLock", "T") - Send ð ; small letter eth - else - Send Ð ; capital letter eth -return - ->!e:: - if GetKeyState("CapsLock", "T") - Send Ë ; E with diaeresis - else - Send ë ; e with diaeresis -return ->!+e:: - if GetKeyState("CapsLock", "T") - Send ë ; e with diaeresis - else - Send Ë ; E with diaeresis -return - ->!f:: - if GetKeyState("CapsLock", "T") - Send È ; E with grave - else - Send è ; e with grave -return ->!+f:: - if GetKeyState("CapsLock", "T") - Send è ; e with grave - else - Send È ; E with grave -return - ->!g:: - if GetKeyState("CapsLock", "T") - Send É ; E with acute - else - Send é ; e with acute -return ->!+g:: - if GetKeyState("CapsLock", "T") - Send é ; e with acute - else - Send É ; E with acute -return - ->!i:: - if GetKeyState("CapsLock", "T") - Send Ï ; I with diaeresis - else - Send ï ; i with diaeresis -return ->!+i:: - if GetKeyState("CapsLock", "T") - Send ï ; i with diaeresis - else - Send Ï ; I with diaeresis -return - ->!v:: - if GetKeyState("CapsLock", "T") - Send Ì ; I with grave - else - Send ì ; i with grave -return ->!+v:: - if GetKeyState("CapsLock", "T") - Send ì ; i with grave - else - Send Ì ; I with grave -return - ->!b:: - if GetKeyState("CapsLock", "T") - Send Í ; I with acute - else - Send í ; i with acute -return ->!+b:: - if GetKeyState("CapsLock", "T") - Send í ; i with acute - else - Send Í ; I with acute -return - ->!o:: - if GetKeyState("CapsLock", "T") - Send Ö ; O with diaeresis - else - Send ö ; o with diaeresis -return ->!+o:: - if GetKeyState("CapsLock", "T") - Send ö ; o with diaeresis - else - Send Ö ; O with diaeresis -return - ->!,:: - if GetKeyState("CapsLock", "T") - Send Ò ; O with grave - else - Send ò ; o with grave -return ->!<:: - if GetKeyState("CapsLock", "T") - Send ò ; o with grave - else - Send Ò ; O with grave -return - ->!.:: - if GetKeyState("CapsLock", "T") - Send Ó ; O with acute - else - Send ó ; o with acute -return ->!>:: - if GetKeyState("CapsLock", "T") - Send ó ; o with acute - else - Send Ó ; O with acute -return - ->!l:: - if GetKeyState("CapsLock", "T") - Send Ø ; O with stroke - else - Send ø ; o with stroke -return ->!+l:: - if GetKeyState("CapsLock", "T") - Send ø ; o with stroke - else - Send Ø ; O with stroke -return - ->!p:: - if GetKeyState("CapsLock", "T") - Send Œ ; ligature OE - else - Send œ ; ligature oe -return ->!+p:: - if GetKeyState("CapsLock", "T") - Send œ ; ligature oe - else - Send Œ ; ligature OE -return - ->!n:: - if GetKeyState("CapsLock", "T") - Send Ñ ; N with tilde - else - Send ñ ; n with tilde -return ->!+n:: - if GetKeyState("CapsLock", "T") - Send ñ ; n with tilde - else - Send Ñ ; N with tilde -return - ->!t:: - if GetKeyState("CapsLock", "T") - Send Þ ; capital letter thorn - else - Send þ ; small letter thorn -return ->!+t:: - if GetKeyState("CapsLock", "T") - Send þ ; small letter thorn - else - Send Þ ; capital letter thorn -return - ->!u:: - if GetKeyState("CapsLock", "T") - Send Ü ; U with diaeresis - else - Send ü ; u with diaeresis -return ->!+u:: - if GetKeyState("CapsLock", "T") - Send ü ; u with diaeresis - else - Send Ü ; U with diaeresis -return - ->!h:: - if GetKeyState("CapsLock", "T") - Send Ù ; U with grave - else - Send ù ; u with grave -return ->!+h:: - if GetKeyState("CapsLock", "T") - Send ù ; u with grave - else - Send Ù ; U with grave -return - ->!j:: - if GetKeyState("CapsLock", "T") - Send Ú ; U with acute - else - Send ú ; u with acute -return ->!+j:: - if GetKeyState("CapsLock", "T") - Send ú ; u with acute - else - Send Ú ; U with acute -return - ->!y:: - if GetKeyState("CapsLock", "T") - Send Ÿ ; Y with diaeresis - else - Send ÿ ; y with diaeresis -return ->!+y:: - if GetKeyState("CapsLock", "T") - Send ÿ ; y with diaeresis - else - Send Ÿ ; Y with diaeresis -return - ->!r:: - if GetKeyState("CapsLock", "T") - Send Ý ; Y with acute - else - Send ý ; y with acute -return ->!+r:: - if GetKeyState("CapsLock", "T") - Send ý ; y with acute - else - Send Ý ; Y with acute -return - ->!k::Send † ; dagger ->!+k::Send ‡ ; double dagger - ->!s::Send ß ; small sharp s (Eszett) ->!+s::Send § ; section sign - ->!/::Send ¿ ; inverted question mark ->!?::Send ¶ ; pilcrow sign - ->!1::Send ¡ ; inverted exclamation mark ->!+1::Send ¹ ; superscript 1 - ->!2::Send © ; copyright sign ->!+2::Send ² ; superscript 2 - ->!3::Send ± ; plus-minus sign ->!+3::Send ³ ; superscript 3 - ->!4::Send £ ; pound sign ->!+4::Send Â¥ ; yen sign - ->!5::Send € ; euro sign ->!+5::Send ¢ ; cent sign (dollar) - ->!8::Send „ ; double low-9 quotation mark ->!+8::Send ‚ ; single low-9 quotation mark - ->!9::Send “ ; left double quotation mark ->!+9::Send ‘ ; left single quotation mark - ->!0::Send ” ; right double quotation mark ->!+0::Send ’ ; right single quotation mark - ->!=::Send × ; multiplication sign ->!+=::Send ÷ ; division sign - ->![::Send « ; left-pointing double angle quotation mark ->!{::Send ‹ ; left-pointing single angle quotation mark - ->!]::Send » ; right-pointing double angle quotation mark ->!}::Send › ; right-pointing single angle quotation mark - ->!;::Send ° ; degree sign ->!+;::Send · ; middle dot - ->!6:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkCircumflex.item(key) -return ->!+6:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkCaron.item(key) -return - ->!7:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkRingDotAbove.item(key) -return ->!+7:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkMacron.item(key) -return - ->!-:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkCedillaOgonek.item(key) -return ->!_:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkBreveSpecial.item(key) -return - ->!':: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkAcuteAccent.item(key) -return ->!":: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkDiaeresis.item(key) -return - ->!`:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkGraveAccent.item(key) -return ->!~:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkTilde.item(key) -return - ->!\:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkNotSign.item(key) -return ->!|:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkBrokenBar.item(key) -return - ->!m:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkGreekAlphabet.item(key) -return ->!+m:: - Input, key, L1, {bs}{del}{esc}{home}{end} - Send % dkMathSymbols.item(key) -return - ->!space::Send   ; no-break space ->!+space::Send   ; no-break space -- 2.47.3 From 67f53ebc8034cef1e15af2a736bece75d4c45d32 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Mon, 24 Feb 2020 23:41:09 +0100 Subject: [PATCH 03/16] Delete UltimateKEYS - 2020-02-12.klc --- UltimateKEYS - 2020-02-12.klc | Bin 68930 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 UltimateKEYS - 2020-02-12.klc diff --git a/UltimateKEYS - 2020-02-12.klc b/UltimateKEYS - 2020-02-12.klc deleted file mode 100644 index 2d8bb06cbbdad9ae7ffc0862a408e87916845e1a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68930 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 Date: Mon, 24 Feb 2020 23:43:51 +0100 Subject: [PATCH 04/16] 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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 Date: Tue, 25 Feb 2020 15:21:40 +0100 Subject: [PATCH 05/16] Update README.md --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 47ff8a8..609acd6 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,13 @@ An MSKLC source file is available for integration on Windows OSes (although not ## XKB integration (Linux) -Experimental support for GNU/Linux via XKB integration (X11) :  see the 'linux' branch in this repository. +Experimental support for GNU/Linux via XKB integration (X11) :  see the 'linux' folder in this repository. + +Follow these steps for experimental integration (at your own risk!) : + +- Download the files `ultkeys` and `rule.xml` from the 'linux' folder. +- Copy `ultkeys` to `/usr/share/X11/xkb/symbols` (root required). +- Paste the contents of `rule.xml` to either `/usr/share/X11/xkb/rules/evdev.xml` or `/usr/share/X11/xkb/rules/evdex.extras.xml`, this between the tags `` and `` (root required). ## Enjoy and have fun !  -  Veel plezier !  â˜º -- 2.47.3 From 681259df13cc943bdbe93e797f457b03ca909d42 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Tue, 25 Feb 2020 15:25:24 +0100 Subject: [PATCH 06/16] Create dummy --- linux-xkb/dummy | 1 + 1 file changed, 1 insertion(+) create mode 100644 linux-xkb/dummy diff --git a/linux-xkb/dummy b/linux-xkb/dummy new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/linux-xkb/dummy @@ -0,0 +1 @@ + -- 2.47.3 From ec26780800856ead9d03e9e16c56caa44c003322 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Tue, 25 Feb 2020 15:27:34 +0100 Subject: [PATCH 07/16] Add files via upload Experimental Linux port of UltimateKEYS. --- ...teKEYS (Linux) - Keyboard Layout Image.png | Bin 0 -> 77467 bytes linux-xkb/rule.xml | 26 +++++++ linux-xkb/ultkeys | 66 ++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 linux-xkb/UltimateKEYS (Linux) - Keyboard Layout Image.png create mode 100644 linux-xkb/rule.xml create mode 100644 linux-xkb/ultkeys diff --git a/linux-xkb/UltimateKEYS (Linux) - Keyboard Layout Image.png b/linux-xkb/UltimateKEYS (Linux) - Keyboard Layout Image.png new file mode 100644 index 0000000000000000000000000000000000000000..80fa9741a0ebb85ecd8afb2d7629e009c716cdac GIT binary patch literal 77467 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�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 literal 0 HcmV?d00001 diff --git a/linux-xkb/rule.xml b/linux-xkb/rule.xml new file mode 100644 index 0000000..4e197e4 --- /dev/null +++ b/linux-xkb/rule.xml @@ -0,0 +1,26 @@ + + + ultkeys + ultkeys + UltimateKEYS + + cat + dan + eng + est + fao + fin + ger + gre + gsw + ita + lav + lit + nld + nor + por + spa + swe + + + diff --git a/linux-xkb/ultkeys b/linux-xkb/ultkeys new file mode 100644 index 0000000..a85a110 --- /dev/null +++ b/linux-xkb/ultkeys @@ -0,0 +1,66 @@ +// UltimateKEYS (/usr/share/X11/xkb/symbols/ultkeys) + +// Created by : Pieter Degroote + +// License : GNU General Public License Version 3 + +// Website : https://github.com/pieter-degroote/UltimateKEYS + + +default partial alphanumeric_keys modifier_keys +xkb_symbols "basic" { + + name[Group1] = "UltimateKEYS"; + + key { [ z, Z, agrave, Agrave ] }; + key { [ x, X, aacute, Aacute ] }; + key { [ c, C, ccedilla, Ccedilla ] }; + key { [ v, V, igrave, Igrave ] }; + key { [ b, B, iacute, Iacute ] }; + key { [ n, N, ntilde, Ntilde ] }; + key { [ m, M, dead_greek, Multi_key ] }; + key { [ comma, less, ograve, Ograve ] }; + key { [ period, greater, oacute, Oacute ] }; + key { [ slash, question, questiondown, paragraph ] }; + key { [ a, A, adiaeresis, Adiaeresis ] }; + key { [ s, S, ssharp, section ] }; + key { [ d, D, eth, Eth ] }; + key { [ f, F, egrave, Egrave ] }; + key { [ g, G, eacute, Eacute ] }; + key { [ h, H, ugrave, Ugrave ] }; + key { [ j, J, uacute, Uacute ] }; + key { [ k, K, dagger, doubledagger ] }; + key { [ l, L, oslash, Oslash ] }; + key { [ semicolon, colon, degree, periodcentered ] }; + key { [ apostrophe, quotedbl, dead_acute, dead_diaeresis] }; + key { [ q, Q, ae, AE ] }; + key { [ w, W, aring, Aring ] }; + key { [ e, E, ediaeresis, Ediaeresis ] }; + key { [ r, R, yacute, Yacute ] }; + key { [ t, T, thorn, Thorn ] }; + key { [ y, Y, ydiaeresis, Ydiaeresis ] }; + key { [ u, U, udiaeresis, Udiaeresis ] }; + key { [ i, I, idiaeresis, Idiaeresis ] }; + key { [ o, O, odiaeresis, Odiaeresis ] }; + key { [ p, P, oe, OE ] }; + key { [ bracketleft, braceleft, guillemotleft, U2039 ] }; + key { [ bracketright, braceright, guillemotright, U203A ] }; + key { [ 1, exclam, exclamdown, onesuperior ] }; + key { [ 2, at, copyright, twosuperior ] }; + key { [ 3, numbersign, plusminus, threesuperior ] }; + key { [ 4, dollar, sterling, yen ] }; + key { [ 5, percent, EuroSign, cent ] }; + key { [ 6, asciicircum, dead_circumflex, dead_caron ] }; + key { [ 7, ampersand, dead_abovering, dead_macron ] }; + key { [ 8, asterisk, doublelowquotemark, singlelowquotemark ] }; + key { [ 9, parenleft, leftdoublequotemark, leftsinglequotemark ] }; + key { [ 0, parenright, rightdoublequotemark, rightsinglequotemark ] }; + key { [ minus, underscore, dead_cedilla, dead_breve ] }; + key { [ equal, plus, multiply, division ] }; + key { [ backslash, bar, notsign, brokenbar ] }; + key { [ grave, asciitilde, dead_grave, dead_tilde ] }; + key { [ backslash, bar ] }; + key { [ space, space, nobreakspace, nobreakspace] }; + + include "level3(ralt_switch)" +}; -- 2.47.3 From 40b2fa14a703c6cebcec8abd0ea6dc88af16d189 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Tue, 25 Feb 2020 15:28:16 +0100 Subject: [PATCH 08/16] Delete dummy --- linux-xkb/dummy | 1 - 1 file changed, 1 deletion(-) delete mode 100644 linux-xkb/dummy diff --git a/linux-xkb/dummy b/linux-xkb/dummy deleted file mode 100644 index 8b13789..0000000 --- a/linux-xkb/dummy +++ /dev/null @@ -1 +0,0 @@ - -- 2.47.3 From 790bb0db0fbe4273003dcca75e1bcc79f64a4833 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Tue, 25 Feb 2020 15:45:18 +0100 Subject: [PATCH 09/16] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 609acd6..7be4abd 100644 --- a/README.md +++ b/README.md @@ -30,11 +30,11 @@ An MSKLC source file is available for integration on Windows OSes (although not ## XKB integration (Linux) -Experimental support for GNU/Linux via XKB integration (X11) :  see the 'linux' folder in this repository. +Experimental support for GNU/Linux via XKB integration (X11) :  see the 'linux-xkb' folder in this repository. Follow these steps for experimental integration (at your own risk!) : -- Download the files `ultkeys` and `rule.xml` from the 'linux' folder. +- Download the files `ultkeys` and `rule.xml` from the 'linux-xkb' folder. - Copy `ultkeys` to `/usr/share/X11/xkb/symbols` (root required). - Paste the contents of `rule.xml` to either `/usr/share/X11/xkb/rules/evdev.xml` or `/usr/share/X11/xkb/rules/evdex.extras.xml`, this between the tags `` and `` (root required). -- 2.47.3 From 1548bf3d8274e2f6fff38e72ee370c27e4eef559 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Tue, 25 Feb 2020 17:03:53 +0100 Subject: [PATCH 10/16] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7be4abd..c7ed94b 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ This AutoHotkey script is a highly customizable version of UltimateKEYS. To work - **AutoHotkey website :  https://www.autohotkey.com/** - **Install the latest release of the current v1.1 branch (preferably as 'Unicode 64-bit', on 32-bit Windows as 'Unicode 32-bit').** -- **Download (and run) the 'UltimateKEYS - YYYY-MM-DD.ahk' file from this repository.** +- **Download (and run) the "UltimateKEYS - YYYY-MM-DD.ahk" file from this repository.** - **Optionally, you can put the AHK file in the 'Startup' folder to launch at startup.** - **Please note :  this is an overlay script, specifically designed for the keyboard layout 'US QWERTY'.** -- 2.47.3 From c6e370a8bbfec7db2e40f2a04ea796679c054d31 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Thu, 27 Feb 2020 12:32:20 +0100 Subject: [PATCH 11/16] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The translingual letter Ç­/Ǭ has now been added to both the dead keys for macron and ogonek. --- UltimateKEYS - 2020-02-27.ahk | 1172 +++++++++++++++++++++++++++++++++ UltimateKEYS - 2020-02-27.klc | Bin 0 -> 69142 bytes 2 files changed, 1172 insertions(+) create mode 100644 UltimateKEYS - 2020-02-27.ahk create mode 100644 UltimateKEYS - 2020-02-27.klc diff --git a/UltimateKEYS - 2020-02-27.ahk b/UltimateKEYS - 2020-02-27.ahk new file mode 100644 index 0000000..efcfc0a --- /dev/null +++ b/UltimateKEYS - 2020-02-27.ahk @@ -0,0 +1,1172 @@ +; UltimateKEYS - 2020-02-27.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("ö") := "Ç­" ; o with ogonek and macron +dkMacron.item("Ö") := "Ǭ" ; O with ogonek and 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-27.klc b/UltimateKEYS - 2020-02-27.klc new file mode 100644 index 0000000000000000000000000000000000000000..562cc3f8766f999b760ba40bb6040797ef397d0f GIT binary patch literal 69142 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 literal 0 HcmV?d00001 -- 2.47.3 From cf6c80f4b72e3365805672c360441e6fa4579727 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Thu, 27 Feb 2020 23:51:13 +0100 Subject: [PATCH 12/16] Update README.md A typo has been corrected (evdex.extras.xml -> evdev.extras.xml). ;) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c7ed94b..58af71e 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Follow these steps for experimental integration (at your own risk!) : - Download the files `ultkeys` and `rule.xml` from the 'linux-xkb' folder. - Copy `ultkeys` to `/usr/share/X11/xkb/symbols` (root required). -- Paste the contents of `rule.xml` to either `/usr/share/X11/xkb/rules/evdev.xml` or `/usr/share/X11/xkb/rules/evdex.extras.xml`, this between the tags `` and `` (root required). +- Paste the contents of `rule.xml` to either `/usr/share/X11/xkb/rules/evdev.xml` or `/usr/share/X11/xkb/rules/evdev.extras.xml`, this between the tags `` and `` (root required). ## Enjoy and have fun !  -  Veel plezier !  â˜º -- 2.47.3 From e2b3d60186db775979a3193daf6e1ff2d6e6a108 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Fri, 28 Feb 2020 00:05:17 +0100 Subject: [PATCH 13/16] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 58af71e..d1419dc 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ This AutoHotkey script is a highly customizable version of UltimateKEYS. To work ## MSKLC integration (Windows) -An MSKLC source file is available for integration on Windows OSes (although not recommended on Windows 10 and not recommended in a production environment). +An MSKLC source file is available for integration on Windows OSes (although not recommended on Windows 10 and/or in a production environment). ## XKB integration (Linux) -- 2.47.3 From d5ff82db37c03b8d8dface0462c19f4b18981a07 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Fri, 28 Feb 2020 00:21:54 +0100 Subject: [PATCH 14/16] Delete UltimateKEYS - 2020-02-24.klc --- UltimateKEYS - 2020-02-24.klc | Bin 68946 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 UltimateKEYS - 2020-02-24.klc diff --git a/UltimateKEYS - 2020-02-24.klc b/UltimateKEYS - 2020-02-24.klc deleted file mode 100644 index f7bf19a0b35b11bd72d0cdbae279de822519a3f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68946 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 Date: Fri, 28 Feb 2020 00:22:05 +0100 Subject: [PATCH 15/16] Delete UltimateKEYS - 2020-02-24.ahk --- UltimateKEYS - 2020-02-24.ahk | 1170 --------------------------------- 1 file changed, 1170 deletions(-) delete mode 100644 UltimateKEYS - 2020-02-24.ahk diff --git a/UltimateKEYS - 2020-02-24.ahk b/UltimateKEYS - 2020-02-24.ahk deleted file mode 100644 index 5de9c41..0000000 --- a/UltimateKEYS - 2020-02-24.ahk +++ /dev/null @@ -1,1170 +0,0 @@ -; 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 -- 2.47.3 From 78e87e82ae7c9d10b703ba638a917c5862c89918 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Fri, 28 Feb 2020 00:23:25 +0100 Subject: [PATCH 16/16] Add files via upload MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The letters ʒ/Ʒ and ǯ/Ǯ have been rearranged. --- UltimateKEYS - 2020-02-27.ahk | 8 ++++---- UltimateKEYS - 2020-02-27.klc | Bin 69142 -> 69142 bytes 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/UltimateKEYS - 2020-02-27.ahk b/UltimateKEYS - 2020-02-27.ahk index efcfc0a..ec03d11 100644 --- a/UltimateKEYS - 2020-02-27.ahk +++ b/UltimateKEYS - 2020-02-27.ahk @@ -86,6 +86,8 @@ 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("3") := "ǯ" ; small letter ezh with caron +dkCaron.item("#") := "Ǯ" ; capital letter ezh with caron dkCaron.item(" ") := "ˇ" ; caron @@ -267,10 +269,8 @@ 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("3") := "ʒ" ; small letter ezh +dkBreveSpecial.item("#") := "Ʒ" ; capital letter ezh dkBreveSpecial.item(" ") := "˘" ; breve diff --git a/UltimateKEYS - 2020-02-27.klc b/UltimateKEYS - 2020-02-27.klc index 562cc3f8766f999b760ba40bb6040797ef397d0f..4badb670bce752d653fbc2782549d5be7d19c290 100644 GIT binary patch delta 143 zcmbO>hh^FvmJR>B#Elt@88{gX7z`Ow8Pb3(eIQg|FrK`=AyC{1NiG#Gr#xA_F@7_L z_X`uaW+Mhm1|zrvhh^FvmJR>BHed4oWFl_PkjTKvV8CF+UXrH)Kc!LYV#olWV=>H