]> shimmer.witbreuk.eu Git - UltimateKEYS.git/blobdiff - autohotkey-v1.1/UltimateKEYS.ahk
Add files via upload
[UltimateKEYS.git] / autohotkey-v1.1 / UltimateKEYS.ahk
index 81d38fe908a973dc0b0211c36e7fff14cb6aa6da..c7d8a0f2f4030154b99bcec8474f998b82d069c6 100644 (file)
@@ -1,4 +1,4 @@
-; UltimateKEYS.ahk - 2022-05-23
+; UltimateKEYS.ahk - 2022-08-25
 
 ; Website :  www.ultimatekeys.info (pieter-degroote.github.io/UltimateKEYS/)
 
@@ -180,6 +180,8 @@ cmpMacronStroke.item["o"] := "{u+014d}"  ; (ō) o with macron
 cmpMacronStroke.item["O"] := "{u+014c}"  ; (Ō) O with macron
 cmpMacronStroke.item["p"] := "{u+1d7d}"  ; (ᵽ) p with stroke
 cmpMacronStroke.item["P"] := "{u+2c63}"  ; (Ᵽ) P with stroke
+cmpMacronStroke.item["q"] := "{u+01ed}"  ; (ǭ) o with ogonek and macron
+cmpMacronStroke.item["Q"] := "{u+01ec}"  ; (Ǭ) O with ogonek and macron
 cmpMacronStroke.item["r"] := "{u+024d}"  ; (ɍ) r with stroke
 cmpMacronStroke.item["R"] := "{u+024c}"  ; (Ɍ) R with stroke
 cmpMacronStroke.item["t"] := "{u+0167}"  ; (ŧ) t with stroke
@@ -196,23 +198,19 @@ cmpMacronStroke.item[" "] := "{u+00af}"  ; (¯) macron
 ; Compose :  Macron/Stroke (Additional) (_)
 
 cmpMacronStrokeAdd := ComObjCreate("Scripting.Dictionary")
-cmpMacronStrokeAdd.item["a"] := "{u+01e3}"  ; (ǣ) ae with macron
-cmpMacronStrokeAdd.item["A"] := "{u+01e2}"  ; (Ǣ) AE with macron
 cmpMacronStrokeAdd.item["g"] := "{u+1e21}"  ; (ḡ) g with macron
 cmpMacronStrokeAdd.item["G"] := "{u+1e20}"  ; (Ḡ) G with macron
 cmpMacronStrokeAdd.item["i"] := "{u+0268}"  ; (ɨ) i with stroke
 cmpMacronStrokeAdd.item["I"] := "{u+0197}"  ; (Ɨ) I with stroke
 cmpMacronStrokeAdd.item["l"] := "{u+019a}"  ; (ƚ) l with bar
 cmpMacronStrokeAdd.item["L"] := "{u+023d}"  ; (Ƚ) L with bar
-cmpMacronStrokeAdd.item["o"] := "{u+01ed}"  ; (ǭ) o with ogonek and macron
-cmpMacronStrokeAdd.item["O"] := "{u+01ec}"  ; (Ǭ) O with ogonek and macron
 cmpMacronStrokeAdd.item["u"] := "{u+0289}"  ; (ʉ) u with bar
 cmpMacronStrokeAdd.item["U"] := "{u+0244}"  ; (Ʉ) U with bar
 cmpMacronStrokeAdd.item["y"] := "{u+024f}"  ; (ɏ) y with stroke
 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
@@ -226,6 +224,8 @@ cmpStroke.item["g"] := "{u+a7a1}"  ; (ꞡ) g with oblique stroke
 cmpStroke.item["G"] := "{u+a7a0}"  ; (Ꞡ) G with oblique stroke
 cmpStroke.item["k"] := "{u+a7a3}"  ; (ꞣ) k with oblique stroke
 cmpStroke.item["K"] := "{u+a7a2}"  ; (Ꞣ) K with oblique stroke
+cmpStroke.item["l"] := "{u+0142}"  ; (ł) l with stroke
+cmpStroke.item["L"] := "{u+0141}"  ; (Ł) L with stroke
 cmpStroke.item["n"] := "{u+a7a5}"  ; (ꞥ) n with oblique stroke
 cmpStroke.item["N"] := "{u+a7a4}"  ; (Ꞥ) N with oblique stroke
 cmpStroke.item["o"] := "{u+00f8}"  ; (ø) o with stroke
@@ -277,7 +277,7 @@ cmpCedillaOgonek.item["."] := "{u+02db}"  ; (˛) ogonek
 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
@@ -365,14 +365,6 @@ cmpAcuteAccent.item["y"] := "{u+00fd}"  ; (ý) y with acute
 cmpAcuteAccent.item["Y"] := "{u+00dd}"  ; (Ý) Y with acute
 cmpAcuteAccent.item["z"] := "{u+017a}"  ; (ź) z with acute
 cmpAcuteAccent.item["Z"] := "{u+0179}"  ; (Ź) Z with acute
-cmpAcuteAccent.item["b"] := "{u+01fb}"  ; (ǻ) a with ring above and acute
-cmpAcuteAccent.item["B"] := "{u+01fa}"  ; (Ǻ) A with ring above and acute
-cmpAcuteAccent.item["d"] := "{u+1e09}"  ; (ḉ) c with cedilla and acute
-cmpAcuteAccent.item["D"] := "{u+1e08}"  ; (Ḉ) C with cedilla and acute
-cmpAcuteAccent.item["f"] := "{u+01fd}"  ; (ǽ) ae with acute
-cmpAcuteAccent.item["F"] := "{u+01fc}"  ; (Ǽ) AE with acute
-cmpAcuteAccent.item["q"] := "{u+01ff}"  ; (ǿ) o with stroke and acute
-cmpAcuteAccent.item["Q"] := "{u+01fe}"  ; (Ǿ) O with stroke and acute
 cmpAcuteAccent.item[" "] := "{u+00b4}"  ; (´) acute accent
 
 
@@ -401,15 +393,13 @@ cmpDiaeresis.item["Y"] := "{u+0178}"  ; (Ÿ) Y with diaeresis
 cmpDiaeresis.item[" "] := "{u+00a8}"  ; (¨) diaeresis
 
 
-; Compose :  Double Acute Accent and Special Letters (=)
+; Compose :  Double Acute Accent (=)
 
 cmpDoubleAcute := ComObjCreate("Scripting.Dictionary")
 cmpDoubleAcute.item["o"] := "{u+0151}"  ; (ő) o with double acute
 cmpDoubleAcute.item["O"] := "{u+0150}"  ; (Ő) O with double acute
 cmpDoubleAcute.item["u"] := "{u+0171}"  ; (ű) u with double acute
 cmpDoubleAcute.item["U"] := "{u+0170}"  ; (Ű) U with double acute
-cmpDoubleAcute.item["h"] := "{u+a727}"  ; (ꜧ) small letter heng
-cmpDoubleAcute.item["H"] := "{u+a726}"  ; (Ꜧ) capital letter heng
 cmpDoubleAcute.item[" "] := "{u+02dd}"  ; (˝) double acute accent
 
 
@@ -435,7 +425,7 @@ cmpGraveAccent.item["Y"] := "{u+1ef2}"  ; (Ỳ) Y with grave
 cmpGraveAccent.item[" "] := "{u+02cb}"  ; (ˋ) grave accent (modifier)
 
 
-; Compose :  Double Grave (G)
+; Compose :  Double Grave Accent (G)
 
 cmpDoubleGrave := ComObjCreate("Scripting.Dictionary")
 cmpDoubleGrave.item["a"] := "{u+0201}"  ; (ȁ) a with double grave
@@ -476,7 +466,7 @@ cmpTilde.item["Y"] := "{u+1ef8}"  ; (Ỹ) Y with tilde
 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
@@ -491,12 +481,15 @@ cmpHook.item["g"] := "{u+0260}"  ; (ɠ) g 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
@@ -505,6 +498,8 @@ cmpHook.item["r"] := "{u+027d}"  ; (ɽ) r with 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
@@ -513,50 +508,48 @@ cmpHook.item["y"] := "{u+01b4}"  ; (ƴ) y 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["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 ($)
+; Compose :  Currency Symbols ($)
 
 cmpCurrency := ComObjCreate("Scripting.Dictionary")
 cmpCurrency.item["a"] := "{u+058f}"  ; (֏) Armenian dram
@@ -772,19 +765,15 @@ cmpSymbols.item["a"] := "{u+214d}"  ; (⅍) aktieselskab
 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
@@ -792,6 +781,8 @@ cmpSymbols.item["V"] := "{u+2714}"  ; (✔) heavy check mark
 cmpSymbols.item["w"] := "{u+26a0}"  ; (⚠) warning sign
 cmpSymbols.item["x"] := "{u+2717}"  ; (✗) ballot x
 cmpSymbols.item["X"] := "{u+2718}"  ; (✘) heavy ballot x
+cmpSymbols.item["y"] := "{u+2713}"  ; (✓) check mark
+cmpSymbols.item["Y"] := "{u+2714}"  ; (✔) heavy check mark
 cmpSymbols.item["2"] := "{u+266b}"  ; (♫) beamed eighth notes
 cmpSymbols.item["3"] := "{u+2042}"  ; (⁂) asterism
 cmpSymbols.item["5"] := "{u+2605}"  ; (★) black star
@@ -809,6 +800,18 @@ cmpSymbols.item["."] := "{u+2e18}"  ; (⸘) inverted interrobang
 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")
@@ -937,9 +940,9 @@ cmpCapitalT.item["H"] := "{u+00de}"         ; (Þ) capital letter thorn
 
 ; Compose :  General/Math Symbols
 
+cmpEight := ComObjCreate("Scripting.Dictionary")
 cmpSmallN := ComObjCreate("Scripting.Dictionary")
 cmpCapitalN := ComObjCreate("Scripting.Dictionary")
-cmpSmallP := ComObjCreate("Scripting.Dictionary")
 cmpCapitalP := ComObjCreate("Scripting.Dictionary")
 cmpSmallR := ComObjCreate("Scripting.Dictionary")
 cmpAsterisk := ComObjCreate("Scripting.Dictionary")
@@ -947,21 +950,18 @@ cmpExclam := ComObjCreate("Scripting.Dictionary")
 cmpQuestion := ComObjCreate("Scripting.Dictionary")
 cmpParenLeft := ComObjCreate("Scripting.Dictionary")
 cmpPercent := ComObjCreate("Scripting.Dictionary")
-cmpEight := ComObjCreate("Scripting.Dictionary")
 cmpLessThan := ComObjCreate("Scripting.Dictionary")
 cmpGreaterThan := ComObjCreate("Scripting.Dictionary")
 cmpBracketLeft := ComObjCreate("Scripting.Dictionary")
-cmpInvertedBreve.item["b"] := "{u+2022}"    ; (•) bullet
-cmpInvertedBreve.item["t"] := "{u+2023}"    ; (‣) triangular bullet
-cmpInvertedBreve.item["h"] := "{u+2043}"    ; (⁃) hyphen bullet
-cmpInvertedBreve.item["w"] := "{u+25e6}"    ; (◦) white bullet
 cmpSmallD.item["d"] := "{u+2020}"           ; (†) dagger
 cmpCapitalD.item["D"] := "{u+2021}"         ; (‡) double dagger
+cmpSmallI.item["i"] := "{u+221e}"           ; (∞) infinity symbol
+cmpEight.item["8"] := "{u+221e}"            ; (∞) infinity symbol
 cmpMathSymbols.item["i"] := "{u+00b5}"      ; (µ) micro sign
 cmpSmallN.item["o"] := "{u+2116}"           ; (№) numero sign
 cmpCapitalN.item["o"] := "{u+2116}"         ; (№) numero sign
 cmpRingAbove.item["x"] := "{u+00a4}"        ; (¤) currency sign
-cmpSmallP.item["p"] := "{u+00b6}"           ; (¶) pilcrow sign
+cmpSuperscript.item["p"] := "{u+00b6}"      ; (¶) pilcrow sign
 cmpCapitalP.item["P"] := "{u+00b6}"         ; (¶) pilcrow sign
 cmpSmallR.item["2"] := "{u+221a}"           ; (√) square root
 cmpSmallR.item["3"] := "{u+221b}"           ; (∛) cube root
@@ -994,10 +994,8 @@ cmpPlus.item["-"] := "{u+00b1}"             ; (±) plus-minus sign
 cmpPercent.item["%"] := "{u+2030}"          ; (‰) per mille sign
 cmpPercent.item["3"] := "{u+2030}"          ; (‰) per mille sign
 cmpPercent.item["4"] := "{u+2031}"          ; (‱) per ten thousand sign
-cmpEight.item["8"] := "{u+221e}"            ; (∞) infinity symbol
 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
@@ -1005,9 +1003,29 @@ cmpGreaterThan.item["+"] := "{u+2a7e}"      ; (⩾) greater-than or slanted equa
 cmpTilde.item["~"] := "{u+2248}"            ; (≈) almost equal to
 cmpBracketLeft.item["]"] := "{u+2610}"      ; (☐) ballot box
 cmpBracketLeft.item["v"] := "{u+2611}"      ; (☑) ballot box with check
+cmpBracketLeft.item["y"] := "{u+2611}"      ; (☑) ballot box with check
 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")
@@ -1035,13 +1053,28 @@ cmpGreaterThan.item["'"] := "{u+203a}"        ; (›) right-pointing single angl
 cmpAcuteAccent.item[">"] := "{u+203a}"        ; (›) right-pointing single angle quotation mark
 
 
-; Compose :  Letters with Two Accents
+; Compose :  Letters with Two Diacritical Marks
 
+cmpCapitalC := ComObjCreate("Scripting.Dictionary")
+cmpSmallE := ComObjCreate("Scripting.Dictionary")
+cmpCapitalE := ComObjCreate("Scripting.Dictionary")
 cmpCapitalU := ComObjCreate("Scripting.Dictionary")
 cmpArrow.item[chr(34)] := "{u+01df}"      ; (ǟ) a with diaeresis and macron
 cmpCapitalA.item[chr(34)] := "{u+01de}"   ; (Ǟ) A with diaeresis and macron
 cmpArrow.item["."] := "{u+01e1}"          ; (ǡ) a with dot above and macron
 cmpCapitalA.item["."] := "{u+01e0}"       ; (Ǡ) A with dot above and macron
+cmpArrow.item["'"] := "{u+01fb}"          ; (ǻ) a with ring above and acute
+cmpCapitalA.item["'"] := "{u+01fa}"       ; (Ǻ) A with ring above and acute
+cmpCircumflex.item["'"] := "{u+1e09}"     ; (ḉ) c with cedilla and acute
+cmpCapitalC.item["'"] := "{u+1e08}"       ; (Ḉ) C with cedilla and acute
+cmpSmallE.item["-"] := "{u+01e3}"         ; (ǣ) ae with macron
+cmpCapitalE.item["-"] := "{u+01e2}"       ; (Ǣ) AE with macron
+cmpSmallE.item["'"] := "{u+01fd}"         ; (ǽ) ae with acute
+cmpCapitalE.item["'"] := "{u+01fc}"       ; (Ǽ) AE with acute
+cmpRingAbove.item[","] := "{u+01ed}"      ; (ǭ) o with ogonek and macron
+cmpCapitalO.item[","] := "{u+01ec}"       ; (Ǭ) O with ogonek and macron
+cmpRingAbove.item["'"] := "{u+01ff}"      ; (ǿ) o with stroke and acute
+cmpCapitalO.item["'"] := "{u+01fe}"       ; (Ǿ) O with stroke and acute
 cmpRingAbove.item[chr(34)] := "{u+022b}"  ; (ȫ) o with diaeresis and macron
 cmpCapitalO.item[chr(34)] := "{u+022a}"   ; (Ȫ) O with diaeresis and macron
 cmpRingAbove.item["~"] := "{u+022d}"      ; (ȭ) o with tilde and macron
@@ -1411,26 +1444,26 @@ cmpCapitalU.item["``"] := "{u+01db}"      ; (Ǜ) U with diaeresis and grave
     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
@@ -1443,10 +1476,10 @@ cmpCapitalU.item["``"] := "{u+01db}"      ; (Ǜ) U with diaeresis and grave
 >!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
@@ -1455,14 +1488,8 @@ cmpCapitalU.item["``"] := "{u+01db}"      ; (Ǜ) U with diaeresis and grave
 >!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
@@ -1470,6 +1497,12 @@ cmpCapitalU.item["``"] := "{u+01db}"      ; (Ǜ) U with diaeresis and grave
 >!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
 
@@ -1479,11 +1512,11 @@ cmpCapitalU.item["``"] := "{u+01db}"      ; (Ǜ) U with diaeresis and grave
 >!;::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
@@ -1533,8 +1566,8 @@ cmpCapitalU.item["``"] := "{u+01db}"      ; (Ǜ) U with diaeresis and grave
     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 == "$")
@@ -1555,6 +1588,8 @@ cmpCapitalU.item["``"] := "{u+01db}"      ; (Ǜ) U with diaeresis and grave
     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")
@@ -1591,8 +1626,6 @@ cmpCapitalU.item["``"] := "{u+01db}"      ; (Ǜ) U with diaeresis and grave
     Send % cmpSmallN.item[keyB]
   else if (keyA == "N")
     Send % cmpCapitalN.item[keyB]
-  else if (keyA == "p")
-    Send % cmpSmallP.item[keyB]
   else if (keyA == "P")
     Send % cmpCapitalP.item[keyB]
   else if (keyA == "r")
@@ -1615,8 +1648,16 @@ cmpCapitalU.item["``"] := "{u+01db}"      ; (Ǜ) U with diaeresis and grave
     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")
+    Send % cmpCapitalC.item[keyB]
+  else if (keyA == "e")
+    Send % cmpSmallE.item[keyB]
+  else if (keyA == "E")
+    Send % cmpCapitalE.item[keyB]
   else if (keyA == "U")
     Send % cmpCapitalU.item[keyB]