-; UltimateKEYS.ahk - 2022-06-04
+; UltimateKEYS.ahk - 2022-09-14
; 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
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}" ; (ꬶ) cross-tailed g
-cmpLatinGreek.item["e"] := "{u+025b}" ; (ɛ) small open e (latin small epsilon)
-cmpLatinGreek.item["E"] := "{u+0190}" ; (Ɛ) capital open E (latin capital epsilon)
-cmpLatinGreek.item["f"] := "{u+017f}" ; (ſ) small long s
-cmpLatinGreek.item["F"] := "{u+1e9b}" ; (ẛ) small long s with dot above
-cmpLatinGreek.item["g"] := "{u+0263}" ; (ɣ) latin small gamma
-cmpLatinGreek.item["G"] := "{u+0194}" ; (Ɣ) latin capital gamma
+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 open o
-cmpLatinGreek.item["O"] := "{u+0186}" ; (Ɔ) capital open O
+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
; 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 ($)
; Compose : Arrows and Pointers
cmpArrow := ComObjCreate("Scripting.Dictionary")
-cmpPlus := ComObjCreate("Scripting.Dictionary")
+cmpArrow.item["w"] := "{u+25b2}" ; (▲) black up-pointing triangle
+cmpArrow.item["a"] := "{u+25c0}" ; (◀) black left-pointing triangle
+cmpArrow.item["s"] := "{u+25bc}" ; (▼) black down-pointing triangle
+cmpArrow.item["d"] := "{u+25b6}" ; (▶) black right-pointing triangle
+cmpArrow.item["i"] := "{u+25b3}" ; (△) white up-pointing triangle
+cmpArrow.item["j"] := "{u+25c1}" ; (◁) white left-pointing triangle
+cmpArrow.item["k"] := "{u+25bd}" ; (▽) white down-pointing triangle
+cmpArrow.item["l"] := "{u+25b7}" ; (▷) white right-pointing triangle
cmpArrow.item["1"] := "{u+2199}" ; (↙) south west arrow
cmpArrow.item["2"] := "{u+2193}" ; (↓) downwards arrow
cmpArrow.item["3"] := "{u+2198}" ; (↘) south east arrow
cmpDoubleAcute.item["8"] := "{u+21d1}" ; (⇑) upwards double arrow
cmpDoubleAcute.item["9"] := "{u+21d7}" ; (⇗) north east double arrow
cmpDoubleAcute.item["0"] := "{u+21d4}" ; (⇔) left right double arrow
-cmpPlus.item["2"] := "{u+25bc}" ; (▼) black down-pointing triangle
-cmpPlus.item["@"] := "{u+25bd}" ; (▽) white down-pointing triangle
-cmpPlus.item["4"] := "{u+25c0}" ; (◀) black left-pointing triangle
-cmpPlus.item["$"] := "{u+25c1}" ; (◁) white left-pointing triangle
-cmpPlus.item["6"] := "{u+25b6}" ; (▶) black right-pointing triangle
-cmpPlus.item["^"] := "{u+25b7}" ; (▷) white right-pointing triangle
-cmpPlus.item["8"] := "{u+25b2}" ; (▲) black up-pointing triangle
-cmpPlus.item["*"] := "{u+25b3}" ; (△) white up-pointing triangle
; Compose : Miscellaneous Symbols (s)
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")
cmpCapitalN := ComObjCreate("Scripting.Dictionary")
cmpCapitalP := ComObjCreate("Scripting.Dictionary")
cmpSmallR := ComObjCreate("Scripting.Dictionary")
-cmpSemicolon := ComObjCreate("Scripting.Dictionary")
cmpAsterisk := ComObjCreate("Scripting.Dictionary")
cmpExclam := ComObjCreate("Scripting.Dictionary")
cmpQuestion := ComObjCreate("Scripting.Dictionary")
cmpParenLeft := ComObjCreate("Scripting.Dictionary")
+cmpPlus := ComObjCreate("Scripting.Dictionary")
cmpPercent := ComObjCreate("Scripting.Dictionary")
cmpLessThan := ComObjCreate("Scripting.Dictionary")
cmpGreaterThan := ComObjCreate("Scripting.Dictionary")
cmpSymbols.item["o"] := "{u+00a7}" ; (§) section sign
cmpPlayingCardSuit.item["o"] := "{u+00a7}" ; (§) section sign
cmpTurned.item["m"] := "{u+2122}" ; (™) trademark symbol
-cmpSemicolon.item["b"] := "{u+2022}" ; (•) bullet
-cmpSemicolon.item[";"] := "{u+2022}" ; (•) bullet
-cmpSemicolon.item["t"] := "{u+2023}" ; (‣) triangular bullet
-cmpSemicolon.item["h"] := "{u+2043}" ; (⁃) hyphen bullet
-cmpSemicolon.item["w"] := "{u+25e6}" ; (◦) white bullet
cmpAcuteAccent.item["1"] := "{u+2032}" ; (′) prime
cmpAcuteAccent.item["2"] := "{u+2033}" ; (″) double prime
cmpAcuteAccent.item["3"] := "{u+2034}" ; (‴) triple prime
cmpBracketLeft.item["x"] := "{u+2612}" ; (☒) ballot box with x
+; Compose : Bullets and Arrowheads (;)
+
+cmpSemicolon := ComObjCreate("Scripting.Dictionary")
+cmpSemicolon.item["a"] := "{u+27a4}" ; (➤) black rightwards arrowhead
+cmpSemicolon.item["b"] := "{u+2022}" ; (•) bullet
+cmpSemicolon.item[";"] := "{u+2022}" ; (•) bullet
+cmpSemicolon.item["d"] := "{u+27a5}" ; (➥) heavy black curved downwards and rightwards arrow
+cmpSemicolon.item["h"] := "{u+2043}" ; (⁃) hyphen bullet
+cmpSemicolon.item["-"] := "{u+2043}" ; (⁃) hyphen bullet
+cmpSemicolon.item["p"] := "{u+27a8}" ; (➨) heavy concave-pointed black rightwards arrow
+cmpSemicolon.item["q"] := "{u+27a7}" ; (➧) squat black rightwards arrow
+cmpSemicolon.item["r"] := "{u+27a1}" ; (➡) black rightwards arrow
+cmpSemicolon.item["t"] := "{u+2023}" ; (‣) triangular bullet
+cmpSemicolon.item["u"] := "{u+27a6}" ; (➦) heavy black curved upwards and rightwards arrow
+cmpSemicolon.item["w"] := "{u+25e6}" ; (◦) white bullet
+cmpSemicolon.item["3"] := "{u+27a2}" ; (➢) 3d top-lighted rightwards arrowhead
+cmpSemicolon.item["#"] := "{u+27a3}" ; (➣) 3d bottom-lighted rightwards arrowhead
+
+
; Compose : Quotation Marks
cmpBracketRight := ComObjCreate("Scripting.Dictionary")
Send % cmpQuad.item[keyB]
else if (keyA == "a")
Send % cmpArrow.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")
Send % cmpCapitalP.item[keyB]
else if (keyA == "r")
Send % cmpSmallR.item[keyB]
- else if (keyA == ";")
- Send % cmpSemicolon.item[keyB]
else if (keyA == "*")
Send % cmpAsterisk.item[keyB]
else if (keyA == "!")
Send % cmpQuestion.item[keyB]
else if (keyA == "(")
Send % cmpParenLeft.item[keyB]
+ else if (keyA == "+")
+ Send % cmpPlus.item[keyB]
else if (keyA == "%")
Send % cmpPercent.item[keyB]
else if (keyA == "8")
Send % cmpGreaterThan.item[keyB]
else if (keyA == "[")
Send % cmpBracketLeft.item[keyB]
+ else if (keyA == ";")
+ Send % cmpSemicolon.item[keyB]
else if (keyA == "]")
Send % cmpBracketRight.item[keyB]
else if (keyA == "C")