-; UltimateKEYS.ahk - 2022-05-29
+; UltimateKEYS.ahk - 2022-08-04
; Website : www.ultimatekeys.info (pieter-degroote.github.io/UltimateKEYS/)
cmpMacronStrokeAdd.item["Y"] := "{u+024e}" ; (Ɏ) Y with stroke
-; Compose : Stroke (/)
+; Compose : Oblique/Diagonal Stroke (/)
cmpStroke := ComObjCreate("Scripting.Dictionary")
cmpStroke.item["a"] := "{u+2c65}" ; (ⱥ) a with stroke
cmpCedillaOgonek.item[" "] := "{u+00b8}" ; (¸) cedilla
-; Compose : Breve/Special (b)
+; Compose : Breve and Special Letters (b)
cmpBreveSpecial := ComObjCreate("Scripting.Dictionary")
cmpBreveSpecial.item["a"] := "{u+0103}" ; (ă) a with breve
cmpTilde.item[" "] := "{u+02dc}" ; (˜) small tilde
-; Compose : Hook and Latin Greek Letters (h)
+; Compose : Hook and Horn (h)
cmpHook := ComObjCreate("Scripting.Dictionary")
cmpHook.item["b"] := "{u+0253}" ; (ɓ) b with hook
cmpHook.item["G"] := "{u+0193}" ; (Ɠ) G with hook
cmpHook.item["h"] := "{u+0266}" ; (ɦ) h with hook
cmpHook.item["H"] := "{u+a7aa}" ; (Ɦ) H with hook
+cmpHook.item["j"] := "{u+0267}" ; (ɧ) small letter heng with hook
cmpHook.item["k"] := "{u+0199}" ; (ƙ) k with hook
cmpHook.item["K"] := "{u+0198}" ; (Ƙ) K with hook
cmpHook.item["m"] := "{u+0271}" ; (ɱ) m with hook
cmpHook.item["M"] := "{u+2c6e}" ; (Ɱ) M with hook
cmpHook.item["n"] := "{u+0272}" ; (ɲ) n with left hook
cmpHook.item["N"] := "{u+019d}" ; (Ɲ) N with left hook
+cmpHook.item["o"] := "{u+01a1}" ; (ơ) o with horn
+cmpHook.item["O"] := "{u+01a0}" ; (Ơ) O with horn
cmpHook.item["p"] := "{u+01a5}" ; (ƥ) p with hook
cmpHook.item["P"] := "{u+01a4}" ; (Ƥ) P with hook
cmpHook.item["q"] := "{u+024b}" ; (ɋ) q with hook tail
cmpHook.item["R"] := "{u+2c64}" ; (Ɽ) R with tail
cmpHook.item["t"] := "{u+01ad}" ; (ƭ) t with hook
cmpHook.item["T"] := "{u+01ac}" ; (Ƭ) T with hook
+cmpHook.item["u"] := "{u+01b0}" ; (ư) u with horn
+cmpHook.item["U"] := "{u+01af}" ; (Ư) U with horn
cmpHook.item["v"] := "{u+028b}" ; (ʋ) v with hook
cmpHook.item["V"] := "{u+01b2}" ; (Ʋ) V with hook
cmpHook.item["w"] := "{u+2c73}" ; (ⱳ) w with hook
cmpHook.item["Y"] := "{u+01b3}" ; (Ƴ) Y with hook
cmpHook.item["z"] := "{u+0225}" ; (ȥ) z with hook
cmpHook.item["Z"] := "{u+0224}" ; (Ȥ) Z with hook
-cmpHook.item["a"] := "{u+0251}" ; (ɑ) latin small letter alpha
-cmpHook.item["A"] := "{u+2c6d}" ; (Ɑ) latin capital letter alpha
-cmpHook.item["e"] := "{u+025b}" ; (ɛ) small open e (latin small epsilon)
-cmpHook.item["E"] := "{u+0190}" ; (Ɛ) capital open E (latin capital epsilon)
-cmpHook.item["i"] := "{u+0269}" ; (ɩ) latin small letter iota
-cmpHook.item["I"] := "{u+0196}" ; (Ɩ) latin capital letter iota
-cmpHook.item["j"] := "{u+0263}" ; (ɣ) latin small gamma
-cmpHook.item["J"] := "{u+0194}" ; (Ɣ) latin capital gamma
-cmpHook.item["o"] := "{u+0254}" ; (ɔ) small open o
-cmpHook.item["O"] := "{u+0186}" ; (Ɔ) capital open O
-cmpHook.item["s"] := "{u+0283}" ; (ʃ) small letter esh
-cmpHook.item["S"] := "{u+01a9}" ; (Ʃ) capital letter esh
-cmpHook.item["u"] := "{u+028a}" ; (ʊ) latin small letter upsilon
-cmpHook.item["U"] := "{u+01b1}" ; (Ʊ) latin capital letter upsilon
-
-
-; Compose : Horn and Special Letters (H)
-
-cmpHorn := ComObjCreate("Scripting.Dictionary")
-cmpHorn.item["o"] := "{u+01a1}" ; (ơ) o with horn
-cmpHorn.item["O"] := "{u+01a0}" ; (Ơ) O with horn
-cmpHorn.item["u"] := "{u+01b0}" ; (ư) u with horn
-cmpHorn.item["U"] := "{u+01af}" ; (Ư) U with horn
-cmpHorn.item["g"] := "{u+ab36}" ; (ꬶ) cross-tailed g
-cmpHorn.item["h"] := "{u+0267}" ; (ɧ) small letter heng with hook
-cmpHorn.item["j"] := "{u+a727}" ; (ꜧ) small letter heng
-cmpHorn.item["J"] := "{u+a726}" ; (Ꜧ) capital letter heng
-cmpHorn.item["k"] := "{u+0138}" ; (ĸ) small letter kra
-cmpHorn.item["s"] := "{u+017f}" ; (ſ) small long s
-cmpHorn.item["S"] := "{u+1e9b}" ; (ẛ) small long s with dot above
+
+
+; Compose : Latin Greek Letters and Variations (l)
+
+cmpLatinGreek := ComObjCreate("Scripting.Dictionary")
+cmpLatinGreek.item["a"] := "{u+0251}" ; (ɑ) latin small letter alpha
+cmpLatinGreek.item["A"] := "{u+2c6d}" ; (Ɑ) latin capital letter alpha
+cmpLatinGreek.item["c"] := "{u+ab36}" ; (ꬶ) small letter script g with crossed-tail
+cmpLatinGreek.item["e"] := "{u+025b}" ; (ɛ) small letter open e (latin small epsilon)
+cmpLatinGreek.item["E"] := "{u+0190}" ; (Ɛ) capital letter open E (latin capital epsilon)
+cmpLatinGreek.item["f"] := "{u+017f}" ; (ſ) small letter long s
+cmpLatinGreek.item["F"] := "{u+1e9b}" ; (ẛ) long s with dot above
+cmpLatinGreek.item["g"] := "{u+0263}" ; (ɣ) latin small letter gamma
+cmpLatinGreek.item["G"] := "{u+0194}" ; (Ɣ) latin capital letter gamma
+cmpLatinGreek.item["h"] := "{u+a727}" ; (ꜧ) small letter heng
+cmpLatinGreek.item["H"] := "{u+a726}" ; (Ꜧ) capital letter heng
+cmpLatinGreek.item["i"] := "{u+0269}" ; (ɩ) latin small letter iota
+cmpLatinGreek.item["I"] := "{u+0196}" ; (Ɩ) latin capital letter iota
+cmpLatinGreek.item["k"] := "{u+0138}" ; (ĸ) small letter kra
+cmpLatinGreek.item["o"] := "{u+0254}" ; (ɔ) small letter open o
+cmpLatinGreek.item["O"] := "{u+0186}" ; (Ɔ) capital letter open O
+cmpLatinGreek.item["s"] := "{u+0283}" ; (ʃ) small letter esh
+cmpLatinGreek.item["S"] := "{u+01a9}" ; (Ʃ) capital letter esh
+cmpLatinGreek.item["u"] := "{u+028a}" ; (ʊ) latin small letter upsilon
+cmpLatinGreek.item["U"] := "{u+01b1}" ; (Ʊ) latin capital letter upsilon
; Compose : Turned Letters (t)
cmpTurned := ComObjCreate("Scripting.Dictionary")
-cmpTurned.item["a"] := "{u+0250}" ; (ɐ) small turned a
-cmpTurned.item["A"] := "{u+2c6f}" ; (Ɐ) capital turned A
-cmpTurned.item["e"] := "{u+01dd}" ; (ǝ) small turned e
-cmpTurned.item["E"] := "{u+018e}" ; (Ǝ) capital reversed E
+cmpTurned.item["a"] := "{u+0250}" ; (ɐ) latin small letter turned a
+cmpTurned.item["A"] := "{u+2c6f}" ; (Ɐ) latin capital letter turned A
+cmpTurned.item["e"] := "{u+01dd}" ; (ǝ) latin small letter turned e
+cmpTurned.item["E"] := "{u+018e}" ; (Ǝ) latin capital letter reversed E
cmpTurned.item["q"] := "{u+0252}" ; (ɒ) latin small letter turned alpha
cmpTurned.item["Q"] := "{u+2c70}" ; (Ɒ) latin capital letter turned alpha
cmpTurned.item["v"] := "{u+028c}" ; (ʌ) latin small letter turned v
cmpTurned.item["V"] := "{u+0245}" ; (Ʌ) latin capital letter turned V
+cmpTurned.item["y"] := "{u+028e}" ; (ʎ) latin small letter turned y
; Compose : Currency Symbols ($)
cmpSymbols.item["c"] := "{u+2105}" ; (℅) care of
cmpSymbols.item["d"] := "{u+22c4}" ; (⋄) diamond operator
cmpSymbols.item["e"] := "{u+212e}" ; (℮) estimated symbol
-cmpSymbols.item["E"] := "{u+2709}" ; (✉) envelope
cmpSymbols.item["f"] := "{u+2640}" ; (♀) Venus symbol (female)
-cmpSymbols.item["g"] := "{u+2740}" ; (❀) white florette
-cmpSymbols.item["G"] := "{u+273f}" ; (✿) black florette
-cmpSymbols.item["h"] := "{u+2766}" ; (❦) floral heart
-cmpSymbols.item["H"] := "{u+2767}" ; (❧) rotated floral heart bullet
cmpSymbols.item["i"] := "{u+2300}" ; (⌀) diameter sign
cmpSymbols.item["l"] := "{u+2113}" ; (ℓ) script small l
cmpSymbols.item["L"] := "{u+2112}" ; (ℒ) Laplace transform
cmpSymbols.item["m"] := "{u+2642}" ; (♂) Mars symbol (male)
cmpSymbols.item["M"] := "{u+2120}" ; (℠) service mark
+cmpSymbols.item["n"] := "{u+2709}" ; (✉) envelope
cmpSymbols.item["q"] := "{u+2126}" ; (Ω) ohm sign (backwards compatibility)
-cmpSymbols.item["r"] := "{u+2619}" ; (☙) reversed rotated floral heart bullet
+cmpSymbols.item["r"] := "{u+211e}" ; (℞) prescription take (Recipere)
cmpSymbols.item["R"] := "{u+211e}" ; (℞) prescription take (Recipere)
cmpSymbols.item["t"] := "{u+2706}" ; (✆) telephone location sign
cmpSymbols.item["v"] := "{u+2713}" ; (✓) check mark
cmpSymbols.item["/"] := "{u+2e2e}" ; (⸮) reversed question mark
+; Compose : Florette and Floral Heart Symbols (f)
+
+cmpFlorette := ComObjCreate("Scripting.Dictionary")
+cmpFlorette.item["r"] := "{u+2619}" ; (☙) reversed rotated floral heart bullet
+cmpFlorette.item["6"] := "{u+273e}" ; (✾) six petalled black and white florette
+cmpFlorette.item["b"] := "{u+273f}" ; (✿) black florette
+cmpFlorette.item["w"] := "{u+2740}" ; (❀) white florette
+cmpFlorette.item["8"] := "{u+2741}" ; (❁) eight petalled outlined black florette
+cmpFlorette.item["f"] := "{u+2766}" ; (❦) floral heart
+cmpFlorette.item["h"] := "{u+2767}" ; (❧) rotated floral heart bullet
+
+
; Compose : Playing Card Suit Symbols (S)
cmpPlayingCardSuit := ComObjCreate("Scripting.Dictionary")
cmpPercent.item["3"] := "{u+2030}" ; (‰) per mille sign
cmpPercent.item["4"] := "{u+2031}" ; (‱) per ten thousand sign
cmpExclam.item["="] := "{u+2260}" ; (≠) not equal to
-cmpDoubleAcute.item["/"] := "{u+2260}" ; (≠) not equal to
-cmpStroke.item["="] := "{u+2260}" ; (≠) not equal to
+cmpLessThan.item[">"] := "{u+2260}" ; (≠) not equal to
cmpLessThan.item["="] := "{u+2264}" ; (≤) less-than or equal to
cmpGreaterThan.item["="] := "{u+2265}" ; (≥) greater-than or equal to
cmpLessThan.item["+"] := "{u+2a7d}" ; (⩽) less-than or slanted equal to
Send {u+00db} ; (Û) U with circumflex
return
->!-::
+>!6::
if GetKeyState("CapsLock", "T")
Send {u+00c3} ; (Ã) A with tilde
else
Send {u+00e3} ; (ã) a with tilde
return
->!_::
+>!+6::
if GetKeyState("CapsLock", "T")
Send {u+00e3} ; (ã) a with tilde
else
Send {u+00c3} ; (Ã) A with tilde
return
->!=::
+>!7::
if GetKeyState("CapsLock", "T")
Send {u+00d5} ; (Õ) O with tilde
else
Send {u+00f5} ; (õ) o with tilde
return
->!+=::
+>!+7::
if GetKeyState("CapsLock", "T")
Send {u+00f5} ; (õ) o with tilde
else
>!1::Send {u+00a1} ; (¡) inverted exclamation mark
>!+1::Send {u+00b9} ; (¹) superscript 1
->!2::Send {u+2013} ; (–) en dash
+>!2::Send {u+2264} ; (≤) less-than or equal to
>!+2::Send {u+00b2} ; (²) superscript 2
->!3::Send {u+2014} ; (—) em dash
+>!3::Send {u+2265} ; (≥) greater-than or equal to
>!+3::Send {u+00b3} ; (³) superscript 3
>!4::Send {u+00a3} ; (£) pound sign
>!5::Send {u+20ac} ; (€) euro sign
>!+5::Send {u+00a2} ; (¢) cent sign (dollar)
->!6::Send {u+2264} ; (≤) less-than or equal to
->!+6::Send {u+2260} ; (≠) not equal to
-
->!7::Send {u+2265} ; (≥) greater-than or equal to
->!+7::Send {u+2248} ; (≈) almost equal to
-
>!8::Send {u+201e} ; („) double low-9 quotation mark
->!+8::Send {u+201a} ; (‚) single low-9 quotation mark
+>!+8::Send {u+00a7} ; (§) section sign
>!9::Send {u+201c} ; (“) left double quotation mark
>!+9::Send {u+2018} ; (‘) left single quotation mark
>!0::Send {u+201d} ; (”) right double quotation mark
>!+0::Send {u+2019} ; (’) right single quotation mark
+>!-::Send {u+2013} ; (–) en dash
+>!_::Send {u+2014} ; (—) em dash
+
+>!=::Send {u+00d7} ; (×) multiplication sign
+>!+=::Send {u+00f7} ; (÷) division sign
+
>![::Send {u+00ab} ; («) left-pointing double angle quotation mark
>!{::Send {u+2039} ; (‹) left-pointing single angle quotation mark
>!;::Send {u+00b0} ; (°) degree sign
>!+;::Send {u+00b7} ; (·) middle dot
->!'::Send {u+00d7} ; (×) multiplication sign
->!"::Send {u+00f7} ; (÷) division sign
+>!'::Send {u+2020} ; (†) dagger
+>!"::Send {u+2021} ; (‡) double dagger
->!\::Send {u+00a7} ; (§) section sign
->!|::Send {u+2030} ; (‰) per mille sign
+>!\::Send {u+2002} ; en space
+>!|::Send {u+2003} ; em space
>!/::Send {u+00bf} ; (¿) inverted question mark
>!?::Send {u+2026} ; (…) horizontal ellipsis
Send % cmpTilde.item[keyB]
else if (keyA == "h")
Send % cmpHook.item[keyB]
- else if (keyA == "H")
- Send % cmpHorn.item[keyB]
+ else if (keyA == "l")
+ Send % cmpLatinGreek.item[keyB]
else if (keyA == "t")
Send % cmpTurned.item[keyB]
else if (keyA == "$")
Send % cmpPlus.item[keyB]
else if (keyA == "s")
Send % cmpSymbols.item[keyB]
+ else if (keyA == "f")
+ Send % cmpFlorette.item[keyB]
else if (keyA == "S")
Send % cmpPlayingCardSuit.item[keyB]
else if (keyA == "1")