From 877369e1be0ce1c718ed490c3fc019d6a033fc39 Mon Sep 17 00:00:00 2001 From: Pieter Degroote Date: Tue, 21 Jan 2025 18:21:18 +0100 Subject: [PATCH] Add files via upload Some additional accented letters with dot below have been added and changes have been made to some spacing characters, small pointing triangles and other small shapes, plus some other small changes. --- .../UltimateKEYS (for AutoHotkey v1.1).ahk | 182 ++++++++++------ .../UltimateKEYS (for AutoHotkey v2).ahk | 202 +++++++++++------- 2 files changed, 246 insertions(+), 138 deletions(-) diff --git a/autohotkey/UltimateKEYS (for AutoHotkey v1.1).ahk b/autohotkey/UltimateKEYS (for AutoHotkey v1.1).ahk index 3c6f92b..4b2d4ee 100644 --- a/autohotkey/UltimateKEYS (for AutoHotkey v1.1).ahk +++ b/autohotkey/UltimateKEYS (for AutoHotkey v1.1).ahk @@ -1,6 +1,6 @@ #requires AutoHotkey v1.1 -; UltimateKEYS (for AutoHotkey v1.1).ahk - 2024-11-30 +; UltimateKEYS (for AutoHotkey v1.1).ahk - 2025-01-21 ; Website : https://pieter-degroote.github.io/UltimateKEYS/ @@ -503,9 +503,13 @@ cmpSmallF.item["v"] := "{u+2c71}" ; (ⱱ) v with right hook cmpSmallF.item["z"] := "{u+0290}" ; (ʐ) z with retroflex hook -; Compose : Swash Tail and Variations (t) +; Compose : Swash Tail and Other Variations (t) cmpSmallT := ComObjCreate("Scripting.Dictionary") +cmpSmallT.item["c"] := "{u+a793}" ; (ꞓ) c with bar +cmpSmallT.item["C"] := "{u+a792}" ; (Ꞓ) C with bar +cmpSmallT.item["f"] := "{u+a799}" ; (ꞙ) f with stroke +cmpSmallT.item["F"] := "{u+a798}" ; (Ꞙ) F with stroke cmpSmallT.item["l"] := "{u+2c61}" ; (ⱡ) l with double bar cmpSmallT.item["L"] := "{u+2c60}" ; (Ⱡ) L with double bar cmpSmallT.item["s"] := "{u+023f}" ; (ȿ) s with swash tail @@ -758,29 +762,27 @@ cmpSubscript.item[")"] := "{u+208e}" ; (₎) subscript ) ; Compose : Spacing Characters and Dashes cmpSpace := ComObjCreate("Scripting.Dictionary") -cmpQuad := ComObjCreate("Scripting.Dictionary") cmpSpace.item["1"] := "{u+2004}" ; three-per-em space cmpSpace.item["2"] := "{u+2002}" ; en space cmpSpace.item["3"] := "{u+2003}" ; em space cmpSpace.item["4"] := "{u+2005}" ; four-per-em space -cmpSpace.item["5"] := "{u+2008}" ; punctuation space cmpSpace.item["6"] := "{u+2006}" ; six-per-em space -cmpSpace.item["7"] := "{u+2009}" ; thin space -cmpSpace.item["8"] := "{u+200a}" ; hair space cmpSpace.item["9"] := "{u+2007}" ; figure space cmpSpace.item["0"] := "{u+200b}" ; zero-width space (ZWSP) +cmpSpace.item["b"] := "{u+00a0}" ; non-breaking space (NBSP) cmpSpace.item["m"] := "{u+205f}" ; medium mathematical space (MMSP) cmpSpace.item["n"] := "{u+202f}" ; narrow no-break space (NNBSP) -cmpSpace.item[" "] := "{u+00a0}" ; non-breaking space (NBSP) +cmpSpace.item["p"] := "{u+2008}" ; punctuation space +cmpSpace.item["t"] := "{u+2009}" ; thin space +cmpSpace.item["h"] := "{u+200a}" ; hair space +cmpSpace.item["."] := "{u+2008}" ; punctuation space +cmpMacronStroke.item["1"] := "{u+2010}" ; (‐) hyphen cmpMacronStroke.item["2"] := "{u+2013}" ; (–) en dash cmpMacronStroke.item["3"] := "{u+2014}" ; (—) em dash cmpMacronStroke.item["4"] := "{u+2015}" ; (―) horizontal bar -cmpMacronStroke.item["5"] := "{u+2010}" ; (‐) hyphen cmpMacronStroke.item["9"] := "{u+2012}" ; (‒) figure dash cmpMacronStroke.item["0"] := "{u+00ad}" ; (­) soft hyphen (SHY) cmpMacronStroke.item["-"] := "{u+2011}" ; (‑) non-breaking hyphen -cmpQuad.item["2"] := "{u+2000}" ; en quad -cmpQuad.item["3"] := "{u+2001}" ; em quad ; Compose : Arrows and Pointing Triangles @@ -794,6 +796,22 @@ 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["W"] := "{u+25b4}" ; (▴) black up-pointing small triangle +cmpArrow.item["A"] := "{u+25c2}" ; (◂) black left-pointing small triangle +cmpArrow.item["S"] := "{u+25be}" ; (▾) black down-pointing small triangle +cmpArrow.item["D"] := "{u+25b8}" ; (▸) black right-pointing small triangle +cmpArrow.item["I"] := "{u+25b5}" ; (▵) white up-pointing small triangle +cmpArrow.item["J"] := "{u+25c3}" ; (◃) white left-pointing small triangle +cmpArrow.item["K"] := "{u+25bf}" ; (▿) white down-pointing small triangle +cmpArrow.item["L"] := "{u+25b9}" ; (▹) white right-pointing small triangle +cmpArrow.item["q"] := "{u+25a0}" ; (■) black square +cmpArrow.item["u"] := "{u+25a1}" ; (□) white square +cmpArrow.item["Q"] := "{u+25aa}" ; (▪) black small square +cmpArrow.item["U"] := "{u+25ab}" ; (▫) white small square +cmpArrow.item["z"] := "{u+25c6}" ; (◆) black diamond +cmpArrow.item["m"] := "{u+25c7}" ; (◇) white diamond +cmpArrow.item["Z"] := "{u+2b25}" ; (⬥) black medium diamond +cmpArrow.item["M"] := "{u+2b26}" ; (⬦) white medium diamond cmpArrow.item["1"] := "{u+2199}" ; (↙) south west arrow cmpArrow.item["2"] := "{u+2193}" ; (↓) downwards arrow cmpArrow.item["3"] := "{u+2198}" ; (↘) south east arrow @@ -846,6 +864,8 @@ cmpSymbols.item["x"] := "{u+203b}" ; (※) reference mark cmpSymbols.item["2"] := "{u+266b}" ; (♫) beamed eighth notes cmpSymbols.item["3"] := "{u+2042}" ; (⁂) asterism cmpSymbols.item["4"] := "{u+203b}" ; (※) reference mark +cmpSymbols.item["5"] := "{u+2605}" ; (★) black star +cmpSymbols.item["6"] := "{u+2606}" ; (☆) white star cmpSymbols.item["8"] := "{u+266a}" ; (♪) eighth note cmpSymbols.item["!"] := "{u+203c}" ; (‼) double exclamation mark cmpSymbols.item["?"] := "{u+2e2e}" ; (⸮) reversed question mark @@ -948,6 +968,11 @@ cmpCapitalT.item["H"] := "{u+00de}" ; (Þ) capital letter thorn cmpDigitEight := ComObjCreate("Scripting.Dictionary") cmpCapitalP := ComObjCreate("Scripting.Dictionary") +cmpSmallY := ComObjCreate("Scripting.Dictionary") +cmpCapitalV := ComObjCreate("Scripting.Dictionary") +cmpCapitalY := ComObjCreate("Scripting.Dictionary") +cmpSmallX := ComObjCreate("Scripting.Dictionary") +cmpCapitalX := ComObjCreate("Scripting.Dictionary") cmpVerticalLine := ComObjCreate("Scripting.Dictionary") cmpAsterisk := ComObjCreate("Scripting.Dictionary") cmpExclam := ComObjCreate("Scripting.Dictionary") @@ -957,6 +982,8 @@ cmpPlus := ComObjCreate("Scripting.Dictionary") cmpPercent := ComObjCreate("Scripting.Dictionary") cmpLessThan := ComObjCreate("Scripting.Dictionary") cmpGreaterThan := ComObjCreate("Scripting.Dictionary") +cmpSemicolon := ComObjCreate("Scripting.Dictionary") +cmpBracketLeft := ComObjCreate("Scripting.Dictionary") cmpSmallD.item["d"] := "{u+2020}" ; (†) dagger cmpCapitalD.item["D"] := "{u+2021}" ; (‡) double dagger cmpSmallI.item["i"] := "{u+221e}" ; (∞) infinity symbol @@ -973,6 +1000,12 @@ cmpSmallR.item["4"] := "{u+221c}" ; (∜) fourth root cmpSymbols.item["o"] := "{u+00a7}" ; (§) section sign cmpCapitalS.item["o"] := "{u+00a7}" ; (§) section sign cmpSmallT.item["m"] := "{u+2122}" ; (™) trademark symbol +cmpCaron.item["v"] := "{u+2713}" ; (✓) check mark +cmpSmallY.item["y"] := "{u+2713}" ; (✓) check mark +cmpCapitalV.item["V"] := "{u+2714}" ; (✔) heavy check mark +cmpCapitalY.item["Y"] := "{u+2714}" ; (✔) heavy check mark +cmpSmallX.item["x"] := "{u+2717}" ; (✗) ballot x +cmpCapitalX.item["X"] := "{u+2718}" ; (✘) heavy ballot x cmpVerticalLine.item["|"] := "{u+2016}" ; (‖) double vertical line cmpAcuteAccent.item["1"] := "{u+2032}" ; (′) prime cmpAcuteAccent.item["2"] := "{u+2033}" ; (″) double prime @@ -1007,30 +1040,16 @@ cmpGreaterThan.item["="] := "{u+2265}" ; (≥) greater-than or equal to cmpLessThan.item["+"] := "{u+2a7d}" ; (⩽) less-than or slanted equal to cmpGreaterThan.item["+"] := "{u+2a7e}" ; (⩾) greater-than or slanted equal to cmpTilde.item["~"] := "{u+2248}" ; (≈) almost equal to - - -; Compose : Bullets and Small Geometric Shapes (;) - -cmpSemicolon := ComObjCreate("Scripting.Dictionary") -cmpSemicolon.item["b"] := "{u+2022}" ; (•) bullet -cmpSemicolon.item["o"] := "{u+25e6}" ; (◦) white bullet -cmpSemicolon.item["h"] := "{u+2043}" ; (⁃) hyphen bullet -cmpSemicolon.item["t"] := "{u+2023}" ; (‣) triangular bullet -cmpSemicolon.item["q"] := "{u+25aa}" ; (▪) black small square -cmpSemicolon.item["u"] := "{u+25ab}" ; (▫) white small square -cmpSemicolon.item["w"] := "{u+25b4}" ; (▴) black up-pointing small triangle -cmpSemicolon.item["a"] := "{u+25c2}" ; (◂) black left-pointing small triangle -cmpSemicolon.item["s"] := "{u+25be}" ; (▾) black down-pointing small triangle -cmpSemicolon.item["d"] := "{u+25b8}" ; (▸) black right-pointing small triangle -cmpSemicolon.item["i"] := "{u+25b5}" ; (▵) white up-pointing small triangle -cmpSemicolon.item["j"] := "{u+25c3}" ; (◃) white left-pointing small triangle -cmpSemicolon.item["k"] := "{u+25bf}" ; (▿) white down-pointing small triangle -cmpSemicolon.item["l"] := "{u+25b9}" ; (▹) white right-pointing small triangle -cmpSemicolon.item["z"] := "{u+25a0}" ; (■) black square -cmpSemicolon.item["x"] := "{u+25a1}" ; (□) white square -cmpSemicolon.item["c"] := "{u+25c6}" ; (◆) black diamond -cmpSemicolon.item["v"] := "{u+25c7}" ; (◇) white diamond -cmpSemicolon.item[";"] := "{u+2022}" ; (•) bullet +cmpSemicolon.item["b"] := "{u+2022}" ; (•) bullet +cmpSemicolon.item["o"] := "{u+25e6}" ; (◦) white bullet +cmpSemicolon.item["w"] := "{u+25e6}" ; (◦) white bullet +cmpSemicolon.item["h"] := "{u+2043}" ; (⁃) hyphen bullet +cmpSemicolon.item["t"] := "{u+2023}" ; (‣) triangular bullet +cmpSemicolon.item[";"] := "{u+2022}" ; (•) bullet +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 : Vulgar Fractions @@ -1065,7 +1084,6 @@ cmpDigitZero.item["3"] := "{u+2189}" ; (↉) vulgar fraction 0/3 ; Compose : Quotation Marks -cmpBracketLeft := ComObjCreate("Scripting.Dictionary") cmpBracketRight := ComObjCreate("Scripting.Dictionary") cmpBackslash := ComObjCreate("Scripting.Dictionary") cmpCedillaOgonek.item[chr(34)] := "{u+201e}" ; („) double low-9 quotation mark @@ -1097,6 +1115,31 @@ cmpGreaterThan.item["'"] := "{u+203a}" ; (›) right-pointing single angl cmpAcuteAccent.item[">"] := "{u+203a}" ; (›) right-pointing single angle quotation mark +; Compose : Chess Pieces and Playing Card Suit Symbols (C) + +cmpCapitalC := ComObjCreate("Scripting.Dictionary") +cmpCapitalC.item["k"] := "{u+2654}" ; (♔) white chess king +cmpCapitalC.item["q"] := "{u+2655}" ; (♕) white chess queen +cmpCapitalC.item["r"] := "{u+2656}" ; (♖) white chess rook +cmpCapitalC.item["b"] := "{u+2657}" ; (♗) white chess bishop +cmpCapitalC.item["n"] := "{u+2658}" ; (♘) white chess knight +cmpCapitalC.item["p"] := "{u+2659}" ; (♙) white chess pawn +cmpCapitalC.item["K"] := "{u+265a}" ; (♚) black chess king +cmpCapitalC.item["Q"] := "{u+265b}" ; (♛) black chess queen +cmpCapitalC.item["R"] := "{u+265c}" ; (♜) black chess rook +cmpCapitalC.item["B"] := "{u+265d}" ; (♝) black chess bishop +cmpCapitalC.item["N"] := "{u+265e}" ; (♞) black chess knight +cmpCapitalC.item["P"] := "{u+265f}" ; (♟) black chess pawn +cmpCapitalC.item["c"] := "{u+2667}" ; (♧) white club suit +cmpCapitalC.item["C"] := "{u+2663}" ; (♣) black club suit +cmpCapitalC.item["d"] := "{u+2662}" ; (♢) white diamond suit +cmpCapitalC.item["D"] := "{u+2666}" ; (♦) black diamond suit +cmpCapitalC.item["h"] := "{u+2661}" ; (♡) white heart suit +cmpCapitalC.item["H"] := "{u+2665}" ; (♥) black heart suit +cmpCapitalC.item["s"] := "{u+2664}" ; (♤) white spade suit +cmpCapitalC.item["S"] := "{u+2660}" ; (♠) black spade suit + + ; Compose : Double Grave Accent (G) cmpCapitalG := ComObjCreate("Scripting.Dictionary") @@ -1248,6 +1291,30 @@ cmpGreaterThan.item["z"] := "{u+1e93}" ; (ẓ) z with dot below cmpGreaterThan.item["Z"] := "{u+1e92}" ; (Ẓ) Z with dot below +; Accented Letters with Dot Below (?) + +cmpQuestion.item["a"] := "{u+1ead}" ; (ậ) a with circumflex and dot below +cmpQuestion.item["A"] := "{u+1eac}" ; (Ậ) A with circumflex and dot below +cmpQuestion.item["b"] := "{u+1eb7}" ; (ặ) a with breve and dot below +cmpQuestion.item["B"] := "{u+1eb6}" ; (Ặ) A with breve and dot below +cmpQuestion.item["e"] := "{u+1ec7}" ; (ệ) e with circumflex and dot below +cmpQuestion.item["E"] := "{u+1ec6}" ; (Ệ) E with circumflex and dot below +cmpQuestion.item["f"] := "{u+1e1d}" ; (ḝ) e with cedilla and breve +cmpQuestion.item["F"] := "{u+1e1c}" ; (Ḝ) E with cedilla and breve +cmpQuestion.item["l"] := "{u+1e39}" ; (ḹ) l with dot below and macron +cmpQuestion.item["L"] := "{u+1e38}" ; (Ḹ) L with dot below and macron +cmpQuestion.item["o"] := "{u+1ed9}" ; (ộ) o with circumflex and dot below +cmpQuestion.item["O"] := "{u+1ed8}" ; (Ộ) O with circumflex and dot below +cmpQuestion.item["r"] := "{u+1e5d}" ; (ṝ) r with dot below and macron +cmpQuestion.item["R"] := "{u+1e5c}" ; (Ṝ) R with dot below and macron +cmpQuestion.item["s"] := "{u+1e69}" ; (ṩ) s with dot below and dot above +cmpQuestion.item["S"] := "{u+1e68}" ; (Ṩ) S with dot below and dot above +cmpQuestion.item["t"] := "{u+1ee3}" ; (ợ) o with horn and dot below +cmpQuestion.item["T"] := "{u+1ee2}" ; (Ợ) O with horn and dot below +cmpQuestion.item["u"] := "{u+1ef1}" ; (ự) u with horn and dot below +cmpQuestion.item["U"] := "{u+1ef0}" ; (Ự) U with horn and dot below + + ; Compose : Miscellaneous Symbols and Dingbats cmpDigitSix := ComObjCreate("Scripting.Dictionary") @@ -1446,31 +1513,6 @@ cmpDigitEight.item["m"] := "{u+27be}" ; (➾) open-outlined rightwards arrow cmpDigitEight.item["n"] := "{u+27c1}" ; (⟁) white triangle containing small white triangle -; Compose : Chess Pieces and Playing Card Suit Symbols (C) - -cmpCapitalC := ComObjCreate("Scripting.Dictionary") -cmpCapitalC.item["k"] := "{u+2654}" ; (♔) white chess king -cmpCapitalC.item["q"] := "{u+2655}" ; (♕) white chess queen -cmpCapitalC.item["r"] := "{u+2656}" ; (♖) white chess rook -cmpCapitalC.item["b"] := "{u+2657}" ; (♗) white chess bishop -cmpCapitalC.item["n"] := "{u+2658}" ; (♘) white chess knight -cmpCapitalC.item["p"] := "{u+2659}" ; (♙) white chess pawn -cmpCapitalC.item["K"] := "{u+265a}" ; (♚) black chess king -cmpCapitalC.item["Q"] := "{u+265b}" ; (♛) black chess queen -cmpCapitalC.item["R"] := "{u+265c}" ; (♜) black chess rook -cmpCapitalC.item["B"] := "{u+265d}" ; (♝) black chess bishop -cmpCapitalC.item["N"] := "{u+265e}" ; (♞) black chess knight -cmpCapitalC.item["P"] := "{u+265f}" ; (♟) black chess pawn -cmpCapitalC.item["c"] := "{u+2667}" ; (♧) white club suit -cmpCapitalC.item["C"] := "{u+2663}" ; (♣) black club suit -cmpCapitalC.item["d"] := "{u+2662}" ; (♢) white diamond suit -cmpCapitalC.item["D"] := "{u+2666}" ; (♦) black diamond suit -cmpCapitalC.item["h"] := "{u+2661}" ; (♡) white heart suit -cmpCapitalC.item["H"] := "{u+2665}" ; (♥) black heart suit -cmpCapitalC.item["s"] := "{u+2664}" ; (♤) white spade suit -cmpCapitalC.item["S"] := "{u+2660}" ; (♠) black spade suit - - ; Compose : Dingbat Negative Circled Digits (n) cmpSmallN.item["1"] := "{u+2776}" ; (❶) dingbat negative circled digit 1 @@ -2121,8 +2163,6 @@ cmpSmallN.item["0"] := "{u+277f}" ; (❿) dingbat negative circled digit 10 Send % cmpSubscript.item[keyB] else if (keyA == " ") Send % cmpSpace.item[keyB] - else if (keyA == "q") - Send % cmpQuad.item[keyB] else if (keyA == "a") Send % cmpArrow.item[keyB] else if (keyA == "s") @@ -2151,6 +2191,16 @@ cmpSmallN.item["0"] := "{u+277f}" ; (❿) dingbat negative circled digit 10 Send % cmpCapitalT.item[keyB] else if (keyA == "P") Send % cmpCapitalP.item[keyB] + else if (keyA == "y") + Send % cmpSmallY.item[keyB] + else if (keyA == "V") + Send % cmpCapitalV.item[keyB] + else if (keyA == "Y") + Send % cmpCapitalY.item[keyB] + else if (keyA == "x") + Send % cmpSmallX.item[keyB] + else if (keyA == "X") + Send % cmpCapitalX.item[keyB] else if (keyA == "|") Send % cmpVerticalLine.item[keyB] else if (keyA == "*") @@ -2171,6 +2221,8 @@ cmpSmallN.item["0"] := "{u+277f}" ; (❿) dingbat negative circled digit 10 Send % cmpLessThan.item[keyB] else if (keyA == ">") Send % cmpGreaterThan.item[keyB] + else if (keyA == "[") + Send % cmpBracketLeft.item[keyB] else if (keyA == ";") Send % cmpSemicolon.item[keyB] else if (keyA == "1") @@ -2187,12 +2239,12 @@ cmpSmallN.item["0"] := "{u+277f}" ; (❿) dingbat negative circled digit 10 Send % cmpDigitSeven.item[keyB] else if (keyA == "0") Send % cmpDigitZero.item[keyB] - else if (keyA == "[") - Send % cmpBracketLeft.item[keyB] else if (keyA == "]") Send % cmpBracketRight.item[keyB] else if (keyA == "\") Send % cmpBackslash.item[keyB] + else if (keyA == "C") + Send % cmpCapitalC.item[keyB] else if (keyA == "G") Send % cmpCapitalG.item[keyB] else if (keyA == "B") @@ -2203,8 +2255,6 @@ cmpSmallN.item["0"] := "{u+277f}" ; (❿) dingbat negative circled digit 10 Send % cmpCapitalR.item[keyB] else if (keyA == "6") Send % cmpDigitSix.item[keyB] - else if (keyA == "C") - Send % cmpCapitalC.item[keyB] keyA := "" ; avoids leaking content via debug properties keyB := "" ; avoids leaking content via debug properties diff --git a/autohotkey/UltimateKEYS (for AutoHotkey v2).ahk b/autohotkey/UltimateKEYS (for AutoHotkey v2).ahk index 7ab4429..dc05188 100644 --- a/autohotkey/UltimateKEYS (for AutoHotkey v2).ahk +++ b/autohotkey/UltimateKEYS (for AutoHotkey v2).ahk @@ -1,6 +1,6 @@ #requires AutoHotkey v2 -; UltimateKEYS (for AutoHotkey v2).ahk - 2024-11-30 +; UltimateKEYS (for AutoHotkey v2).ahk - 2025-01-21 ; Website : https://pieter-degroote.github.io/UltimateKEYS/ @@ -504,9 +504,13 @@ cmpSmallF["v"] := "{u+2c71}" ; (ⱱ) v with right hook cmpSmallF["z"] := "{u+0290}" ; (ʐ) z with retroflex hook -; Compose : Swash Tail and Variations (t) +; Compose : Swash Tail and Other Variations (t) global cmpSmallT := Map() +cmpSmallT["c"] := "{u+a793}" ; (ꞓ) c with bar +cmpSmallT["C"] := "{u+a792}" ; (Ꞓ) C with bar +cmpSmallT["f"] := "{u+a799}" ; (ꞙ) f with stroke +cmpSmallT["F"] := "{u+a798}" ; (Ꞙ) F with stroke cmpSmallT["l"] := "{u+2c61}" ; (ⱡ) l with double bar cmpSmallT["L"] := "{u+2c60}" ; (Ⱡ) L with double bar cmpSmallT["s"] := "{u+023f}" ; (ȿ) s with swash tail @@ -759,29 +763,27 @@ cmpSubscript[")"] := "{u+208e}" ; (₎) subscript ) ; Compose : Spacing Characters and Dashes global cmpSpace := Map() -global cmpQuad := Map() cmpSpace["1"] := "{u+2004}" ; three-per-em space cmpSpace["2"] := "{u+2002}" ; en space cmpSpace["3"] := "{u+2003}" ; em space cmpSpace["4"] := "{u+2005}" ; four-per-em space -cmpSpace["5"] := "{u+2008}" ; punctuation space cmpSpace["6"] := "{u+2006}" ; six-per-em space -cmpSpace["7"] := "{u+2009}" ; thin space -cmpSpace["8"] := "{u+200a}" ; hair space cmpSpace["9"] := "{u+2007}" ; figure space cmpSpace["0"] := "{u+200b}" ; zero-width space (ZWSP) +cmpSpace["b"] := "{u+00a0}" ; non-breaking space (NBSP) cmpSpace["m"] := "{u+205f}" ; medium mathematical space (MMSP) cmpSpace["n"] := "{u+202f}" ; narrow no-break space (NNBSP) -cmpSpace[" "] := "{u+00a0}" ; non-breaking space (NBSP) +cmpSpace["p"] := "{u+2008}" ; punctuation space +cmpSpace["t"] := "{u+2009}" ; thin space +cmpSpace["h"] := "{u+200a}" ; hair space +cmpSpace["."] := "{u+2008}" ; punctuation space +cmpMacronStroke["1"] := "{u+2010}" ; (‐) hyphen cmpMacronStroke["2"] := "{u+2013}" ; (–) en dash cmpMacronStroke["3"] := "{u+2014}" ; (—) em dash cmpMacronStroke["4"] := "{u+2015}" ; (―) horizontal bar -cmpMacronStroke["5"] := "{u+2010}" ; (‐) hyphen cmpMacronStroke["9"] := "{u+2012}" ; (‒) figure dash cmpMacronStroke["0"] := "{u+00ad}" ; (­) soft hyphen (SHY) cmpMacronStroke["-"] := "{u+2011}" ; (‑) non-breaking hyphen -cmpQuad["2"] := "{u+2000}" ; en quad -cmpQuad["3"] := "{u+2001}" ; em quad ; Compose : Arrows and Pointing Triangles @@ -795,6 +797,22 @@ cmpArrow["i"] := "{u+25b3}" ; (△) white up-pointing triangle cmpArrow["j"] := "{u+25c1}" ; (◁) white left-pointing triangle cmpArrow["k"] := "{u+25bd}" ; (▽) white down-pointing triangle cmpArrow["l"] := "{u+25b7}" ; (▷) white right-pointing triangle +cmpArrow["W"] := "{u+25b4}" ; (▴) black up-pointing small triangle +cmpArrow["A"] := "{u+25c2}" ; (◂) black left-pointing small triangle +cmpArrow["S"] := "{u+25be}" ; (▾) black down-pointing small triangle +cmpArrow["D"] := "{u+25b8}" ; (▸) black right-pointing small triangle +cmpArrow["I"] := "{u+25b5}" ; (▵) white up-pointing small triangle +cmpArrow["J"] := "{u+25c3}" ; (◃) white left-pointing small triangle +cmpArrow["K"] := "{u+25bf}" ; (▿) white down-pointing small triangle +cmpArrow["L"] := "{u+25b9}" ; (▹) white right-pointing small triangle +cmpArrow["q"] := "{u+25a0}" ; (■) black square +cmpArrow["u"] := "{u+25a1}" ; (□) white square +cmpArrow["Q"] := "{u+25aa}" ; (▪) black small square +cmpArrow["U"] := "{u+25ab}" ; (▫) white small square +cmpArrow["z"] := "{u+25c6}" ; (◆) black diamond +cmpArrow["m"] := "{u+25c7}" ; (◇) white diamond +cmpArrow["Z"] := "{u+2b25}" ; (⬥) black medium diamond +cmpArrow["M"] := "{u+2b26}" ; (⬦) white medium diamond cmpArrow["1"] := "{u+2199}" ; (↙) south west arrow cmpArrow["2"] := "{u+2193}" ; (↓) downwards arrow cmpArrow["3"] := "{u+2198}" ; (↘) south east arrow @@ -847,6 +865,8 @@ cmpSymbols["x"] := "{u+203b}" ; (※) reference mark cmpSymbols["2"] := "{u+266b}" ; (♫) beamed eighth notes cmpSymbols["3"] := "{u+2042}" ; (⁂) asterism cmpSymbols["4"] := "{u+203b}" ; (※) reference mark +cmpSymbols["5"] := "{u+2605}" ; (★) black star +cmpSymbols["6"] := "{u+2606}" ; (☆) white star cmpSymbols["8"] := "{u+266a}" ; (♪) eighth note cmpSymbols["!"] := "{u+203c}" ; (‼) double exclamation mark cmpSymbols["?"] := "{u+2e2e}" ; (⸮) reversed question mark @@ -949,6 +969,11 @@ cmpCapitalT["H"] := "{u+00de}" ; (Þ) capital letter thorn global cmpDigitEight := Map() global cmpCapitalP := Map() +global cmpSmallY := Map() +global cmpCapitalV := Map() +global cmpCapitalY := Map() +global cmpSmallX := Map() +global cmpCapitalX := Map() global cmpVerticalLine := Map() global cmpAsterisk := Map() global cmpExclam := Map() @@ -958,6 +983,8 @@ global cmpPlus := Map() global cmpPercent := Map() global cmpLessThan := Map() global cmpGreaterThan := Map() +global cmpSemicolon := Map() +global cmpBracketLeft := Map() cmpSmallD["d"] := "{u+2020}" ; (†) dagger cmpCapitalD["D"] := "{u+2021}" ; (‡) double dagger cmpSmallI["i"] := "{u+221e}" ; (∞) infinity symbol @@ -974,6 +1001,12 @@ cmpSmallR["4"] := "{u+221c}" ; (∜) fourth root cmpSymbols["o"] := "{u+00a7}" ; (§) section sign cmpCapitalS["o"] := "{u+00a7}" ; (§) section sign cmpSmallT["m"] := "{u+2122}" ; (™) trademark symbol +cmpCaron["v"] := "{u+2713}" ; (✓) check mark +cmpSmallY["y"] := "{u+2713}" ; (✓) check mark +cmpCapitalV["V"] := "{u+2714}" ; (✔) heavy check mark +cmpCapitalY["Y"] := "{u+2714}" ; (✔) heavy check mark +cmpSmallX["x"] := "{u+2717}" ; (✗) ballot x +cmpCapitalX["X"] := "{u+2718}" ; (✘) heavy ballot x cmpVerticalLine["|"] := "{u+2016}" ; (‖) double vertical line cmpAcuteAccent["1"] := "{u+2032}" ; (′) prime cmpAcuteAccent["2"] := "{u+2033}" ; (″) double prime @@ -1008,30 +1041,16 @@ cmpGreaterThan["="] := "{u+2265}" ; (≥) greater-than or equal to cmpLessThan["+"] := "{u+2a7d}" ; (⩽) less-than or slanted equal to cmpGreaterThan["+"] := "{u+2a7e}" ; (⩾) greater-than or slanted equal to cmpTilde["~"] := "{u+2248}" ; (≈) almost equal to - - -; Compose : Bullets and Small Geometric Shapes (;) - -global cmpSemicolon := Map() -cmpSemicolon["b"] := "{u+2022}" ; (•) bullet -cmpSemicolon["o"] := "{u+25e6}" ; (◦) white bullet -cmpSemicolon["h"] := "{u+2043}" ; (⁃) hyphen bullet -cmpSemicolon["t"] := "{u+2023}" ; (‣) triangular bullet -cmpSemicolon["q"] := "{u+25aa}" ; (▪) black small square -cmpSemicolon["u"] := "{u+25ab}" ; (▫) white small square -cmpSemicolon["w"] := "{u+25b4}" ; (▴) black up-pointing small triangle -cmpSemicolon["a"] := "{u+25c2}" ; (◂) black left-pointing small triangle -cmpSemicolon["s"] := "{u+25be}" ; (▾) black down-pointing small triangle -cmpSemicolon["d"] := "{u+25b8}" ; (▸) black right-pointing small triangle -cmpSemicolon["i"] := "{u+25b5}" ; (▵) white up-pointing small triangle -cmpSemicolon["j"] := "{u+25c3}" ; (◃) white left-pointing small triangle -cmpSemicolon["k"] := "{u+25bf}" ; (▿) white down-pointing small triangle -cmpSemicolon["l"] := "{u+25b9}" ; (▹) white right-pointing small triangle -cmpSemicolon["z"] := "{u+25a0}" ; (■) black square -cmpSemicolon["x"] := "{u+25a1}" ; (□) white square -cmpSemicolon["c"] := "{u+25c6}" ; (◆) black diamond -cmpSemicolon["v"] := "{u+25c7}" ; (◇) white diamond -cmpSemicolon[";"] := "{u+2022}" ; (•) bullet +cmpSemicolon["b"] := "{u+2022}" ; (•) bullet +cmpSemicolon["o"] := "{u+25e6}" ; (◦) white bullet +cmpSemicolon["w"] := "{u+25e6}" ; (◦) white bullet +cmpSemicolon["h"] := "{u+2043}" ; (⁃) hyphen bullet +cmpSemicolon["t"] := "{u+2023}" ; (‣) triangular bullet +cmpSemicolon[";"] := "{u+2022}" ; (•) bullet +cmpBracketLeft["]"] := "{u+2610}" ; (☐) ballot box +cmpBracketLeft["v"] := "{u+2611}" ; (☑) ballot box with check +cmpBracketLeft["y"] := "{u+2611}" ; (☑) ballot box with check +cmpBracketLeft["x"] := "{u+2612}" ; (☒) ballot box with x ; Compose : Vulgar Fractions @@ -1066,7 +1085,6 @@ cmpDigitZero["3"] := "{u+2189}" ; (↉) vulgar fraction 0/3 ; Compose : Quotation Marks -global cmpBracketLeft := Map() global cmpBracketRight := Map() global cmpBackslash := Map() cmpCedillaOgonek[chr(34)] := "{u+201e}" ; („) double low-9 quotation mark @@ -1098,6 +1116,31 @@ cmpGreaterThan["'"] := "{u+203a}" ; (›) right-pointing single angle quo cmpAcuteAccent[">"] := "{u+203a}" ; (›) right-pointing single angle quotation mark +; Compose : Chess Pieces and Playing Card Suit Symbols (C) + +global cmpCapitalC := Map() +cmpCapitalC["k"] := "{u+2654}" ; (♔) white chess king +cmpCapitalC["q"] := "{u+2655}" ; (♕) white chess queen +cmpCapitalC["r"] := "{u+2656}" ; (♖) white chess rook +cmpCapitalC["b"] := "{u+2657}" ; (♗) white chess bishop +cmpCapitalC["n"] := "{u+2658}" ; (♘) white chess knight +cmpCapitalC["p"] := "{u+2659}" ; (♙) white chess pawn +cmpCapitalC["K"] := "{u+265a}" ; (♚) black chess king +cmpCapitalC["Q"] := "{u+265b}" ; (♛) black chess queen +cmpCapitalC["R"] := "{u+265c}" ; (♜) black chess rook +cmpCapitalC["B"] := "{u+265d}" ; (♝) black chess bishop +cmpCapitalC["N"] := "{u+265e}" ; (♞) black chess knight +cmpCapitalC["P"] := "{u+265f}" ; (♟) black chess pawn +cmpCapitalC["c"] := "{u+2667}" ; (♧) white club suit +cmpCapitalC["C"] := "{u+2663}" ; (♣) black club suit +cmpCapitalC["d"] := "{u+2662}" ; (♢) white diamond suit +cmpCapitalC["D"] := "{u+2666}" ; (♦) black diamond suit +cmpCapitalC["h"] := "{u+2661}" ; (♡) white heart suit +cmpCapitalC["H"] := "{u+2665}" ; (♥) black heart suit +cmpCapitalC["s"] := "{u+2664}" ; (♤) white spade suit +cmpCapitalC["S"] := "{u+2660}" ; (♠) black spade suit + + ; Compose : Double Grave Accent (G) global cmpCapitalG := Map() @@ -1249,6 +1292,30 @@ cmpGreaterThan["z"] := "{u+1e93}" ; (ẓ) z with dot below cmpGreaterThan["Z"] := "{u+1e92}" ; (Ẓ) Z with dot below +; Accented Letters with Dot Below (?) + +cmpQuestion["a"] := "{u+1ead}" ; (ậ) a with circumflex and dot below +cmpQuestion["A"] := "{u+1eac}" ; (Ậ) A with circumflex and dot below +cmpQuestion["b"] := "{u+1eb7}" ; (ặ) a with breve and dot below +cmpQuestion["B"] := "{u+1eb6}" ; (Ặ) A with breve and dot below +cmpQuestion["e"] := "{u+1ec7}" ; (ệ) e with circumflex and dot below +cmpQuestion["E"] := "{u+1ec6}" ; (Ệ) E with circumflex and dot below +cmpQuestion["f"] := "{u+1e1d}" ; (ḝ) e with cedilla and breve +cmpQuestion["F"] := "{u+1e1c}" ; (Ḝ) E with cedilla and breve +cmpQuestion["l"] := "{u+1e39}" ; (ḹ) l with dot below and macron +cmpQuestion["L"] := "{u+1e38}" ; (Ḹ) L with dot below and macron +cmpQuestion["o"] := "{u+1ed9}" ; (ộ) o with circumflex and dot below +cmpQuestion["O"] := "{u+1ed8}" ; (Ộ) O with circumflex and dot below +cmpQuestion["r"] := "{u+1e5d}" ; (ṝ) r with dot below and macron +cmpQuestion["R"] := "{u+1e5c}" ; (Ṝ) R with dot below and macron +cmpQuestion["s"] := "{u+1e69}" ; (ṩ) s with dot below and dot above +cmpQuestion["S"] := "{u+1e68}" ; (Ṩ) S with dot below and dot above +cmpQuestion["t"] := "{u+1ee3}" ; (ợ) o with horn and dot below +cmpQuestion["T"] := "{u+1ee2}" ; (Ợ) O with horn and dot below +cmpQuestion["u"] := "{u+1ef1}" ; (ự) u with horn and dot below +cmpQuestion["U"] := "{u+1ef0}" ; (Ự) U with horn and dot below + + ; Compose : Miscellaneous Symbols and Dingbats global cmpDigitSix := Map() @@ -1447,31 +1514,6 @@ cmpDigitEight["m"] := "{u+27be}" ; (➾) open-outlined rightwards arrow cmpDigitEight["n"] := "{u+27c1}" ; (⟁) white triangle containing small white triangle -; Compose : Chess Pieces and Playing Card Suit Symbols (C) - -global cmpCapitalC := Map() -cmpCapitalC["k"] := "{u+2654}" ; (♔) white chess king -cmpCapitalC["q"] := "{u+2655}" ; (♕) white chess queen -cmpCapitalC["r"] := "{u+2656}" ; (♖) white chess rook -cmpCapitalC["b"] := "{u+2657}" ; (♗) white chess bishop -cmpCapitalC["n"] := "{u+2658}" ; (♘) white chess knight -cmpCapitalC["p"] := "{u+2659}" ; (♙) white chess pawn -cmpCapitalC["K"] := "{u+265a}" ; (♚) black chess king -cmpCapitalC["Q"] := "{u+265b}" ; (♛) black chess queen -cmpCapitalC["R"] := "{u+265c}" ; (♜) black chess rook -cmpCapitalC["B"] := "{u+265d}" ; (♝) black chess bishop -cmpCapitalC["N"] := "{u+265e}" ; (♞) black chess knight -cmpCapitalC["P"] := "{u+265f}" ; (♟) black chess pawn -cmpCapitalC["c"] := "{u+2667}" ; (♧) white club suit -cmpCapitalC["C"] := "{u+2663}" ; (♣) black club suit -cmpCapitalC["d"] := "{u+2662}" ; (♢) white diamond suit -cmpCapitalC["D"] := "{u+2666}" ; (♦) black diamond suit -cmpCapitalC["h"] := "{u+2661}" ; (♡) white heart suit -cmpCapitalC["H"] := "{u+2665}" ; (♥) black heart suit -cmpCapitalC["s"] := "{u+2664}" ; (♤) white spade suit -cmpCapitalC["S"] := "{u+2660}" ; (♠) black spade suit - - ; Compose : Dingbat Negative Circled Digits (n) cmpSmallN["1"] := "{u+2776}" ; (❶) dingbat negative circled digit 1 @@ -2175,10 +2217,6 @@ cmpSmallN["0"] := "{u+277f}" ; (❿) dingbat negative circled digit 10 if cmpSpace.Has(ihB.Input) Send cmpSpace[ihB.Input] } - else if (ihA.Input == "q") { - if cmpQuad.Has(ihB.Input) - Send cmpQuad[ihB.Input] - } else if (ihA.Input == "a") { if cmpArrow.Has(ihB.Input) Send cmpArrow[ihB.Input] @@ -2235,6 +2273,26 @@ cmpSmallN["0"] := "{u+277f}" ; (❿) dingbat negative circled digit 10 if cmpCapitalP.Has(ihB.Input) Send cmpCapitalP[ihB.Input] } + else if (ihA.Input == "y") { + if cmpSmallY.Has(ihB.Input) + Send cmpSmallY[ihB.Input] + } + else if (ihA.Input == "V") { + if cmpCapitalV.Has(ihB.Input) + Send cmpCapitalV[ihB.Input] + } + else if (ihA.Input == "Y") { + if cmpCapitalY.Has(ihB.Input) + Send cmpCapitalY[ihB.Input] + } + else if (ihA.Input == "x") { + if cmpSmallX.Has(ihB.Input) + Send cmpSmallX[ihB.Input] + } + else if (ihA.Input == "X") { + if cmpCapitalX.Has(ihB.Input) + Send cmpCapitalX[ihB.Input] + } else if (ihA.Input == "|") { if cmpVerticalLine.Has(ihB.Input) Send cmpVerticalLine[ihB.Input] @@ -2275,6 +2333,10 @@ cmpSmallN["0"] := "{u+277f}" ; (❿) dingbat negative circled digit 10 if cmpGreaterThan.Has(ihB.Input) Send cmpGreaterThan[ihB.Input] } + else if (ihA.Input == "[") { + if cmpBracketLeft.Has(ihB.Input) + Send cmpBracketLeft[ihB.Input] + } else if (ihA.Input == ";") { if cmpSemicolon.Has(ihB.Input) Send cmpSemicolon[ihB.Input] @@ -2307,10 +2369,6 @@ cmpSmallN["0"] := "{u+277f}" ; (❿) dingbat negative circled digit 10 if cmpDigitZero.Has(ihB.Input) Send cmpDigitZero[ihB.Input] } - else if (ihA.Input == "[") { - if cmpBracketLeft.Has(ihB.Input) - Send cmpBracketLeft[ihB.Input] - } else if (ihA.Input == "]") { if cmpBracketRight.Has(ihB.Input) Send cmpBracketRight[ihB.Input] @@ -2319,6 +2377,10 @@ cmpSmallN["0"] := "{u+277f}" ; (❿) dingbat negative circled digit 10 if cmpBackslash.Has(ihB.Input) Send cmpBackslash[ihB.Input] } + else if (ihA.Input == "C") { + if cmpCapitalC.Has(ihB.Input) + Send cmpCapitalC[ihB.Input] + } else if (ihA.Input == "G") { if cmpCapitalG.Has(ihB.Input) Send cmpCapitalG[ihB.Input] @@ -2339,8 +2401,4 @@ cmpSmallN["0"] := "{u+277f}" ; (❿) dingbat negative circled digit 10 if cmpDigitSix.Has(ihB.Input) Send cmpDigitSix[ihB.Input] } - else if (ihA.Input == "C") { - if cmpCapitalC.Has(ihB.Input) - Send cmpCapitalC[ihB.Input] - } } -- 2.47.3