From 9617cb9bd31f483cde6732105ba07a8ed13c4192 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernardas=20Ali=C5=A1auskas?= Date: Fri, 25 Sep 2020 20:43:37 +0700 Subject: [PATCH 1/2] add initial support for xcompose conversion to yamlcompose --- README.md | 27 + convcompose.py | 120 ++++ mappings/xcompose.compose | 1419 +++++++++++++++++++++++++++++++++++++ mappings/xcompose.yaml | 1001 ++++++++++++++++++++++++++ pyproject.toml | 6 +- 5 files changed, 2572 insertions(+), 1 deletion(-) create mode 100644 convcompose.py create mode 100644 mappings/xcompose.compose create mode 100644 mappings/xcompose.yaml diff --git a/README.md b/README.md index df384b3..f6700eb 100644 --- a/README.md +++ b/README.md @@ -88,6 +88,33 @@ Options: _note: Some programs need a hard reboot to take in the map, like `kill -9` sort of reboot to start working._ +## Using XCompose Mappings + +Linux's xcompose mappings are supported via experimental conversion: + +``` +$ gen-compose-conver xcompose --help +Usage: gen-compose-convert xcompose [OPTIONS] [FILES]... + + Convert xcompose file, that follows format like: + <1> : "⑴" + +Options: + -c, --keep-comments keep inline comments + --help Show this message and exit. +``` + +For example: + +``` +$ cat mappings/example.compose + : "₿" U20BF # BITCOIN SIGN +$ gen-compose-convert xcompose mappings/example.compose --keep-comments > example.yaml +$ cat example.yaml +"B|": "₿" # BITCOIN SIGN +``` + + ## Notes and Issues * There's no way to really debug this other than trial and error and making sure applications are restarted after every update. diff --git a/convcompose.py b/convcompose.py new file mode 100644 index 0000000..0586fa0 --- /dev/null +++ b/convcompose.py @@ -0,0 +1,120 @@ +import click +import re + +from click import echo + +KEY_MAP = { + 'bracketleft': '[', + 'bracketright': ']', + 'parenleft': '(', + 'parenright': ')', + 'Multi_key': '', + 'period': '.', + 'minus': '-', + 'plus': '+', + 'dollar': '$', + 'at': '@', + 'exclam': '!', + 'less': '<', + 'greater': '>', + 'slash': '/', + 'backslash': '\\', + 'question': '?', + 'space': ' ', + 'equal': '=', + 'asciitilde': '~', + 'numbersign': '#', + 'asterisk': '*', + 'colon': ':', + 'semicolon': ';', + 'percent': '%', + 'underscore': '_', + 'asciicircum': '^', + 'comma': ',', + 'apostrophe': "'", + 'quotedbl': '"', + 'bar': "|", + 'grave': "`", + 'ampersand': "&", + 'braceright': "}", + 'braceleft': "{", + 'KP_Multiply': "*", + 'exclamdown': "¡", + 'questiondown': "¿", +} + + +def quote(char): + """ + quote yaml key + - replaces `\` to `\\` + - replace `"` to `\"` + """ + char = char.replace('\\', '\\\\') + char = char.replace('"', '\\"') + return char + + +def remap_keys(keys): + """remap xcompose keys to unicode characters""" + result = [] + for key in keys: + key = key.strip('<>') + if len(key) > 1: + # convert unicode hexes to unicode characters + # e.g. U220B == ∋ + if key.startswith('U') and any(c.isdigit() for c in key): + key = key.split('U', 1)[1] + key = chr(int(key, 16)) + elif key not in KEY_MAP: + raise ValueError(f'unsupported keymap: {key}') + result.append(KEY_MAP.get(key, key)) + return result + + +@click.group() +def main(): + """convert alternative formats to yaml key: value format""" + pass + + +@main.command() +@click.argument('files', type=click.File(), nargs=-1) +@click.option('-c', '--keep-comments', is_flag=True, help='keep inline comments') +def xcompose(files, keep_comments): + """ + Convert xcompose file, that follows format like: + <1> : "⑴" + """ + # e.g. < Multi_key > < parenleft > < period > < 1 > < parenright >: "⑴" + for file in files: + for row in file: + row = row.strip() + if not row: + continue + if row.startswith('#') or row.startswith('include'): + continue + if '#' in row: + row, comment = row.split('#', 1) + else: + comment = '' + try: + from_, to = row.split(':', 1) + except ValueError: + echo(f'malformed line:\n{row}', err=True) + continue + from_ = re.split('\s+', from_) + try: + from_ = ''.join(remap_keys(from_)) + except ValueError as e: + echo(f'{e}; skipping:\n {row}', err=True) + continue + to = to.split('"')[1] + value = f'"{quote(from_)}": "{quote(to)}"' + if keep_comments and comment: + value += f' #{comment}' + echo(value) + + +if __name__ == '__main__': + main() diff --git a/mappings/xcompose.compose b/mappings/xcompose.compose new file mode 100644 index 0000000..b22afc5 --- /dev/null +++ b/mappings/xcompose.compose @@ -0,0 +1,1419 @@ +# for Emacs: -*- coding: utf-8 -*- +include "%L" + +# def emit(keys, codepoint, word): +# print (' %s \t: "%s"\tU%04X\t\t# CIRCLED DIGIT %s' % +# (keys, unichr(codepoint), codepoint, word)).encode('utf8') +# numbers = 'one two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen twenty' +# words = numbers.upper().split() +# emit('<0>', 0x24EA, "ZERO") +# for num, word in zip(range(1, 21), words): +# emit(' '.join("<%s>" % char for char in str(num)), 0x245f + num, word) + +# Custom additions: Typography + : "…" U2026 # HORIZONTAL ELLIPSIS + : "⋮" U22EE # VERTICAL ELLIPSIS + : "⋯" U22EF # MIDLINE HORIZONTAL ELLIPSIS + : "⋰" U22F0 # UP RIGHT DIAGONAL ELLIPSIS +# To avoid conflict with \. for combining dot above. +# : "⋱" U22F1 # DOWN RIGHT DIAGONAL ELLIPSIS + : "⋱" U22F1 # DOWN RIGHT DIAGONAL ELLIPSIS +# Will we someday regret this, wanting 2. for ⒉ ? + <2> : "‥" U2025 # TWO DOT LEADER +# This should not be needed. +# <1> : "․" U2024 # ONE DOT LEADER + <1> : "·" U00B7 # MIDDLE DOT (maybe I can remember the keystroke better? + : "⁒" U2052 # COMMERCIAL MINUS SIGN +### or && ? + : "⅋" U214B # TURNED AMPERSAND + <7> : "⁊" U204A # TIRONIAN SIGN ET +# Printable sign for space. But is \ too useful a key combo to use +# for this? + : "␣" U2423 # OPEN BOX +# These two are already present for me: +# : "—" U2014 # EM DASH +# : "–" U2013 # EN DASH + : "– " # EN DASH (followed by space) + : "―" U2015 # HORIZONTAL BAR + <2> : "⸺" U2E3A # TWO-EM DASH + <3> : "⸻" U2E3B # THREE-EM DASH + : "­" U00AD # SOFT HYPHEN +# This is the recommended typographical practice for em dashes in English. +# Unfortunately, it doesn’t work out all that well in monospace fonts, +# where the thin spaces aren’t thin. But I think this is okay. +# This conflicts with the default binding to “~”, which is potentially +# a problem for non-American keyboards. + : " — " # EM DASH surrounded by THIN SPACEs. + + +# Quotation marks. + : "‚" U201A # SINGLE LOW-9 QUOTATION MARK + : "„" U201E # DOUBLE LOW-9 QUOTATION MARK + : "⹂" U2E42 # DOUBLE LOW-REVERSED-9 QUOTATION MARK + : "’" U2019 # RIGHT SINGLE QUOTATION MARK + : "”" U201D # RIGHT DOUBLE QUOTATION MARK + : "‘" U2018 # LEFT SINGLE QUOTATION MARK + : "“" U201C # LEFT DOUBLE QUOTATION MARK + <6> : "‘" U2018 # LEFT SINGLE QUOTATION MARK (high 6) + <6> : "“" U201C # LEFT DOUBLE QUOTATION MARK (66) + <9> : "’" U2019 # RIGHT SINGLE QUOTATION MARK (high 9) + <9> : "”" U201D # RIGHT DOUBLE QUOTATION MARK (99) + <9> : "‛" U201B # SINGLE HIGH-REVERSED-9 QUOTATION MARK + <9> : "‟" U201F # DOUBLE HIGH-REVERSED-9 QUOTATION MARK + : "‚" U201A # SINGLE LOW-9 QUOTATION MARK (quote resembling a comma) + : "„" U201E # DOUBLE LOW-9 QUOTATION MARK + +# Convenience shortcuts for quotation marks. + : " “" # space followed by LEFT DOUBLE QUOTATION MARK + : "” " # RIGHT DOUBLE QUOTATION MARK followed by space + : " ‘" # space followed by LEFT SINGLE QUOTATION MARK +# Unfortunately is, asymmetrically, just "’". Whatever. + : "n’t " # Apostrophized English “not.” +# Some more English shortcuts: + : " the " + : " The " + : " and " + : " I’m " + : "’ve " + + : "⸲" U2E32 # TURNED COMMA +# Conflicts with system def? (·) + : "⸳" U2E33 # RAISED DOT + : "⸳" U2E33 # RAISED DOT + : "⸴" U2E34 # RAISED COMMA + : "⸵" U2E35 # TURNED SEMICOLON +# Convlicts with system def? (⍭) + : "ⸯ" U2E2F # VERTICAL TILDE + : "ⸯ" U2E2F # VERTICAL TILDE + : "⹀" U2E40 # DOUBLE HYPHEN + : "⹁" U2E41 # REVERSED COMMA + : "↵" U21B5 # DOWNWARDS ARROW WITH CORNER LEFTWARDS +# The bullet was , but it clashes with ꙭ + <1> : "•" U2022 # BULLET +# By default does this, but we broke that with the ... binding. + : "⁃" U2043 # HYPHEN BULLET + : "·" periodcentered # MIDDLE DOT +# I don’t use this nearly as often as the em-dash sequence I’ve remapped it to: +# : "‑" U2011 # NON-BREAKING HYPHEN +# Already present for me: +# : " " U00A0 # NO-BREAK SPACE +# Narrow no-break space, needed for some Latin languages like French + : " " U202f # NARROW NO-BREAK SPACE +# Technically, NO-BREAK SPACE is not supposed to be fixed-width. This is: + : " " U2007 # FIGURE SPACE +# We used to have THIN SPACE as , but now that’s remapped +# to " ‘", for conveniently enclosing things in proper single-quotes. + : " " U2009 # THIN SPACE +# (heh, heh... space bar) + : " " U200A # HAIR SPACE + : "†" U2020 # DAGGER + : "‡" U2021 # DOUBLE DAGGER + : "§" U00A7 # SECTION SIGN +# It's in the Asian section, but it's a general-purpose punctuation: + : "〃" U3003 # DITTO MARK +# Working with the pattern from FLOOR/CEILING + <7> : "⸢" U2E22 # TOP LEFT HALF BRACKET + <7> : "⸣" U2E23 # TOP RIGHT HALF BRACKET + : "⸤" U2E24 # BOTTOM LEFT HALF BRACKET + : "⸥" U2E25 # BOTTOM RIGHT HALF BRACKET +# Consider <7> / for ⸂⸃ maybe? and for ⸉⸊⸌⸍ ...? +# I guess we can get by with sub/superset for ⸦⸧. + + : "←" leftarrow # LEFTWARDS ARROW + : "↑" uparrow # UPWARDS ARROW + : "→" rightarrow # RIGHTWARDS ARROW + : "↓" downarrow # DOWNWARDS ARROW + : "↔" U2194 # LEFT RIGHT ARROW (kragen's) + + : "←" leftarrow # LEFTWARDS ARROW + : "↑" uparrow # UPWARDS ARROW + : "→" rightarrow # RIGHTWARDS ARROW + : "↓" downarrow # DOWNWARDS ARROW + : "↔" U2194 # LEFT RIGHT ARROW (kragen's) + : "↔" U2194 # LEFT RIGHT ARROW (kragen's) + : "↕" U2195 # UP DOWN ARROW (kragen's) + : "⇵" U21F5 # DOWNWARDS ARROW LEFTWARDS OF UPWARDS ARROW + : "↵" U21B5 # DOWNWARDS ARROW WITH CORNER LEFTWARDS + : "⟲" U27F2 # ANTICLOCKWISE GAPPED CIRCLE ARROW + : "⟳" U27F3 # CLOCKWISE GAPPED CIRCLE ARROW + : "↺" U21BA # ANTICLOCKWISE OPEN CIRCLE ARROW + : "↻" U21BB # CLOCKWISE OPEN CIRCLE ARROW + : "⇜" U21DC # LEFTWARDS SQUIGGLE ARROW + : "⬳" U2B33 # LONG LEFTWARDS SQUIGGLE ARROW + : "⇝" U21DD # RIGHTWARDS SQUIGGLE ARROW + : "⟿" U27FF # LONG RIGHTWARDS SQUIGGLE ARROW + : "⇤" U21E4 # LEFTWARDS ARROW TO BAR + : "⇥" U21E5 # RIGHTWARDS ARROW TO BAR + : "⇠" U21E0 # LEFTWARDS DASHED ARROW + : "⇡" U21E1 # UPWARDS DASHED ARROW + : "⇢" U21E2 # RIGHTWARDS DASHED ARROW + : "⇣" U21E3 # DOWNWARDS DASHED ARROW + : "↯" U21AF # DOWNWARDS ZIGZAG ARROW + +# Arrow keys don't always work: some apps trap them for cursor control and +# other boring things. The arrow symbols have alternate keystrokes. Do +# we need others for these printer's fists? If so, what? The -= and =- +# we had before are not necessarily the best choices. + : "☚" U261A # BLACK LEFT POINTING INDEX + : "☛" U261B # BLACK RIGHT POINTING INDEX + : "☜" U261C # WHITE LEFT POINTING INDEX + : "☝" U261D # WHITE UP POINTING INDEX + : "☞" U261E # WHITE RIGHT POINTING INDEX + : "☟" U261F # WHITE DOWN POINTING INDEX + : "✌" U270C # VICTORY HAND + : "✍" U270D # WRITING HAND +

: "✎" U270E # LOWER RIGHT PENCIL +

: "✏" U270F # PENCIL +

: "✐" U2710 # UPPER RIGHT PENCIL + +# For some logical statements. I prefer doubled arrows for implication. + : "⇒" U21D2 # RIGHTWARDS DOUBLE ARROW + : "⇐" U21D0 # LEFTWARDS DOUBLE ARROW + : "⇔" U21D4 # LEFT RIGHT DOUBLE ARROW + : "⇒" U21D2 # RIGHTWARDS DOUBLE ARROW + : "⇐" U21D0 # LEFTWARDS DOUBLE ARROW + : "⇔" U21D4 # LEFT RIGHT DOUBLE ARROW + : "⇔" U21D4 # LEFT RIGHT DOUBLE ARROW + : "⇑" U21D1 # UPWARDS DOUBLE ARROW + : "⇓" U21D3 # DOWNWARDS DOUBLE ARROW + : "⇕" U21D5 # UP DOWN DOUBLE ARROW + : "⏎" U23CE # RETURN SYMBOL +# These are just too cool-looking not to have (if your font supports them) + : "⸎" U2E0E # EDITORIAL CORONIS +

: "ꟼ" UA7FC # LATIN EPIGRAPHIC LETTER REVERSED P + : "ꟻ" UA7FB # LATIN EPIGRAPHIC LETTER REVERSED F +

: "ꟼ" UA7FC # LATIN EPIGRAPHIC LETTER REVERSED P + : "Ⅎ" U2132 # TURNED CAPITAL F + : "ⅎ" U214E # TURNED SMALL F + : "ꟽ" UA7FD # LATIN EPIGRAPHIC LETTER INVERTED M + : "Ɯ" U019C # LATIN CAPITAL LETTER TURNED M + : "ꟾ" UA7FE # LATIN EPIGRAPHIC LETTER I LONGA + : "ꟿ" UA7FF # LATIN EPIGRAPHIC LETTER ARCHAIC M + <2> <2> : "↊" U218A # TURNED DIGIT TWO + <3> <3> : "↋" U218B # TURNED DIGIT THREE +# I'd been avoiding this because we already have ∃... +# Hey, these, being *letters* can be used as identifiers in some languages... + : "Ǝ" U018E # LATIN CAPITAL LETTER REVERSED E + : "Ǝ" U018E # LATIN CAPITAL LETTER REVERSED E + : "ɘ" U0258 # LATIN SMALL LETTER REVERSED E + : "ɘ" U0258 # LATIN SMALL LETTER REVERSED E +# Complete the set + : "Ɐ" U2C6F # LATIN CAPITAL LETTER TURNED A +# These seem too long as keystrokes; any suggestions? +# How about 2o? + : "ꝏ" UA74F # LATIN SMALL LETTER OO + : "Ꝏ" UA74E # LATIN CAPITAL LETTER OO + <2> : "ꝏ" UA74F # LATIN SMALL LETTER OO + <2> : "Ꝏ" UA74E # LATIN CAPITAL LETTER OO +# Latin-D chars I'm particularly thinking about: +# (side note: "I" has many referents in this file.) +# ꜲꜳꜴꜵꜶꜷꜸꜹꜼꜽꝒꝓꝔꝕꝚꝛꝜꝝꝠꝡꝪꝫꝸ +# The ligature pairs are so easy, might as well include them (probably +# using ampersand though). P with flourish? Squirrel tail? How +# pretty! I like the r and rum rotunda, and et actually has something +# close to usefulness (it was very common for abbreviations, and is the +# source of the "z" in abbreviations like oz. and viz.) Some others +# are a little appealing too. + + : "Ꜳ" UA732 # LATIN CAPITAL LETTER AA + : "ꜳ" UA733 # LATIN SMALL LETTER AA + <2> : "Ꜳ" UA732 # LATIN CAPITAL LETTER AA + <2> : "ꜳ" UA733 # LATIN SMALL LETTER AA + : "Ꜵ" UA734 # LATIN CAPITAL LETTER AO + : "ꜵ" UA735 # LATIN SMALL LETTER AO + : "Ꜷ" UA736 # LATIN CAPITAL LETTER AU + : "ꜷ" UA737 # LATIN SMALL LETTER AU + : "Ꜹ" UA738 # LATIN CAPITAL LETTER AV + : "ꜹ" UA739 # LATIN SMALL LETTER AV + : "Ꜽ" UA73C # LATIN CAPITAL LETTER AY + : "ꜽ" UA73D # LATIN SMALL LETTER AY + : "Ꝇ" UA746 # LATIN CAPITAL LETTER BROKEN L + : "ꝇ" UA747 # LATIN SMALL LETTER BROKEN L +# (See above for reason behind keystrokes) + : "Ꝫ" UA76A # LATIN CAPITAL LETTER ET + : "ꝫ" UA76B # LATIN SMALL LETTER ET + : "Ꝡ" UA760 # LATIN CAPITAL LETTER VY + : "ꝡ" UA761 # LATIN SMALL LETTER VY + : "Ꝣ" UA762 # LATIN CAPITAL LETTER VISIGOTHIC Z + : "ꝣ" UA763 # LATIN SMALL LETTER VISIGOTHIC Z + : "Ỻ" U1EFA # LATIN CAPITAL LETTER MIDDLE-WELSH LL + : "ỻ" U1EFB # LATIN SMALL LETTER MIDDLE-WELSH LL + : "Ỽ" U1EFC # LATIN CAPITAL LETTER MIDDLE-WELSH V + : "ỽ" U1EFD # LATIN SMALL LETTER MIDDLE-WELSH V + : "ȸ" U0238 # LATIN SMALL LETTER DB DIGRAPH +

: "ȹ" U0239 # LATIN SMALL LETTER QP DIGRAPH + : "ƿ" U01BF # LATIN LETTER WYNN + : "Ƿ" U01F7 # LATIN CAPITAL LETTER WYNN + : "Ȣ" U0222 # LATIN CAPITAL LETTER OU + : "ȣ" U0223 # LATIN SMALL LETTER OU + : "Ʀ" U01A6 # LATIN LETTER YR +# might almost make more sense, as it's used when r follows [opb]. +# But it conflicts with system ® + : "ꝛ" UA75B # LATIN SMALL LETTER R ROTUNDA + <0> : "ꝛ" UA75B # LATIN SMALL LETTER R ROTUNDA +# Alas, conflicts with ® anyway. + : "Ꝛ" UA75A # LATIN CAPITAL LETTER R ROTUNDA +# something, anyway. + <0> : "Ꝛ" UA75A # LATIN CAPITAL LETTER R ROTUNDA +# Custom additions: Mathematical symbols + : "≠" U2260 # NOT EQUAL TO + : "≠" U2260 # NOT EQUAL TO + : "≤" U2264 # LESS-THAN OR EQUAL TO + : "≥" U2265 # GREATER-THAN OR EQUAL TO + : "≸" U2278 # NEITHER LESS-THAN NOR GREATER-THAN +# MUCH is usually enough for me. No need for VERY. + : "≪" U226A # MUCH LESS-THAN + : "≫" U226B # MUCH GREATER-THAN +# Damn. That makes this conflict with the standard plus plus -> # + : "⋘" U22D8 # VERY MUCH LESS-THAN + : "⋙" U22D9 # VERY MUCH GREATER-THAN + <3> : "⋙" U22D9 # VERY MUCH GREATER-THAN + <3> : "⋘" U22D8 # VERY MUCH LESS-THAN + : "∈" U2208 # ELEMENT OF + : "∉" U2209 # NOT AN ELEMENT OF + : "∉" U2209 # NOT AN ELEMENT OF (I have ∈ on my keyboard...) + : "∊" U220A # SMALL ELEMENT OF + : "∍" U220D # SMALL CONTAINS AS MEMBER +# For the above for people without ∈/∋ on their kbds? {♫i/n} and {♫n/i}? + : "∋" U220B # CONTAINS AS MEMBER (I hope this doesn't conflict) + : "∌" U220C # DOES NOT CONTAIN AS MEMBER +# would conflict, with for N WITH UNDERDOT, etc. + : "∌" U220C # DOES NOT CONTAIN AS MEMBER + : "≅" U2245 # APPROXIMATELY EQUAL TO (It actually means "congruent"!) + : "≟" U225f # QUESTIONED EQUAL TO + : "≝" U225D # EQUAL TO BY DEFINITION + : "≝" U225D # EQUAL TO BY DEFINITION + : "≡" U2261 # IDENTICAL TO + : "≔" U2254 # COLON EQUALS + : "≕" U2255 # EQUALS COLON + <2> : "⩵" U2A75 # TWO CONSECUTIVE EQUALS SIGNS + : "⩵" U2A75 # TWO CONSECUTIVE EQUALS SIGNS + <3> : "⩶" U2A76 # THREE CONSECUTIVE EQUALS SIGNS +# Using conflicts. + : "≢" U2262 # NOT IDENTICAL TO +# We already have ± + : "∓" U2213 # MINUS OR PLUS SIGN + : "√" U221A # SQUARE ROOT +# keystrokes might not make the most sense, but you know what they mean... + <3> : "∛" U221B # CUBE ROOT + <4> : "∜" U221C # FOURTH ROOT + # “(Note: I had put the backslash in position 5/15. It enabled the + # ALGOL “and” to be “/\” and the “or” to be “\/”.)” --- Bob Bemer, + # http://home.ccil.org/~remlaps/www.bobbemer.com/BRACES.HTM, quoting + # himself in “A view of the history of the ISO character code”, 1972 + : "∧" U2227 # LOGICAL AND + : "∨" U2228 # LOGICAL OR + : "⊻" U22BB # XOR + : "¬" U00AC # NOT SIGN + : "∘" U2218 # RING OPERATOR (function composition) + : "⨯" U2A2F # CROSS PRODUCT + : "⋅" U22C5 # DOT OPERATOR (dot product) + <0> : "∅" U2205 # EMPTY SET (thanks jsled!) + <0> : "∅" U2205 # EMPTY SET +# I'm hoping { can work as a set mnemonic + : "∪" U222A # UNION + : "∩" U2229 # INTERSECTION + : "⊂" U2282 # SUBSET OF + : "⊆" U2286 # SUBSET OF OR EQUAL TO + : "⊄" U2284 # NOT A SUBSET OF + : "⊄" U2284 # NOT A SUBSET OF + : "⊅" U2285 # NOT A SUPERSET OF + : "⊅" U2285 # NOT A SUPERSET OF + : "⊃" U2283 # SUPERSET OF + : "⊇" U2287 # SUPERSET OF OR EQUAL TO + : "∃" U2203 # THERE EXISTS +# We can't use ! E E, because ! E maps to E-WITH-UNDERDOT. + : "∄" U2204 # THERE DOES NOT EXIST + : "∀" U2200 # FOR ALL + : "∎" U220E # END OF PROOF + <8> <8> : "∞" U221E # INFINITY +

: "ℵ" U2135 # ALEF SYMBOL +

<0> : "ℵ₀" # ALEF Null +

<1> : "ℵ₁" # ALEF One + : "ℵ" U2135 # ALEF SYMBOL + : "∗" U2217 # ASTERISK OPERATOR + : "⊕" U2295 # CIRCLED PLUS + : "⊖" U2296 # CIRCLED MINUS + : "⊗" U2297 # CIRCLED TIMES + : "⊘" U2298 # CIRCLED DIVISION SLASH + : "⊛" U229B # CIRCLED ASTERISK OPERATOR +# )- conflicts with system for }. + : "⟌" U27CC # LONG DIVISION + : "∴" U2234 # THEREFORE + <4> : "∴" U2234 # THEREFORE + : "∵" U2235 # BECAUSE + : "∵" U2235 # BECAUSE + : "‱" U2031 # PER TEN THOUSAND (basis points) + : "µ" U00B5 # MICRO SIGN +# Ordinal indicators, for femenine and masculine, used in Romance languages + : "ª" U00AA # FEMININE ORDINAL INDICATOR + : "º" U00BA # MASCULINE ORDINAL INDICATOR + +# See also U03A3 (Greek capital sigma) + : "∑" U2211 # N-ARY SUMMATION +# OK, absolutely cannot believe we made it this long without NABLA or INTEGRAL +# or PARTIAL DIFFERENTIAL + : "∫" U222B # INTEGRAL + : "⨛" U2A1B # UPPER INTEGRAL + : "⨜" U2A1C # LOWER INTEGRAL + : "∬" U222C # DOUBLE INTEGRAL + : "∭" U222D # TRIPLE INTEGRAL + : "⨌" U2A0C # QUADRUPLE INTEGRAL + : "∮" U222E # CONTOUR INTEGRAL +

: "⨕" U2A15 # INTEGRAL AROUND A POINT OPERATOR +

: "⨓" U2A13 # LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE + : "∯" U222F # SURFACE INTEGRAL + : "∰" U2230 # VOLUME INTEGRAL + : "⨘" U2A18 # GEOMETRIC INTEGRAL + : "⨋" U2A0B # SUM/INTEGRAL +#Now for some WTF integrals: ⨙ ⨚ + : "∇" U2207 # NABLA +

: "∂" U2202 # PARTIAL DIFFERENTIAL + : "∂" U2202 # PARTIAL DIFFERENTIAL + : "ℜ" U211C # BLACK-LETTER CAPITAL R (Real Part) + : "ℑ" U2111 # BLACK-LETTER CAPTIAL I (Imaginary Part) + : "ℏ" U210F # PLANCK CONSTANT OVER TWO PI + : "ℏ" U210F # PLANCK CONSTANT OVER TWO PI +

: "ℎ" U210E # PLANCK CONSTANT +

: "ℯ" U212F # SCRIPT SMALL E + <1> <0> : "⏨" U23E8 # DECIMAL EXPONENT SYMBOL +

: "℘" U2118 # SCRIPT CAPITAL P +# Would we prefer 20D1 COMBINING RIGHT HARPOON ABOVE? + : "⃗" U20D7 # COMBINING RIGHT ARROW ABOVE (vector) + : "ℂ" U2102 # DOUBLE-STRUCK CAPITAL C (set of complex numbers) + : "ℕ" U2115 # DOUBLE-STRUCK CAPITAL N (natural number) +

: "ℙ" U2119 # DOUBLE-STRUCK CAPITAL P + : "ℚ" U211A # DOUBLE-STRUCK CAPITAL Q (set of rational numbers) + : "ℝ" U211D # DOUBLE-STRUCK CAPITAL R (set of real numbers) + : "ℤ" U2124 # DOUBLE-STRUCK CAPITAL Z (set of integers) + : "ℍ" U210d # DOUBLE-STRUCK CAPITAL H + : "ⅇ" U2147 # DOUBLE-STRUCK ITALIC SMALL E + : "ⅈ" U2148 # DOUBLE-STRUCK ITALIC SMALL I + : "ⅉ" U2149 # DOUBLE-STRUCK ITALIC SMALL J +

: "ℼ" U213C # DOUBLE-STRUCK SMALL PI + : "ℼ" U213C # DOUBLE-STRUCK SMALL PI +

: "ℿ" U213F # DOUBLE-STRUCK CAPITAL PI + : "ℿ" U213F # DOUBLE-STRUCK CAPITAL PI + : "⅀" U2140 # DOUBLE-STRUCK N-ARY SUMMATION + : "⅀" U2140 # DOUBLE-STRUCK N-ARY SUMMATION + : "⦂" U2982 # Z NOTATION TYPE COLON +# Apparently it is only for historical reasons that this is not unified with +# ⨟ U+2A1F Z NOTATION SCHEMA COMPOSITION + : "⨾" U2A3E # Z NOTATION RELATIONAL COMPOSITION +# The *look* double-struck. + : "⦃" U2983 # LEFT WHITE CURLY BRACKET + : "⦄" U2984 # RIGHT WHITE CURLY BRACKET +# ⦅⦆⦇⦈⦉⦊ too? +# The rest of that block? Some there may be worth it. +# Ooh. There are lots of nice brackets to consider: +# ⟅⟆⟨⟩⟪⟫⟬⟭⟮⟯⦑⦒⦓⦔⦕⦖⦗⦘⧼⧽⧘⧙⧚⧛⸢⸣⸤⸥⸨⸩「」『』 +# Others too, of course, but these to start with. Some are likely worthy. + : "⟅" U27C5 # LEFT S-SHAPED BAG DELIMITER + : "⟆" U27C6 # RIGHT S-SHAPED BAG DELIMITER + : "⁅" U2045 # LEFT SQUARE BRACKET WITH QUILL + : "⁆" U2046 # RIGHT SQUARE BRACKET WITH QUILL +# There are a lot of angle brackets (3008/9, 27E8/9, 2329/A). I'm deciding +# to go with the mathematical brackets from now on, since they seem to be +# better supported. + : "⟨" U27E8 # MATHEMATICAL LEFT ANGLE BRACKET + : "⟩" U27E9 # MATHEMATICAL RIGHT ANGLE BRACKET + : "⟦" U27E6 # MATHEMATICAL LEFT WHITE SQUARE BRACKET + : "⟧" U27E7 # MATHEMATICAL RIGHT WHITE SQUARE BRACKET + <2> : "⟪" U27EA # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET + <2> : "⟫" U27EB # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET +# Keystrokes inconsistent. + : "⟬" U27EC # MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET + : "⟭" U27ED # MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET + : "⟮" U27EE # MATHEMATICAL LEFT FLATTENED PARENTHESIS + : "⟯" U27EF # MATHEMATICAL RIGHT FLATTENED PARENTHESIS + : "⦗" U2997 # LEFT BLACK TORTOISE SHELL BRACKET + : "⦘" U2998 # RIGHT BLACK TORTOISE SHELL BRACKET +# Do the underlined brackets, ones with ticks, dots, etc? + : "⧘" U29D8 # LEFT WIGGLY FENCE + : "⧙" U29D9 # RIGHT WIGGLY FENCE + <2> : "⧚" U29DA # LEFT DOUBLE WIGGLY FENCE + <2> : "⧛" U29DB # RIGHT DOUBLE WIGGLY FENCE + : "⸨" U2E28 # LEFT DOUBLE PARENTHESIS + : "⸩" U2E29 # RIGHT DOUBLE PARENTHESIS + <2> : "⸨" U2E28 # LEFT DOUBLE PARENTHESIS + <2> : "⸩" U2E29 # RIGHT DOUBLE PARENTHESIS + : "༼" U0F3C # TIBETAN MARK ANG KHANG GYON + : "༽" U0F3D # TIBETAN MARK ANG KHANG GYAS +# I'm thinking shape-mnemonics for these, somehow: + : "⌊" U230A # LEFT FLOOR + : "⌋" U230B # RIGHT FLOOR + <7> : "⌈" U2308 # LEFT CEILING + <7> : "⌉" U2309 # RIGHT CEILING +# These are actually quotes, hence the mnemonic. + <7> : "「" UFF62 # HALFWIDTH LEFT CORNER BRACKET + : "」" UFF63 # HALFWIDTH RIGHT CORNER BRACKET +# Why am I using halfwidth though, I wonder? And I'd also like ⌜⌝⌞⌟ + <7> : "『" U300E # LEFT WHITE CORNER BRACKET + : "』" U300F # RIGHT WHITE CORNER BRACKET +# How about these for the "corners"? Confusing with {L[} etc? +# and don't forget about {L_[} which we have for ⸤ + <7> : "⌜" U231C # TOP LEFT CORNER + <7> : "⌝" U231D # TOP RIGHT CORNER + : "⌞" U231E # BOTTOM LEFT CORNER + : "⌟" U231F # BOTTOM RIGHT CORNER + : "≬" U226C # BETWEEN + : "ℓ" U2113 # SCRIPT SMALL L + : "⊏" U228F # SQUARE IMAGE OF + : "⊑" U2291 # SQUARE IMAGE OF OR EQUAL TO + : "⊑" U2291 # SQUARE IMAGE OF OR EQUAL TO + : "⊐" U2290 # SQUARE ORIGINAL OF + : "⊒" U2292 # SQUARE ORIGINAL OF OR EQUAL TO + : "⊒" U2292 # SQUARE ORIGINAL OF OR EQUAL TO +# If I did more Haskell, I'd want this more: + : "⊥" U22A5 # UP TACK (bottom) or should we use U27C2 PERPENDICULAR? + : "⊤" U22A4 # DOWN TACK (opposite of False) + : "⊢" U22A2 # RIGHT TACK + : "⊣" U22A3 # LEFT TACK +# Handy for UNIX filenames... but XXX conflicts with standard → "\" + : "⁄" U2044 # FRACTION SLASH + +# The system file gives us subscript numbers, plus/minus, and parens. But +# there are letters missing. It would be nice to have at least a few of them. + +# block U+208x + <0> : "₀" U2080 # SUBSCRIPT ZERO + <1> : "₁" U2081 # SUBSCRIPT ONE + <2> : "₂" U2082 # SUBSCRIPT TWO + <3> : "₃" U2083 # SUBSCRIPT THREE + <4> : "₄" U2084 # SUBSCRIPT FOUR + <5> : "₅" U2085 # SUBSCRIPT FIVE + <6> : "₆" U2086 # SUBSCRIPT SIX + <7> : "₇" U2087 # SUBSCRIPT SEVEN + <8> : "₈" U2088 # SUBSCRIPT EIGHT + <9> : "₉" U2089 # SUBSCRIPT NONE + : "₊" U208A # SUBSCRIPT PLUS + : "₋" U208B # SUBSCRIPT MINUS + : "₌" U208C # SUBSCRIPT EQUALS SIGN + : "₍" U208D # SUBSCRIPT LEFT PARENTHESIS + : "₎" U208E # SUBSCRIPT RIGHT PARENTHESIS + +# block U+209x + : "ₐ" U2090 # LATIN SUBSCRIPT SMALL LETTER A + : "ₑ" U2091 # LATIN SUBSCRIPT SMALL LETTER E + : "ₒ" U2092 # LATIN SUBSCRIPT SMALL LETTER O + : "ₓ" U2093 # LATIN SUBSCRIPT SMALL LETTER X + : "ₕ" U2095 # LATIN SUBSCRIPT SMALL LETTER H + : "ₖ" U2096 # LATIN SUBSCRIPT SMALL LETTER K + : "ₗ" U2097 # LATIN SUBSCRIPT SMALL LETTER L + : "ₘ" U2098 # LATIN SUBSCRIPT SMALL LETTER M + : "ₙ" U2099 # LATIN SUBSCRIPT SMALL LETTER N +

: "ₚ" U209A # LATIN SUBSCRIPT SMALL LETTER P + : "ₛ" U209B # LATIN SUBSCRIPT SMALL LETTER S + : "ₜ" U209C # LATIN SUBSCRIPT SMALL LETTER T + +# subscripts in other blocks + : "ᵢ" U1D62 # LATIN SUBSCRIPT SMALL LETTER I + : "ⱼ" U2C7C # LATIN SUBSCRIPT SMALL LETTER J + : "ᵣ" U1D63 # LATIN SUBSCRIPT SMALL LETTER R + : "ᵤ" U1D64 # LATIN SUBSCRIPT SMALL LETTER U + : "ᵥ" U1D65 # LATIN SUBSCRIPT SMALL LETTER V + : "ᵦ" U1D66 # GREEK SUBSCRIPT SMALL LETTER BETA + : "ᵧ" U1D67 # GREEK SUBSCRIPT SMALL LETTER GAMMA + : "ᵨ" U1D68 # GREEK SUBSCRIPT SMALL LETTER RHO + : "ᵩ" U1D69 # GREEK SUBSCRIPT SMALL LETTER PHI + : "ᵪ" U1D6A # GREEK SUBSCRIPT SMALL LETTER CHI + +# Custom additions: Greek letters. Mapping corresponds to Emacs Greek +# input method. Aristotle Pagaltzis informs me that this is the +# standard Greek keyboard layout, which is good. + : "α" U03B1 # GREEK SMALL LETTER ALPHA + : "β" U03B2 # GREEK SMALL LETTER BETA + : "ψ" U03C8 # GREEK SMALL LETTER PSI + : "δ" U03B4 # GREEK SMALL LETTER DELTA + : "ε" U03B5 # GREEK SMALL LETTER EPSILON + : "φ" U03C6 # GREEK SMALL LETTER PHI + : "γ" U03B3 # GREEK SMALL LETTER GAMMA + : "η" U03B7 # GREEK SMALL LETTER ΕΤΑ + : "ι" U03B9 # GREEK SMALL LETTER ΙΟΤΑ + : "ξ" U03BE # GREEK SMALL LETTER XI + : "κ" U03BA # GREEK SMALL LETTER KAPPA + : "λ" U03BB # GREEK SMALL LETTER LAMBDA + : "μ" U03BC # GREEK SMALL LETTER MU + : "ν" U03BD # GREEK SMALL LETTER NU + : "ο" U03BF # GREEK SMALL LETTER OMICRON +

: "π" U03C0 # GREEK SMALL LETTER PI +# no mapping for q; in Emacs that's ";" +# U037E GREEK QUESTION MARK is canonically equivalent to U003B SEMICOLON. +# ... But that won't stop us from doing it anyway!!! + : ";" U037E # GREEK QUESTION MARK + : "ρ" U03C1 # GREEK SMALL LETTER RHO + : "σ" U03C3 # GREEK SMALL LETTER SIGMA + : "τ" U03C4 # GREEK SMALL LETTER TAU + : "θ" U03B8 # GREEK SMALL LETTER THETA + : "ω" U03C9 # GREEK SMALL LETTER OMEGA + : "ς" U03C2 # GREEK SMALL LETTER FINAL SIGMA + : "χ" U03C7 # GREEK SMALL LETTER CHI + : "υ" U03C5 # GREEK SMALL LETTER UPSILON + : "ζ" U03B6 # GREEK SMALL LETTER ZETA + +# Capital greek letters. + : "Α" U0391 # GREEK CAPITAL LETTER ALPHA + : "Β" U0392 # GREEK CAPITAL LETTER BETA + : "Ψ" U03A8 # GREEK CAPITAL LETTER PSI + : "Δ" U0394 # GREEK CAPITAL LETTER DELTA + : "Ε" U0395 # GREEK CAPITAL LETTER EPSILON + : "Φ" U03A6 # GREEK CAPITAL LETTER PHI + : "Γ" U0393 # GREEK CAPITAL LETTER GAMMA + : "Η" U0397 # GREEK CAPITAL LETTER ΕΤΑ + : "Ι" U0399 # GREEK CAPITAL LETTER ΙΟΤΑ + : "Ξ" U039E # GREEK CAPITAL LETTER XI + : "Κ" U039A # GREEK CAPITAL LETTER KAPPA + : "Λ" U039B # GREEK CAPITAL LETTER LAMBDA + : "Μ" U039C # GREEK CAPITAL LETTER MU + : "Ν" U039D # GREEK CAPITAL LETTER NU + : "Ο" U039F # GREEK CAPITAL LETTER OMICRON +

: "Π" U03A0 # GREEK CAPITAL LETTER PI +# see below for Q qoppa; in Emacs Q is “:” + : "Ρ" U03A1 # GREEK CAPITAL LETTER RHO + : "Σ" U03A3 # GREEK CAPITAL LETTER SIGMA + : "Τ" U03A4 # GREEK CAPITAL LETTER TAU + : "Θ" U0398 # GREEK CAPITAL LETTER THETA + : "Ω" U03A9 # GREEK CAPITAL LETTER OMEGA +# Emacs maps W to "Σ", but I think that’s stupid +# I think that's from the Greek keyboard. + : "Χ" U03A7 # GREEK CAPITAL LETTER CHI + : "Υ" U03A5 # GREEK CAPITAL LETTER UPSILON + : "Ζ" U0396 # GREEK CAPITAL LETTER ZETA + +# Some archaic Greek. If we only wanted *normal* characters we wouldn't be +# doing this at all! +# "period" will indicate a sort of variant of some kind; asterisk is still the "greek" marker +

: "ϖ" U03D6 # GREEK PI SYMBOL +# Reserving .f in case we want PHI SYMBOL. Digamma was "w" sound anyway. + : "ϝ" U03DD # GREEK SMALL LETTER DIGAMMA + : "Ϝ" U03DC # GREEK CAPITAL LETTER DIGAMMA + : "Ϟ" U03DE # GREEK LETTER QOPPA + : "ϟ" U03DF # GREEK SMALL LETTER QOPPA + : "Ϙ" U03D8 # GREEK LETTER ARCHAIC QOPPA + : "ϙ" U03D9 # GREEK SMALL LETTER ARCHAIC QOPPA + : "ϗ" U03D7 # GREEK KAI SYMBOL + : "Ϡ" U03E0 # GREEK LETTER SAMPI + : "ϡ" U03E1 # GREEK SMALL LETTER SAMPI + : "Ͳ" U0372 # GREEK CAPITAL LETTER ARCHAIC SAMPI + : "ͳ" U0373 # GREEK SMALL LETTER ARCHAIC SAMPI +# Sorry, couldn't think of better ones for these. Might want .s for SAN. + : "Ϛ" U03DA # GREEK LETTER STIGMA + : "ϛ" U03DB # GREEK SMALL LETTER STIGMA + : "ʹ" U02B9 # MODIFIER LETTER PRIME, canonically equivalent to U0374 GREEK NUMERAL SIGN +# While we're at it... + : "′" U2032 # PRIME + : "″" U2033 # DOUBLE PRIME + : "͵" U0375 # GREEK LOWER NUMERAL SIGN (for thousands) +# Do we want BETA SYMBOL, RHO SYMBOL, KAPPA SYMBOL, PHI SYMBOL, THETA SYMBOL? +# The format makes them obvious enough I guess. PI SYMBOL is different enough +# that there's no question, and it is separate from these. + : "ϐ" U03D0 # GREEK BETA SYMBOL + : "ϑ" U03D1 # GREEK THETA SYMBOL + : "ϒ" U03D2 # GREEK UPSILON WITH HOOK SYMBOL + : "ϕ" U03D5 # GREEK PHI SYMBOL + : "ϰ" U03F0 # GREEK KAPPA SYMBOL + : "ϱ" U03F1 # GREEK RHO SYMBOL + : "ϴ" U03F4 # GREEK CAPITAL THETA SYMBOL + : "ϵ" U03F5 # GREEK LUNATE EPSILON SYMBOL +# Not doing the lunate sigmas and dotted versions thereof... What about SAN, which is at least a letter? + : "ϻ" U03FB # GREEK SMALL LETTER SAN + : "Ϻ" U03FA # GREEK CAPITAL LETTER SAN + +# If you wanted to actually type in Greek, you would also need άίέ +# etc. But you would probably just switch to a Greek keyboard layout. + +# Custom additions: fractions + <1> <3> : "⅓" U2153 # VULGAR FRACTION ONE THIRD + <2> <3> : "⅔" U2154 # VULGAR FRACTION TWO THIRDS +# more extensive fractions from jsled + <1> <5> : "⅕" U2155 # VULGAR FRACTION ONE FIFTH + <2> <5> : "⅖" U2156 # VULGAR FRACTION TWO FIFTHS + <3> <5> : "⅗" U2157 # VULGAR FRACTION THREE FIFTHS + <4> <5> : "⅘" U2158 # VULGAR FRACTION FOUR FIFTHS + <1> <6> : "⅙" U2159 # VULGAR FRACTION ONE SIXTH + <5> <6> : "⅚" U215A # VULGAR FRACTION FIVE SIXTHS + <1> <8> : "⅛" U215B # VULGAR FRACTION ONE EIGHTH + <3> <8> : "⅜" U215C # VULGAR FRACTION THREE EIGHTHS + <5> <8> : "⅝" U215D # VULGAR FRACTION FIVE EIGHTHS + <7> <8> : "⅞" U215E # VULGAR FRACTION SEVEN EIGHTHS + <1> <7> : "⅐" U2150 # VULGAR FRACTION ONE SEVENTH + <1> <9> : "⅑" U2151 # VULGAR FRACTION ONE NINTH + <1> : "⅒" U2152 # VULGAR FRACTION ONE TENTH + <0> <3> : "↉" U2189 # VULGAR FRACTION ZERO THIRDS + <1> : "⅟" U215F # FRACTION NUMERATOR ONE + +# How about roman numerals? Percent for numerical mnemonic? +# Does this go against the spirit of this file? These symbols are accessible +# as regular letters and would look okay. Maybe only for I-X? + <1> : "ⅰ" U2170 # SMALL ROMAN NUMERAL ONE + <2> : "ⅱ" U2171 # SMALL ROMAN NUMERAL TWO + <3> : "ⅲ" U2172 # SMALL ROMAN NUMERAL THREE + <4> : "ⅳ" U2173 # SMALL ROMAN NUMERAL FOUR + <5> : "ⅴ" U2174 # SMALL ROMAN NUMERAL FIVE + <6> : "ⅵ" U2175 # SMALL ROMAN NUMERAL SIX + <7> : "ⅶ" U2176 # SMALL ROMAN NUMERAL SEVEN + <8> : "ⅷ" U2177 # SMALL ROMAN NUMERAL EIGHT + <9> : "ⅸ" U2178 # SMALL ROMAN NUMERAL NINE + : "ⅹ" U2179 # SMALL ROMAN NUMERAL TEN +# How do we handle eleven and twelve? + <1> : "ⅺ" U217A # SMALL ROMAN NUMERAL ELEVEN + <2> : "ⅻ" U217B # SMALL ROMAN NUMERAL TWELVE +# That okay? + : "ⅼ" U217C # SMALL ROMAN NUMERAL FIFTY + : "ⅽ" U217D # SMALL ROMAN NUMERAL ONE HUNDRED + : "ⅾ" U217E # SMALL ROMAN NUMERAL FIVE HUNDRED + : "ⅿ" U217F # SMALL ROMAN NUMERAL ONE THOUSAND +### + <0> <1> : "Ⅰ" U2160 # ROMAN NUMERAL ONE + <0> <2> : "Ⅱ" U2161 # ROMAN NUMERAL TWO + <0> <3> : "Ⅲ" U2162 # ROMAN NUMERAL THREE + <0> <4> : "Ⅳ" U2163 # ROMAN NUMERAL FOUR + <0> <5> : "Ⅴ" U2164 # ROMAN NUMERAL FIVE + <0> <6> : "Ⅵ" U2165 # ROMAN NUMERAL SIX + <0> <7> : "Ⅶ" U2166 # ROMAN NUMERAL SEVEN + <0> <8> : "Ⅷ" U2167 # ROMAN NUMERAL EIGHT + <0> <9> : "Ⅸ" U2168 # ROMAN NUMERAL NINE + <0> : "Ⅹ" U2169 # ROMAN NUMERAL TEN +# How do we handle eleven and twelve? + <0> <1> : "Ⅺ" U216A # ROMAN NUMERAL ELEVEN + <0> <2> : "Ⅻ" U216B # ROMAN NUMERAL TWELVE + <0> : "Ⅼ" U216C # ROMAN NUMERAL FIFTY + <0> : "Ⅽ" U216D # ROMAN NUMERAL ONE HUNDRED + <0> : "Ⅾ" U216E # ROMAN NUMERAL FIVE HUNDRED + <0> : "Ⅿ" U216F # ROMAN NUMERAL ONE THOUSAND + : "Ⅹ" U2169 # ROMAN NUMERAL TEN + : "Ⅼ" U216C # ROMAN NUMERAL FIFTY + : "Ⅽ" U216D # ROMAN NUMERAL ONE HUNDRED + : "Ↄ" U2183 # ROMAN NUMERAL REVERSED ONE HUNDRED + : "Ⅾ" U216E # ROMAN NUMERAL FIVE HUNDRED + : "Ⅿ" U216F # ROMAN NUMERAL ONE THOUSAND + <0> : "ↀ" U2180 # ROMAN NUMERAL ONE THOUSAND C D + <0> : "ↁ" U2181 # ROMAN NUMERAL FIVE THOUSAND + <0> : "ↂ" U2182 # ROMAN NUMERAL TEN THOUSAND + <0> <0> : "ↇ" U2187 # ROMAN NUMERAL FIFTY THOUSAND + <0> <0> : "ↈ" U2188 # ROMAN NUMERAL ONE HUNDRED THOUSAND + + +# Custom additions: for chat (kragen) + : "☻" U263B # BLACK SMILING FACE + : "☺" U263A # WHITE SMILING FACE + : "☹" U2639 # WHITE FROWNING FACE + : "⍨" U2368 # APL FUNCTIONAL SYMBOL TILDE DIAERESIS + : "⸚" U2E1A # HYPHEN WITH DIAERESIS + : "°͜°" # Funny smiley-face. +# Those are archaic cyrilic letters... but look so _perfect_ for use +# in chat. And about the last, the "multiocular O"... Well, I don't +# know what it can be used for, but given the description, how could I +# leave it out‽ +# (I guess using U+1F440 EYES would be more straightforward, but not as funny?) + : "Ꙭ" UA66C # CYRILLIC CAPITAL LETTER DOUBLE MONOCULAR O * used in the dual of words based on the root for 'eye' + : "ꙭ" UA66D # CYRILLIC SMALL LETTER DOUBLE MONOCULAR O + : "Ꙫ" UA66A # CYRILLIC CAPITAL LETTER BINOCULAR O * used in the dual of words based on the root for 'eye' + : "ꙫ" UA66B # CYRILLIC SMALL LETTER BINOCULAR O + : "ꙮ" UA66E # CYRILLIC LETTER MULTIOCULAR O * used in the epithet 'many-eyed' +# While we're doing stacks of circles with dots. + <3> : "߷" U07F7 # NKO SYMBOL GBAKURUNEN + : "‽" U203D # INTERROBANG + : "⸘" U2E18 # INVERTED INTERROBANG, standard now. + : "⸘" U2E18 # INVERTED INTERROBANG (if you have a ¡ key. Otherwise...? "?i" maybe? + : "⸘" U2E18 # INVERTED INTERROBANG (if you have a ¡ key. Otherwise...? "?i" maybe? + : "⸮" U2E2E # REVERSED QUESTION MARK + : "⸮" U2E2E # REVERSED QUESTION MARK + : "⁇" U2047 # DOUBLE QUESTION MARK + <2> : "⁇" U2047 # DOUBLE QUESTION MARK + : "⁈" U2048 # QUESTION EXCLAMATION MARK + : "⁉" U2049 # EXCLAMATION QUESTION MARK + : "‼" U203C # DOUBLE EXCLAMATION MARK + <2> : "‼" U203C # DOUBLE EXCLAMATION MARK + <2> : "∷" U2237 # PROPORTION -- not strictly 2 times COLON + : "⁏" U204F # REVERSED SEMICOLON + : "⁏" U204F # REVERSED SEMICOLON +# Keep looking into big hunks of Latin Extended-D, A720- et seq. + <3> : "♥" U2665 # BLACK HEART SUIT + <8> : "♣" U2663 # BLACK CLUB SUIT + <3> : "♣" U2663 # BLACK CLUB SUIT + : "♢" U2662 # WHITE DIAMOND SUIT + <3> : "♠" U2660 # BLACK SPADE SUIT + : "♠" U2660 # BLACK SPADE SUIT + : "♡" U2661 # WHITE HEART SUIT +# "shamrock" is too long; there IS a limit to these! + : "☘" U2618 # SHAMROCK + : "☘" U2618 # SHAMROCK +

: "☮" U262E # PEACE SYMBOL +

: "☮" U262E # PEACE SYMBOL + : "☯" U262F # YIN YANG + : "☯" U262F # YIN YANG +# And now that we are into hearts... + <3> : "❥" U2765 # ROTATED HEAVY BLACK HEART BULLET + <3> : "❣" U2763 # HEAVY HEART EXCLAMATION MARK ORNAMENT + <3> : "❦" U2766 # FLORAL HEART + <3> : "❧" U2767 # ROTATED FLORAL HEART BULLET + <3> : "☙" U2619 # REVERSED ROTATED FLORAL HEART BULLET + : "☎" U260E # BLACK TELEPHONE + : "☕" U2615 # HOT BEVERAGE +# These last two bother me less, though they can still be improved. +# Other possibly useful symbols: +# 2668 HOT SPRINGS (for chat, for running off to shower?) +# I want 2713-2714 and 2717-2718 +# We need a Dingbats prefix, for ❛❜❝❞❢ + : "☐" U2610 # BALLOT BOX +# Better keystrokes anyone? This one breaks the pattern. [c]? [v]? [y]? [/]? + : "☑" U2611 # BALLOT BOX WITH CHECK + : "☑" U2611 # BALLOT BOX WITH CHECK + : "☒" U2612 # BALLOT BOX WITH X +# @ for dingbats? + : "✓" U2713 # CHECK MARK + : "✔" U2714 # HEAVY CHECK MARK + : "✗" U2717 # BALLOT X + : "✘" U2718 # HEAVY BALLOT X + : "❨" U2768 # MEDIUM LEFT PARENTHESIS ORNAMENT + : "❩" U2769 # MEDIUM RIGHT PARENTHESIS ORNAMENT + : "❪" U276A # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT + : "❫" U276B # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT + : "❬" U276C # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT + : "❭" U276D # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT +# U276E&F ❮❯ ? Angle quotation mark ornaments? + : "❰" U2770 # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT + : "❱" U2771 # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT + : "❲" U2772 # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT + : "❳" U2773 # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT + : "❴" U2774 # MEDIUM LEFT CURLY BRACKET ORNAMENT + : "❵" U2775 # MEDIUM RIGHT CURLY BRACKET ORNAMENT +# Will I want for something else? +# Now there is such a thing as text style and emoji style. Use the +# "dingbat prefix" in an unusual way: + : "️" UFE0F # Emoji selector + : "︎" UFE0E # Text selector +# How about dice? + <1> : "⚀" U2680 # DIE FACE-1 + <2> : "⚁" U2681 # DIE FACE-2 + <3> : "⚂" U2682 # DIE FACE-3 + <4> : "⚃" U2683 # DIE FACE-4 + <5> : "⚄" U2684 # DIE FACE-5 + <6> : "⚅" U2685 # DIE FACE-6 +# 267B BLACK UNIVERSAL RECYCLING SYMBOL + + : "🅭" U1F16D # CIRCLED CC + : "🅭" U1F16D # CIRCLED CC + : "🅮" U1F16E # CIRCLED C WITH OVERLAID BACKSLASH + : "🅮" U1F16E # CIRCLED C WITH OVERLAID BACKSLASH + : "🅮" U1F16E # CIRCLED C WITH OVERLAID BACKSLASH + : "🅮" U1F16E # CIRCLED C WITH OVERLAID BACKSLASH + : "🅯" U1F16F # CIRCLED HUMAN FIGURE + : "🄎" U1F10E # CIRCLED ANTICLOCKWISE ARROW +## ugh, this doesn't (usually) match the style of the others. They're practically emoji; ⊜ is a math symbol. + : "⊜" U229C # CIRCLED EQUALS + : "⊜" U229C # CIRCLED EQUALS + : "🄏" U1F10F # CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH + : "🄏" U1F10F # CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH + : "🄏" U1F10F # CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH +## Not actually Creative Commons, but related. Too many options? + : "🄯" U1F12F # COPYLEFT SYMBOL + : "🄯" U1F12F # COPYLEFT SYMBOL + : "🄯" U1F12F # COPYLEFT SYMBOL + : "🄯" U1F12F # COPYLEFT SYMBOL + +## Segmented digits? + <0> : "🯰" U1FBF0 # SEGMENTED DIGIT ZERO + <1> : "🯱" U1FBF1 # SEGMENTED DIGIT ONE + <2> : "🯲" U1FBF2 # SEGMENTED DIGIT TWO + <3> : "🯳" U1FBF3 # SEGMENTED DIGIT THREE + <4> : "🯴" U1FBF4 # SEGMENTED DIGIT FOUR + <5> : "🯵" U1FBF5 # SEGMENTED DIGIT FIVE + <6> : "🯶" U1FBF6 # SEGMENTED DIGIT SIX + <7> : "🯷" U1FBF7 # SEGMENTED DIGIT SEVEN + <8> : "🯸" U1FBF8 # SEGMENTED DIGIT EIGHT + <9> : "🯹" U1FBF9 # SEGMENTED DIGIT NINE + +# Keystrokes okay? + : "⚜" U269C # FLEUR-DE-LIS + : "⚛" U269B # ATOM SYMBOL +

: "☭" U262D # HAMMER AND SICKLE + : "⚠" U26A0 # WARNING SIGN + : "⚠" U26A0 # WARNING SIGN +

: "⚡" U26A1 # HIGH VOLTAGE SIGN +# Shouldn't use just because it's too likely to be a prefix for +# a useful word. + : "☢" U2622 # RADIOACTIVE SIGN + : "☣" U2623 # BIOHAZARD SIGN + : "☣" U2623 # BIOHAZARD SIGN +# Changing this from ⚝ + : "⛤" U26E4 # PENTAGRAM (pentalpha, get it?) +

: "✈" U2708 # AIRPLANE + : "✉" U2709 # ENVELOPE + : "♿" U267F # WHEELCHAIR SYMBOL + : "☤" U2624 # CADEUCEUS +## Don't usually do sequences, but exception made for the +## "eyewitness" compound emoji sequence: + : "👁️‍🗨️" +# Something different for STAFF OF AESCULAPIUS? + <1> : "⚕" U2695 # STAFF OF AESCULAPIUS +# 26B0 COFFIN ? +# One of the SNOWFLAKEs? +# SNOWMAN? COMET? ANCHOR? +# Maybe if we go with having a "word" symbol and spelling out lots and +# lots of whole words, we can have all the planets. +# +# I already have STAR OF DAVID on another map. +# 231A, 231B -- WATCH and HOURGLASS -- one should be &-w-a-i-t +# 23D4 METRICAL LONG OVER TWO SHORTS a.k.a. METRICAL BOOBS +# 0950 DEVANAGARI OM? +# 212E ESTIMATED SYMBOL? +# 2324 UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS a.k.a. NOT AMUSED +# 237E BELL SYMBOL a.k.a. ALIENS LANDING + + : "♀" U2640 # FEMALE SIGN + : "♂" U2642 # MALE SIGN + + : "⚣" U26A3 # DOUBLED MALE SIGN + : "⚢" U26A2 # DOUBLED FEMALE SIGN + : "⚤" U26A4 # INTERLOCKED FEMALE AND MALE SIGN + +# 'trans': short for transgender/transexual +# 'genderq': short for genderqueer. +# Wasn't sure which to call which symbol, and wanted to include both + : "⚥" U26A5 # MALE AND FEMALE SIGN + : "⚧" U26A7 # MALE WITH STROKE AND MALE AND FEMALE SIGN + + + : "☠" U2620 # SKULL AND CROSSBONES + : "☠" U2620 # SKULL AND CROSSBONES + : "☠" U2620 # SKULL AND CROSSBONES + : "⌨" U2328 # KEYBOARD + : "☞" U261E # WHITE RIGHT POINTING INDEX + : "☜" U261C # WHITE LEFT POINTING INDEX + :"★" U2605 # BLACK STAR + <0> :"☆" U2606 # WHITE STAR + :"✪" U272A # CIRCLED WHITE STAR +## Did not have great luck with keystrokes for these. L/ conflicts with ł, +## and <2> : "⯨" U2BE8 # LEFT HALF BLACK STAR + <2> : "⯩" U2BE9 # RIGHT HALF BLACK STAR + <2> : "⯪" U2BEA # STAR WITH LEFT HALF BLACK + <2> : "⯫" U2BEB # STAR WITH RIGHT HALF BLACK + <3> :"⁂" U2042 # ASTERISM + <3> :"⁂" U2042 # ASTERISM + <2> :"⁑" U2051 # TWO ASTERISKS ALIGNED VERTICALLY + <4> :"✢" U2722 # FOUR TEARDROP-SPOKED ASTERISK + <6> :"✡" U2721 # STAR OF DAVID + :"✯" U272F # PINWHEEL STAR + :"✱" U2731 # HEAVY ASTERISK + : "❖" U2756 # BLACK DIAMOND MINUS WHITE X + : "⌘" U2318 # PLACE OF INTEREST SIGN +# Using backslash-minus-slash etc. conflicts with combining accents. + : "⚞" U269E # THREE LINES CONVERGING RIGHT + : "⚟" U269F # THREE LINES CONVERGING LEFT + : "⍾" U237E # BELL SYMBOL (or ALIENS LANDING) -- &-a-l-i-e-n ? +# Other monstery characters... ѪꙚ (alien abductions?) +# ඏൠഋ & others from Kannada et al...? +# Can't use -^- for this; conflicts with -^ for ↑, and getting those arrows +# workable was complicated enough. How about this? + : "⌤" U2324 # UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS; aka ENTER KEY, aka NOT AMUSED. + : "⌛" U231B # HOURGLASS + : "⌛" U231B # HOURGLASS + : "⌚" U231A # WATCH + : "⌚" U231A # WATCH + : " " U2002 # EN SPACE + : " " U2003 # EM SPACE + <3> : " " U2004 # THREE-PER-EM SPACE + <4> : " " U2005 # FOUR-PER-EM SPACE + <6> : " " U2006 # SIX-PER-EM SPACE + : " " U2008 # PUNCTUATION SPACE + : " " U205F # MEDIUM MATHEMATICAL SPACE + : "◌" U25CC # DOTTED CIRCLE + : "⬚" U2B1A # DOTTED SQUARE + : "﴾" UFD3E # ORNATE LEFT PARENTHESIS + : "﴿" UFD3F # ORNATE RIGHT PARENTHESIS + : "ʘ" U0298 # LATIN LETTER BILABIAL CLICK (kiss sound) + : "‣" U2023 # TRIANGULAR BULLET +#SUPERSCRIPTS: +#To avoid namespace clashes, is doubled (will I regret that?) + : "ʰ" U02B0 # SUPERSCRIPT H + : "ⁱ" U2071 # SUPERSCRIPT I + : "ʲ" U02B2 # SUPERSCRIPT J + : "ⁿ" U207F # SUPERSCRIPT N + : "ʳ" U02B3 # SUPERSCRIPT R + : "ʷ" U02B7 # SUPERSCRIPT W + : "ʸ" U02B8 # SUPERSCRIPT Y +# How could I have gone so long without being able to type "10ˣ" for "thanks"? + : "ˣ" U02E3 # SUPERSCRIPT X +# So I can use yᵗ/þᵗ and yᵉ/þᵉ + : "ᵉ" U1D49 # MODIFIER LETTER SMALL E + : "ᵗ" U1D57 # MODIFIER LETTER SMALL T +# Abbreviation for "that": + : "ꝥ" UA765 # LATIN SMALL LETTER THORN WITH STROKE +#Maybe add: ˃˂ Need to be able to talk about ʔˁ... + : "ˀ" U02C0 # MODIFIER LETTER GLOTTAL STOP + : "ˁ" U02C1 # MODIFIER LETTER REVERSED GLOTTAL STOP + : "⁻" U207B # SUPERSCRIPT MINUS + : "⁺" U207A # SUPERSCRIPT PLUS + + : "≈" U2248 # ALMOST EQUAL TO + : "ʃ" U0283 # LATIN SMALL LETTER ESH + : "ʒ" U0292 # LATIN SMALL LETTER EZH + : "ɬ" U026C # LATIN SMALL LETTER L WITH BELT + <3> : "ɮ" U026E # LATIN SMALL LETTER LEZH + : "ȝ" U021D # LATIN SMALL LETTER YOGH + : "Ȝ" U021C # LATIN CAPITAL LETTER YOGH + : "ʔ" U0294 # LATIN LETTER GLOTTAL STOP + : "ʕ" U0295 # LATIN LETTER PHARYNGEAL VOICED FRICATIVE +# Not great keystrokes... + : "ʖ" U0296 # LATIN LETTER INVERTED GLOTTAL STOP + : "ʖ" U0296 # LATIN LETTER INVERTED GLOTTAL STOP + : "ʡ" U02A1 # LATIN LETTER GLOTTAL STOP WITH STROKE + : "ʢ" U02A2 # LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE +# How about ɸ? φ isn’t the IPA glyph. +

: "ɸ" U0278 # LATIN SMALL LETTER PHI + : "ɪ" U026A # LATIN LETTER SMALL CAPITAL I + : "ɪ" U026A # LATIN LETTER SMALL CAPITAL I + : "ʊ" U028A # LATIN SMALL LETTER UPSILON + : "ʊ" U028A # LATIN SMALL LETTER UPSILON + : "ɑ" U0251 # LATIN SMALL LETTER ALPHA + : "ɚ" U025A # LATIN SMALL LETTER SCHWA WITH HOOK + :"ɔ" U0254 # LATIN SMALL LETTER OPEN O + : "ɔ" U0254 # LATIN SMALL LETTER OPEN O + :"Ɔ" U0186 # LATIN CAPITAL LETTER OPEN O + : "Ɔ" U0186 # LATIN CAPITAL LETTER OPEN O + : "ɛ" U025B # LATIN SMALL LETTER OPEN E +# Have to put the at the beginning for these. + : "ɒ" U0252 # LATIN SMALL LETTER TURNED ALPHA + : "ɒ" U0252 # LATIN SMALL LETTER TURNED ALPHA + : "ɜ" U025C # LATIN SMALL LETTER REVERSED OPEN E + : "ɜ" U025C # LATIN SMALL LETTER REVERSED OPEN E + : "ɝ" U025D # LATIN SMALL LETTER REVERSED OPEN E WITH HOOK + : "ɝ" U025D # LATIN SMALL LETTER REVERSED OPEN E WITH HOOK +# It's spelled "gy" in Hungarian... + : "ɟ" U025F # LATIN SMALL LETTER DOTLESS J WITH STROKE +# How are these keystrokes? + : "ˈ" U02C8 # MODIFIER LETTER VERTICAL LINE + : "ˌ" U02CC # MODIFIER LETTER LOW VERTICAL LINE + : "̩" U0329 # COMBINING VERTICAL LINE BELOW +# Harmonize with other combiners. + : "̩" U0329 # COMBINING VERTICAL LINE BELOW + : "ɹ" U0279 # LATIN SMALL LETTER TURNED R: voiced alveolar approximant (American English (at least) R) + : "ɾ" U027E # LATIN SMALL LETTER R WITH FISHHOOK: voiced alveolar flap or tap (American English intervocalic allophone of d, or Spanish r) + : "ʌ" U028C # LATIN SMALL LETTER TURNED V + : "ɯ" U026F # LATIN SMALL LETTER TURNED M +# doubling a letter seems to be mostly used for turning + : "ʍ" U028D # LATIN SMALL LETTER TURNED W + : "ʎ" U028E # LATIN SMALL LETTER TURNED Y + : "ɐ" U0250 # LATIN SMALL LETTER TURNED A + : "ɥ" U0265 # LATIN SMALL LETTER TURNED H +# ı is already available in the "standard" .XCompose + : "ȷ" U0237 # LATIN SMALL LETTER DOTLESS J + : "Ꞌ" UA78B # LATIN CAPITAL LETTER SALTILLO + : "ꞌ" UA78C # LATIN SMALL LETTER SALTILLO +# I'll use capitals for a different double + : "ʬ" U02AC # LATIN LETTER BILABIAL PERCUSSIVE +# Also handy for writing urls: http://ʬw.omniglot.com/ +# Sorry, I miss having this and hate having to use colon instead: + : "ː" U02D0 # MODIFIER LETTER TRIANGULAR COLON +# ɣ? ᴥ? Important enough to add? ᴥ is cool just as a "latin" letter. + : "ɣ" U0263 # LATIN SMALL LETTER GAMMA +# It looks like a ɣ and makes an "o" sorta sound: + : "ɤ" U0264 # LATIN SMALL LETTER RAMS HORN + : "ᴥ" U1D25 # LATIN LETTER AIN +# Sometimes it's a "tail", sometimes a "hook", and sometimes a "retroflex hook" + : "ɖ" U0256 # LATIN SMALL LETTER D WITH TAIL + : "ɭ" U026D # LATIN SMALL LETTER L WITH RETROFLEX HOOK + : "ɳ" U0273 # LATIN SMALL LETTER N WITH RETROFLEX HOOK + : "ʂ" U0282 # LATIN SMALL LETTER S WITH HOOK + : "ʈ" U0288 # LATIN SMALL LETTER T WITH RETROFLEX HOOK + : "ʐ" U0290 # LATIN SMALL LETTER Z WITH RETROFLEX HOOK +# This is used for functions, folders, etc. Yeah, the hook's facing wrong. + : "ƒ" U0192 # LATIN SMALL LETTER F WITH HOOK +# Sigh, might as well do implosives. Which is also sometimes a hook. + : "ɓ" U0253 # LATIN SMALL LETTER B WITH HOOK + : "ɗ" U0257 # LATIN SMALL LETTER D WITH HOOK + : "ɠ" U0260 # LATIN SMALL LETTER G WITH HOOK + : "ɡ" U0261 # LATIN SMALL LETTER SCRIPT G +# The h looks the same... + : "ɦ" U0266 # LATIN SMALL LETTER H WITH HOOK + : "ʛ" U029B # LATIN LETTER SMALL CAPITAL G WITH HOOK + : "№" U2116 # NUMERO SIGN + : "℞" U211E # PRESCRIPTION TAKE +

: "⅌" U214C # PER SIGN + : "℥" U2125 # OUNCE SIGN + : "℈" U2108 # SCRUPLE +# There are all kinds of awesome combining characters in the U+0300 page. +# There are a bunch of other awesome combining characters like U+20E0 + : "๛" U0E5B # THAI CHARACTER KHOMUT (end of chapter) +# +# Music stuff. # is the music mnemonic. + : "♭" U266d # MUSIC FLAT SIGN + : "♮" U266e # MUSIC NATURAL SIGN + : "♮" U266e # MUSIC NATURAL SIGN + : "♯" U266f # MUSIC SHARP SIGN + : "𝄞" U0001d11e # MUSICAL SYMBOL G CLEF + : "𝄢" U0001d122 # MUSICAL SYMBOL F CLEF + : "𝄡" U0001d121 # MUSICAL SYMBOL C CLEF + : "♪" U266a # EIGHTH NOTE + : "♫" U266b # BEAMED EIGHTH NOTES + : "♫" U266b # BEAMED EIGHTH NOTES + : "♩" U2669 # QUARTER NOTE + : "𝅗𝅥" U0001d15e # MUSICAL SYMBOL HALF NOTE + : "𝅝" U0001d15d # MUSICAL SYMBOL WHOLE NOTE + + +# Combining accents, for making things you don't have precomposed chars or keystrokes for: + : "̀" U0300 # COMBINING GRAVE ACCENT + : "́" U0301 # COMBINING ACUTE ACCENT + : "̂" U0302 # COMBINING CIRCUMFLEX ACCENT + : "̃" U0303 # COMBINING TILDE + : "̄" U0304 # COMBINING MACRON + : "̅" U0305 # COMBINING OVERLINE -- ??? + : "̆" U0306 # COMBINING BREVE + : "̇" U0307 # COMBINING DOT ABOVE + : "̈" U0308 # COMBINING DIAERESIS + : "̉" U0309 # COMBINING HOOK ABOVE + : "̊" U030a # COMBINING RING ABOVE +# That now conflicts with the new 🙌 in the system xcompose. Alternative: + <0> : "̊" U030a # COMBINING RING ABOVE + : "̋" U030b # COMBINING DOUBLE ACUTE ACCENT -- ?? + : "̌" U030c # COMBINING CARON + : "̍" U030d # COMBINING VERTICAL LINE ABOVE + <2> : "̎" U030e # COMBINING DOUBLE VERTICAL LINE ABOVE + <2> : "̏" U030f # COMBINING DOUBLE GRAVE ACCENT +# For writing PSILI and DASIA in Greek +# Ugh, better key-coding? I may need @ for BELOW. + : "̒" U0312 # COMBINING TURNED COMMA ABOVE + : "̓" U0313 # COMBINING COMMA ABOVE + : "̔" U0314 # COMBINING REVERSED COMMA ABOVE + : "͒" U0352 # COMBINING FERMATA + : "̐" U0310 # COMBINING CHANDRABINDU + : "̑" U0311 # COMBINING INVERTED BREVE -- ?? + : "⃝" U20DD # COMBINING ENCLOSING CIRCLE + : "⃞" U20DE # COMBINING ENCLOSING SQUARE + : "⃟" U20DF # COMBINING ENCLOSING DIAMOND + : "⃠" U20E0 # COMBINING ENCLOSING CIRCLE BACKSLASH + : "⃢" U20E2 # COMBINING ENCLOSING SCREEN + : "⃣" U20E3 # COMBINING ENCLOSING KEYCAP + : "⃤" U20E4 # COMBINING ENCLOSING TRIANGLE + <2> : "⃫" U20EB # COMBINING LONG DOUBLE SOLIDUS OVERLAY + : "⃰" U20F0 # COMBINING ASTERISK ABOVE + : "̣" U0323 # COMBINING DOT BELOW +# With only one underscore it conflicts with stuff. + : "̱" U0331 # COMBINING MACRON BELOW + : "̲" U0332 # COMBINING LOW LINE + : "̳" U0333 # COMBINING DOUBLE LOW LINE + +# The @ sign will signify reversal to the bottom of the glyph, 'kay? + + : "̥" U0325 # COMBINING RING BELOW + + : "̬" U032c # COMBINING CARON BELOW + : "̭" U032d # COMBINING CIRCUMFLEX ACCENT BELOW + : "̮" U032e # COMBINING BREVE BELOW + : "̯" U032f # COMBINING INVERTED BREVE BELOW -- ?? + +# How about leading & (or &&?) for double combiners? There aren't many anyway. +# Except that I found myself assuming it was "2" for double. + : "͜" U035C # COMBINING DOUBLE BREVE BELOW + <2> : "͜" U035C # COMBINING DOUBLE BREVE BELOW + : "͝" U035D # COMBINING DOUBLE BREVE + <2> : "͝" U035D # COMBINING DOUBLE BREVE + : "͞" U035E # COMBINING DOUBLE MACRON + <2> : "͞" U035E # COMBINING DOUBLE MACRON + : "͟" U035F # COMBINING DOUBLE MACRON BELOW + <2> : "͟" U035F # COMBINING DOUBLE MACRON BELOW + : "͟" U035F # COMBINING DOUBLE MACRON BELOW + <2> : "͟" U035F # COMBINING DOUBLE MACRON BELOW + : "͠" U0360 # COMBINING DOUBLE TILDE + <2> : "͠" U0360 # COMBINING DOUBLE TILDE + : "͡" U0361 # COMBINING DOUBLE INVERTED BREVE + <2> : "͡" U0361 # COMBINING DOUBLE INVERTED BREVE + : "᷼" U1DFC # COMBINING DOUBLE INVERTED BREVE BELOW + <2> : "᷼" U1DFC # COMBINING DOUBLE INVERTED BREVE BELOW +# Might as well finish up the set. + : "͢" U0362 # COMBINING DOUBLE RIGHTWARDS ARROW BELOW + <2> : "͢" U0362 # COMBINING DOUBLE RIGHTWARDS ARROW BELOW + + : "͒" U0352 # COMBINING FERMATA + + : "҉" U0489 # COMBINING CYRILLIC MILLIONS SIGN -- aka COMBINING SHINY +

: "₽" U20BD # RUBLE SIGN +

: "₽" U20BD # RUBLE SIGN + +# How about for a little extra control: +

: "​" U200B # ZERO WIDTH SPACE + : "‌" U200C # ZERO WIDTH NON-JOINER + : "‍" U200D # ZERO WIDTH JOINER + : "‎" U200E # LEFT-TO-RIGHT MARK + : "‏" U200F # RIGHT-TO-LEFT MARK +# I never understood the whole embedding/pop thing, but we might as well add 'em + : "‪" U202A # LEFT-TO-RIGHT EMBEDDING + : "‫" U202B # RIGHT-TO-LEFT EMBEDDING +

: "‬" U202C # POP DIRECTIONAL FORMATTING + : "⁦" U2066 # LEFT-TO-RIGHT ISOLATE + : "⁧" U2067 # RIGHT-TO-LEFT ISOLATE + : "⁨" U2068 # FIRST STRONG ISOLATE +

: "⁩" U2069 # POP DIRECTIONAL ISOLATE + : "‭" U202D # LEFT-TO-RIGHT OVERRIDE + : "‮" U202E # RIGHT-TO-LEFT OVERRIDE + : "" UFEFF # ZERO WIDTH NO-BREAK SPACE (Byte Order Mark) + : "͏" U034F # COMBINING GRAPHEME JOINER + : "⁠" U2060 # WORD JOINER +# These are sufficiently special and well-known that they don't need the +# double prefix I think. The all-caps helps too. + +# How about some small-caps? We normally use a special character as a prefix, +# but why not a suffix? It won't interfere with things that way. +# Several of these are also IPA, which is handy. And so a few have multiple +# entries. Whatever. + + : "ᴀ" U1D00 # LATIN LETTER SMALL CAPITAL A + : "ʙ" U0299 # LATIN LETTER SMALL CAPITAL B + : "ᴄ" U1D04 # LATIN LETTER SMALL CAPITAL C + : "ᴅ" U1D05 # LATIN LETTER SMALL CAPITAL D + : "ᴇ" U1D07 # LATIN LETTER SMALL CAPITAL E + : "ꜰ" UA730 # LATIN LETTER SMALL CAPITAL F + : "ɢ" U0262 # LATIN LETTER SMALL CAPITAL G + : "ʜ" U029C # LATIN LETTER SMALL CAPITAL H + : "ɪ" U026A # LATIN LETTER SMALL CAPITAL I + : "ᴊ" U1D0A # LATIN LETTER SMALL CAPITAL J + : "ᴋ" U1D0B # LATIN LETTER SMALL CAPITAL K + : "ʟ" U029F # LATIN LETTER SMALL CAPITAL L + : "ᴍ" U1D0D # LATIN LETTER SMALL CAPITAL M + : "ɴ" U0274 # LATIN LETTER SMALL CAPITAL N + : "ᴏ" U1D0F # LATIN LETTER SMALL CAPITAL O +

: "ᴘ" U1D18 # LATIN LETTER SMALL CAPITAL P + : "ꞯ" UA7AF # LATIN LETTER SMALL CAPITAL Q + : "ʀ" U0280 # LATIN LETTER SMALL CAPITAL R + : "ꜱ" UA731 # LATIN LETTER SMALL CAPITAL S + : "ᴛ" U1D1B # LATIN LETTER SMALL CAPITAL T + : "ᴜ" U1D1C # LATIN LETTER SMALL CAPITAL U + : "ᴠ" U1D20 # LATIN LETTER SMALL CAPITAL V + : "ᴡ" U1D21 # LATIN LETTER SMALL CAPITAL W +# There is no SMALL CAPITAL X (yet) + : "ʏ" U028F # LATIN LETTER SMALL CAPITAL Y + : "ᴢ" U1D22 # LATIN LETTER SMALL CAPITAL Z + + +# See also http://bleah.co.uk/~simon/stuff/XCompose +# and http://dotfiles.org/~inky/.XCompose +# and http://paste.lisp.org/display/73094 + + : "☉" U2609 # SUN (Sunday) + : "☽" U263D # FIRST QUARTER MOON (Monday) + : "☿" U263F # MERCURY (Wednesday) +# We already have Venus (Friday) and Mars (Tuesday) as Male/Female signs; do we need them here too? +# : "♀" U2640 # FEMALE SIGN +# : "♂" U2642 # MALE SIGN +

: "♃" U2643 # JUPITER (Thursday) + : "♄" U2644 # SATURN (Saturday) + : "♅" U2645 # URANUS (or ⛢ U26E2?) +

: "♆" U2646 # NEPTUNE +

: "♇" U2647 # PLUTO (ok, it isn't a planet anymore, but we still love it.) +# Minor planets, whilst we're at it? + : "⚳" U26B3 # CERES +

: "⚴" U26B4 # PALLAS + : "⚵" U26B5 # JUNO + : "⚶" U26B6 # VESTA + : "⚷" U26B7 # CHIRON + : "⚸" U26B8 # BLACK MOON LILITH + : "⚿" U26BF # SQUARED KEY + +# Unicode 6.0 gave us all kinds of things, perhaps more than we can use... + +# Playing Cards? It's a lot, but so what? I don't think the [] convention +# will conflict with anything. +# The convention is more or less established, except for the Knight. I'm +# using N for that, like in Chess, since K would conflict with King of course. + + : "🂡" U1F0A1 # PLAYING CARD ACE OF SPADES + <2> : "🂢" U1F0A2 # PLAYING CARD TWO OF SPADES + <3> : "🂣" U1F0A3 # PLAYING CARD THREE OF SPADES + <4> : "🂤" U1F0A4 # PLAYING CARD FOUR OF SPADES + <5> : "🂥" U1F0A5 # PLAYING CARD FIVE OF SPADES + <6> : "🂦" U1F0A6 # PLAYING CARD SIX OF SPADES + <7> : "🂧" U1F0A7 # PLAYING CARD SEVEN OF SPADES + <8> : "🂨" U1F0A8 # PLAYING CARD EIGHT OF SPADES + <9> : "🂩" U1F0A9 # PLAYING CARD NINE OF SPADES + : "🂪" U1F0AA # PLAYING CARD TEN OF SPADES + : "🂫" U1F0AB # PLAYING CARD JACK OF SPADES + : "🂬" U1F0AC # PLAYING CARD KNIGHT OF SPADES + : "🂭" U1F0AD # PLAYING CARD QUEEN OF SPADES + : "🂮" U1F0AE # PLAYING CARD KING OF SPADES + + : "🂱" U1F0B1 # PLAYING CARD ACE OF HEARTS + <2> : "🂲" U1F0B2 # PLAYING CARD TWO OF HEARTS + <3> : "🂳" U1F0B3 # PLAYING CARD THREE OF HEARTS + <4> : "🂴" U1F0B4 # PLAYING CARD FOUR OF HEARTS + <5> : "🂵" U1F0B5 # PLAYING CARD FIVE OF HEARTS + <6> : "🂶" U1F0B6 # PLAYING CARD SIX OF HEARTS + <7> : "🂷" U1F0B7 # PLAYING CARD SEVEN OF HEARTS + <8> : "🂸" U1F0B8 # PLAYING CARD EIGHT OF HEARTS + <9> : "🂹" U1F0B9 # PLAYING CARD NINE OF HEARTS + : "🂺" U1F0BA # PLAYING CARD TEN OF HEARTS + : "🂻" U1F0BB # PLAYING CARD JACK OF HEARTS + : "🂼" U1F0BC # PLAYING CARD KNIGHT OF HEARTS + : "🂽" U1F0BD # PLAYING CARD QUEEN OF HEARTS + : "🂾" U1F0BE # PLAYING CARD KING OF HEARTS + + : "🃁" U1F0C1 # PLAYING CARD ACE OF DIAMONDS + <2> : "🃂" U1F0C2 # PLAYING CARD TWO OF DIAMONDS + <3> : "🃃" U1F0C3 # PLAYING CARD THREE OF DIAMONDS + <4> : "🃄" U1F0C4 # PLAYING CARD FOUR OF DIAMONDS + <5> : "🃅" U1F0C5 # PLAYING CARD FIVE OF DIAMONDS + <6> : "🃆" U1F0C6 # PLAYING CARD SIX OF DIAMONDS + <7> : "🃇" U1F0C7 # PLAYING CARD SEVEN OF DIAMONDS + <8> : "🃈" U1F0C8 # PLAYING CARD EIGHT OF DIAMONDS + <9> : "🃉" U1F0C9 # PLAYING CARD NINE OF DIAMONDS + : "🃊" U1F0CA # PLAYING CARD TEN OF DIAMONDS + : "🃋" U1F0CB # PLAYING CARD JACK OF DIAMONDS + : "🃌" U1F0CC # PLAYING CARD KNIGHT OF DIAMONDS + : "🃍" U1F0CD # PLAYING CARD QUEEN OF DIAMONDS + : "🃎" U1F0CE # PLAYING CARD KING OF DIAMONDS + + : "🃑" U1F0D1 # PLAYING CARD ACE OF CLUBS + <2> : "🃒" U1F0D2 # PLAYING CARD TWO OF CLUBS + <3> : "🃓" U1F0D3 # PLAYING CARD THREE OF CLUBS + <4> : "🃔" U1F0D4 # PLAYING CARD FOUR OF CLUBS + <5> : "🃕" U1F0D5 # PLAYING CARD FIVE OF CLUBS + <6> : "🃖" U1F0D6 # PLAYING CARD SIX OF CLUBS + <7> : "🃗" U1F0D7 # PLAYING CARD SEVEN OF CLUBS + <8> : "🃘" U1F0D8 # PLAYING CARD EIGHT OF CLUBS + <9> : "🃙" U1F0D9 # PLAYING CARD NINE OF CLUBS + : "🃚" U1F0DA # PLAYING CARD TEN OF CLUBS + : "🃛" U1F0DB # PLAYING CARD JACK OF CLUBS + : "🃜" U1F0DC # PLAYING CARD KNIGHT OF CLUBS + : "🃝" U1F0DD # PLAYING CARD QUEEN OF CLUBS + : "🃞" U1F0DE # PLAYING CARD KING OF CLUBS + + : "🂠" U1F0A0 # PLAYING CARD BACK + : "🃏" U1F0CF # PLAYING CARD BLACK JOKER + : "🃟" U1F0DF # PLAYING CARD WHITE JOKER + +# Do we want domino bones also? I'm thinking [ 1 1 ], etc, maybe use +# ] 1 1 [ for vertical (or vice-versa) + +# And chess/checkers pieces! We need a convention for those. # looks like a +# checkerboard but we're already using that for music. Half of it? +# will be an issue when we want double-struck W or B... we'll have +# to consider it. Maybe replace with + : "♔" U2654 # WHITE CHESS KING + : "♕" U2655 # WHITE CHESS QUEEN + : "♖" U2656 # WHITE CHESS ROOK + : "♗" U2657 # WHITE CHESS BISHOP + : "♘" U2658 # WHITE CHESS KNIGHT +

: "♙" U2659 # WHITE CHESS PAWN + : "♚" U265A # BLACK CHESS KING + : "♛" U265B # BLACK CHESS QUEEN + : "♜" U265C # BLACK CHESS ROOK + : "♝" U265D # BLACK CHESS BISHOP + : "♞" U265E # BLACK CHESS KNIGHT +

: "♟" U265F # BLACK CHESS PAWN + : "⛀" U26C0 # WHITE DRAUGHTS MAN + : "⛁" U26C1 # WHITE DRAUGHTS KING + : "⛂" U26C2 # BLACK DRAUGHTS MAN + : "⛃" U26C3 # BLACK DRAUGHTS KING +# Since we're doing game pieces, might as well. + : "☖" U2616 # WHITE SHOGI PIECE + : "☗" U2617 # BLACK SHOGI PIECE +# It's turned vertically and not horizontally reflected, but we use the < +# symbol for turning... + : "⛉" U26C9 # TURNED WHITE SHOGI PIECE + : "⛊" U26CA # TURNED BLACK SHOGI PIECE + +# As for the emoji... We can't possibly get all of them, even just all of the +# cool/useful ones. Maybe we can pick and choose some high-fliers. + + : "°" U00B0 # DEGREE SIGN + : "℃" U2103 # DEGREE CELSIUS + : "℃" U2103 # DEGREE CELSIUS + : "℉" U2109 # DEGREE FAHRENHEIT + : "℉" U2109 # DEGREE FAHRENHEIT + +# Zodiacal symbols? + : "♈" U2648 # ARIES + : "♉" U2649 # TAURUS + : "♊" U264A # GEMINI + : "♋" U264B # CANCER + : "♌" U264C # LEO + : "♍" U264D # VIRGO + : "♎" U264E # LIBRA +# Abbreviating some of the longer ones. +

: "♏" U264F # SCORPIUS + : "♐" U2650 # SAGITTARIUS +

: "♑" U2651 # CAPRICORN + : "♒" U2652 # AQUARIUS +

: "♓" U2653 # PISCES +# Really, this should be SERPENTARIUS. All the other signs are in Latin. +

: "⛎" U26CE # OPHIUCHUS + +# Sigh. So many emoji... I think the first ones I'd go for would be +# 💡💢💣💤💥💦💧💨💫 (1F4A1-1F4A8 and 1F4AB). Maybe 1F550-1F567 are useful. + : "💡" U1F4A1 # ELECTRIC LIGHT BULB + : "💢" U1F4A2 # ANGER SYMBOL + : "💣" U1F4A3 # BOMB + : "💤" U1F4A4 # SLEEPING SYMBOL +

: "💥" U1F4A5 # COLLISION SYMBOL + : "💦" U1F4A6 # SPLASHING SWEAT SYMBOL +

: "💧" U1F4A7 # DROPLET +

: "💨" U1F4A8 # DASH SYMBOL +

: "💩" U1F4A9 # PILE OF POO +# Skipping U+1F4AA just now. + : "💫" U1F4AB # DIZZY SYMBOL + : "💰" U1F4B0 # MONEY BAG + : "🍰" U1F370 # SHORTCAKE +# The cake is a lie... OK, too cutesy? + : "🎂" U1F382 # BIRTHDAY CAKE + : "🎂" U1F382 # BIRTHDAY CAKE + : "👌" U1F44C # OK HAND SIGN +

: "👍" U1F44D # THUMBS UP SIGN + : "👎" U1F44E # THUMBS DOWN SIGN +# More useful in chat than U+1F48F KISS + : "💋" U1F48B # KISS MARK + : "⛔" U26D4 # NO ENTRY +# So many hearts... I'm not touching them for now. +# And emoticons? (U+1F600 et seq) -- Moved to their own file. + + <1> <0> <0> : "🕐" U1F550 # CLOCK FACE ONE OCLOCK + <2> <0> <0> : "🕑" U1F551 # CLOCK FACE TWO OCLOCK + <3> <0> <0> : "🕒" U1F552 # CLOCK FACE THREE OCLOCK + <4> <0> <0> : "🕓" U1F553 # CLOCK FACE FOUR OCLOCK + <5> <0> <0> : "🕔" U1F554 # CLOCK FACE FIVE OCLOCK + <6> <0> <0> : "🕕" U1F555 # CLOCK FACE SIX OCLOCK + <7> <0> <0> : "🕖" U1F556 # CLOCK FACE SEVEN OCLOCK + <8> <0> <0> : "🕗" U1F557 # CLOCK FACE EIGHT OCLOCK + <9> <0> <0> : "🕘" U1F558 # CLOCK FACE NINE OCLOCK + <1> <0> <0> <0> : "🕙" U1F559 # CLOCK FACE TEN OCLOCK + <1> <1> <0> <0> : "🕚" U1F55A # CLOCK FACE ELEVEN OCLOCK + <1> <2> <0> <0> : "🕛" U1F55B # CLOCK FACE TWELVE OCLOCK + + <1> <3> <0> : "🕜" U1F55C # CLOCK FACE ONE-THIRTY + <2> <3> <0> : "🕝" U1F55D # CLOCK FACE TWO-THIRTY + <3> <3> <0> : "🕞" U1F55E # CLOCK FACE THREE-THIRTY + <4> <3> <0> : "🕟" U1F55F # CLOCK FACE FOUR-THIRTY + <5> <3> <0> : "🕠" U1F560 # CLOCK FACE FIVE-THIRTY + <6> <3> <0> : "🕡" U1F561 # CLOCK FACE SIX-THIRTY + <7> <3> <0> : "🕢" U1F562 # CLOCK FACE SEVEN-THIRTY + <8> <3> <0> : "🕣" U1F563 # CLOCK FACE EIGHT-THIRTY + <9> <3> <0> : "🕤" U1F564 # CLOCK FACE NINE-THIRTY + <1> <0> <3> <0> : "🕥" U1F565 # CLOCK FACE TEN-THIRTY + <1> <1> <3> <0> : "🕦" U1F566 # CLOCK FACE ELEVEN-THIRTY + <1> <2> <3> <0> : "🕧" U1F567 # CLOCK FACE TWELVE-THIRTY +# Real bitcoin symbol now. + : "₿" U20BF # BITCOIN SIGN diff --git a/mappings/xcompose.yaml b/mappings/xcompose.yaml new file mode 100644 index 0000000..a2e73d3 --- /dev/null +++ b/mappings/xcompose.yaml @@ -0,0 +1,1001 @@ +"..": "…" # HORIZONTAL ELLIPSIS +"v..": "⋮" # VERTICAL ELLIPSIS +"c..": "⋯" # MIDLINE HORIZONTAL ELLIPSIS +"/..": "⋰" # UP RIGHT DIAGONAL ELLIPSIS +".\\.": "⋱" # DOWN RIGHT DIAGONAL ELLIPSIS +"2.": "‥" # TWO DOT LEADER +"c1.": "·" # MIDDLE DOT (maybe I can remember the keystroke better? +"./.": "⁒" # COMMERCIAL MINUS SIGN +"&@": "⅋" # TURNED AMPERSAND +"&7": "⁊" # TIRONIAN SIGN ET +"\\ ": "␣" # OPEN BOX +"-- ": "– " # EN DASH (followed by space) +"-~-": "―" # HORIZONTAL BAR +"-2M": "⸺" # TWO-EM DASH +"-3M": "⸻" # THREE-EM DASH +"\\-": "­" # SOFT HYPHEN +" -": " — " # EM DASH surrounded by THIN SPACEs. +", ": "‚" # SINGLE LOW-9 QUOTATION MARK +",,": "„" # DOUBLE LOW-9 QUOTATION MARK +"<,,": "⹂" # DOUBLE LOW-REVERSED-9 QUOTATION MARK +"' ": "’" # RIGHT SINGLE QUOTATION MARK +"''": "”" # RIGHT DOUBLE QUOTATION MARK +"` ": "‘" # LEFT SINGLE QUOTATION MARK +"``": "“" # LEFT DOUBLE QUOTATION MARK +"6'": "‘" # LEFT SINGLE QUOTATION MARK (high 6) +"6\"": "“" # LEFT DOUBLE QUOTATION MARK (66) +"9'": "’" # RIGHT SINGLE QUOTATION MARK (high 9) +"9\"": "”" # RIGHT DOUBLE QUOTATION MARK (99) +"<9'": "‛" # SINGLE HIGH-REVERSED-9 QUOTATION MARK +"<9\"": "‟" # DOUBLE HIGH-REVERSED-9 QUOTATION MARK +",'": "‚" # SINGLE LOW-9 QUOTATION MARK (quote resembling a comma) +",\"": "„" # DOUBLE LOW-9 QUOTATION MARK +" \"": " “" # space followed by LEFT DOUBLE QUOTATION MARK +"\" ": "” " # RIGHT DOUBLE QUOTATION MARK followed by space +" '": " ‘" # space followed by LEFT SINGLE QUOTATION MARK +"nt": "n’t " # Apostrophized English “not.” +" t": " the " +" T": " The " +" a": " and " +"im": " I’m " +"ve": "’ve " +",@": "⸲" # TURNED COMMA +".^": "⸳" # RAISED DOT +".~": "⸳" # RAISED DOT +",^": "⸴" # RAISED COMMA +";@": "⸵" # TURNED SEMICOLON +"~|": "ⸯ" # VERTICAL TILDE +"^|": "ⸯ" # VERTICAL TILDE +"-=": "⹀" # DOUBLE HYPHEN +",<": "⹁" # REVERSED COMMA +"<|": "↵" # DOWNWARDS ARROW WITH CORNER LEFTWARDS +"*1": "•" # BULLET +"o_": "⁃" # HYPHEN BULLET +"o,": "·" # MIDDLE DOT +" n": " " # NARROW NO-BREAK SPACE +" #": " " # FIGURE SPACE +"\\,": " " # THIN SPACE +" |": " " # HAIR SPACE +"dag": "†" # DAGGER +"ddag": "‡" # DOUBLE DAGGER +"sec": "§" # SECTION SIGN +"\"\"": "〃" # DITTO MARK +"7^[": "⸢" # TOP LEFT HALF BRACKET +"7^]": "⸣" # TOP RIGHT HALF BRACKET +"L_[": "⸤" # BOTTOM LEFT HALF BRACKET +"L_]": "⸥" # BOTTOM RIGHT HALF BRACKET +"-<": "←" # LEFTWARDS ARROW +"-^": "↑" # UPWARDS ARROW +"->": "→" # RIGHTWARDS ARROW +"-v": "↓" # DOWNWARDS ARROW +"<->": "↔" # LEFT RIGHT ARROW (kragen's) +"zz>": "↯" # DOWNWARDS ZIGZAG ARROW +"fv": "✌" # VICTORY HAND +"fw": "✍" # WRITING HAND +"=>": "⇒" # RIGHTWARDS DOUBLE ARROW +"=<": "⇐" # LEFTWARDS DOUBLE ARROW +"<-=>": "⇔" # LEFT RIGHT DOUBLE ARROW +"=.=": "⸎" # EDITORIAL CORONIS +"palm": "⸙" # PALM BRANCH +"branch": "⸙" # PALM BRANCH +"ff": "ff" # LATIN SMALL LIGATURE FF +"fi": "fi" # LATIN SMALL LIGATURE FI +"Fi": "ffi" # LATIN SMALL LIGATURE FFI +"fl": "fl" # LATIN SMALL LIGATURE FL +"Fl": "ffl" # LATIN SMALL LIGATURE FFL +"st": "st" # LATIN SMALL LIGATURE ST +"ft": "ſt" # LATIN SMALL LIGATURE LONG S T +"ſt": "ſt" # LATIN SMALL LIGATURE LONG S T +"SS": "ẞ" # LATIN CAPITAL LETTER SHARP S +"F<": "ꟻ" # LATIN EPIGRAPHIC LETTER REVERSED F +"P<": "ꟼ" # LATIN EPIGRAPHIC LETTER REVERSED P +"FF": "Ⅎ" # TURNED CAPITAL F +"Ff": "ⅎ" # TURNED SMALL F +"MW": "ꟽ" # LATIN EPIGRAPHIC LETTER INVERTED M +"MM": "Ɯ" # LATIN CAPITAL LETTER TURNED M +"I|": "ꟾ" # LATIN EPIGRAPHIC LETTER I LONGA +"M/": "ꟿ" # LATIN EPIGRAPHIC LETTER ARCHAIC M +"22": "↊" # TURNED DIGIT TWO +"33": "↋" # TURNED DIGIT THREE +"E<": "Ǝ" # LATIN CAPITAL LETTER REVERSED E +"e<": "ɘ" # LATIN SMALL LETTER REVERSED E +"A<": "Ɐ" # LATIN CAPITAL LETTER TURNED A +"o&o": "ꝏ" # LATIN SMALL LETTER OO +"O&O": "Ꝏ" # LATIN CAPITAL LETTER OO +"2o": "ꝏ" # LATIN SMALL LETTER OO +"2O": "Ꝏ" # LATIN CAPITAL LETTER OO +"A&A": "Ꜳ" # LATIN CAPITAL LETTER AA +"a&a": "ꜳ" # LATIN SMALL LETTER AA +"2A": "Ꜳ" # LATIN CAPITAL LETTER AA +"2a": "ꜳ" # LATIN SMALL LETTER AA +"A&O": "Ꜵ" # LATIN CAPITAL LETTER AO +"a&o": "ꜵ" # LATIN SMALL LETTER AO +"A&U": "Ꜷ" # LATIN CAPITAL LETTER AU +"a&u": "ꜷ" # LATIN SMALL LETTER AU +"A&V": "Ꜹ" # LATIN CAPITAL LETTER AV +"a&v": "ꜹ" # LATIN SMALL LETTER AV +"A&Y": "Ꜽ" # LATIN CAPITAL LETTER AY +"a&y": "ꜽ" # LATIN SMALL LETTER AY +"/&L": "Ꝇ" # LATIN CAPITAL LETTER BROKEN L +"/&l": "ꝇ" # LATIN SMALL LETTER BROKEN L +"Z.": "Ꝫ" # LATIN CAPITAL LETTER ET +"z.": "ꝫ" # LATIN SMALL LETTER ET +"V&Y": "Ꝡ" # LATIN CAPITAL LETTER VY +"v&y": "ꝡ" # LATIN SMALL LETTER VY +"CZ": "Ꝣ" # LATIN CAPITAL LETTER VISIGOTHIC Z +"cz": "ꝣ" # LATIN SMALL LETTER VISIGOTHIC Z +"L&L": "Ỻ" # LATIN CAPITAL LETTER MIDDLE-WELSH LL +"l&l": "ỻ" # LATIN SMALL LETTER MIDDLE-WELSH LL +"V&V": "Ỽ" # LATIN CAPITAL LETTER MIDDLE-WELSH V +"v&v": "ỽ" # LATIN SMALL LETTER MIDDLE-WELSH V +"d&b": "ȸ" # LATIN SMALL LETTER DB DIGRAPH +"q&p": "ȹ" # LATIN SMALL LETTER QP DIGRAPH +"wy": "ƿ" # LATIN LETTER WYNN +"WY": "Ƿ" # LATIN CAPITAL LETTER WYNN +"OU": "Ȣ" # LATIN CAPITAL LETTER OU +"ou": "ȣ" # LATIN SMALL LETTER OU +"yr": "Ʀ" # LATIN LETTER YR +"ro": "ꝛ" # LATIN SMALL LETTER R ROTUNDA +"r0": "ꝛ" # LATIN SMALL LETTER R ROTUNDA +"RO": "Ꝛ" # LATIN CAPITAL LETTER R ROTUNDA +"R0": "Ꝛ" # LATIN CAPITAL LETTER R ROTUNDA +"!=": "≠" # NOT EQUAL TO +"/=": "≠" # NOT EQUAL TO +"<=": "≤" # LESS-THAN OR EQUAL TO +">=": "≥" # GREATER-THAN OR EQUAL TO +"!<>": "≸" # NEITHER LESS-THAN NOR GREATER-THAN +"+<": "≪" # MUCH LESS-THAN +"+>": "≫" # MUCH GREATER-THAN +"++<": "⋘" # VERY MUCH LESS-THAN +"++>": "⋙" # VERY MUCH GREATER-THAN +"3>": "⋙" # VERY MUCH GREATER-THAN +"3<": "⋘" # VERY MUCH LESS-THAN +"in": "∈" # ELEMENT OF +"!in": "∉" # NOT AN ELEMENT OF +"∈/": "∉" # NOT AN ELEMENT OF (I have ∈ on my keyboard...) +".∈": "∊" # SMALL ELEMENT OF +".∋": "∍" # SMALL CONTAINS AS MEMBER +"ni": "∋" # CONTAINS AS MEMBER (I hope this doesn't conflict) +"/ni": "∌" # DOES NOT CONTAIN AS MEMBER +"∋/": "∌" # DOES NOT CONTAIN AS MEMBER +"~=": "≅" # APPROXIMATELY EQUAL TO (It actually means "congruent"!) +"=?": "≟" # QUESTIONED EQUAL TO +"=def": "≝" # EQUAL TO BY DEFINITION +"def=": "≝" # EQUAL TO BY DEFINITION +"==": "≡" # IDENTICAL TO +":=": "≔" # COLON EQUALS +"=:": "≕" # EQUALS COLON +"2=": "⩵" # TWO CONSECUTIVE EQUALS SIGNS +"=&=": "⩵" # TWO CONSECUTIVE EQUALS SIGNS +"3=": "⩶" # THREE CONSECUTIVE EQUALS SIGNS +"=|=": "≢" # NOT IDENTICAL TO +"-+": "∓" # MINUS OR PLUS SIGN +"sq": "√" # SQUARE ROOT +"3sq": "∛" # CUBE ROOT +"4sq": "∜" # FOURTH ROOT +"/\\": "∧" # LOGICAL AND +"\\/": "∨" # LOGICAL OR +"\\_/": "⊻" # XOR +"-,": "¬" # NOT SIGN +"*o": "∘" # RING OPERATOR (function composition) +"*x": "⨯" # CROSS PRODUCT +"*.": "⋅" # DOT OPERATOR (dot product) +"0/": "∅" # EMPTY SET (thanks jsled!) +"/0": "∅" # EMPTY SET +"{U": "∪" # UNION +"{^": "∩" # INTERSECTION +"{(": "⊂" # SUBSET OF +"{=(": "⊆" # SUBSET OF OR EQUAL TO +"!{(": "⊄" # NOT A SUBSET OF +"/{(": "⊄" # NOT A SUBSET OF +"!{)": "⊅" # NOT A SUPERSET OF +"/{)": "⊅" # NOT A SUPERSET OF +"{)": "⊃" # SUPERSET OF +"{=)": "⊇" # SUPERSET OF OR EQUAL TO +"EE": "∃" # THERE EXISTS +"/EE": "∄" # THERE DOES NOT EXIST +"AA": "∀" # FOR ALL +"QED": "∎" # END OF PROOF +"88": "∞" # INFINITY +"aleph": "ℵ" # ALEF SYMBOL +"alep0": "ℵ₀" # ALEF Null +"alep1": "ℵ₁" # ALEF One +"alef": "ℵ" # ALEF SYMBOL +"**": "∗" # ASTERISK OPERATOR +"(+)": "⊕" # CIRCLED PLUS +"(-)": "⊖" # CIRCLED MINUS +"(xx)": "⊗" # CIRCLED TIMES +"(/)": "⊘" # CIRCLED DIVISION SLASH +"(*)": "⊛" # CIRCLED ASTERISK OPERATOR +")_": "⟌" # LONG DIVISION +".\"": "∴" # THEREFORE +"there4": "∴" # THEREFORE +"\".": "∵" # BECAUSE +"because": "∵" # BECAUSE +"%%": "‱" # PER TEN THOUSAND (basis points) +"/u": "µ" # MICRO SIGN +"-a": "ª" # FEMININE ORDINAL INDICATOR +"-o": "º" # MASCULINE ORDINAL INDICATOR +"sum": "∑" # N-ARY SUMMATION +"int": "∫" # INTEGRAL +"uint": "⨛" # UPPER INTEGRAL +"lint": "⨜" # LOWER INTEGRAL +"iint": "∬" # DOUBLE INTEGRAL +"iiint": "∭" # TRIPLE INTEGRAL +"iiiint": "⨌" # QUADRUPLE INTEGRAL +"oint": "∮" # CONTOUR INTEGRAL +"pint": "⨕" # INTEGRAL AROUND A POINT OPERATOR +"cPint": "⨓" # LINE INTEGRATION WITH SEMICIRCULAR PATH AROUND POLE +"oiint": "∯" # SURFACE INTEGRAL +"oiiint": "∰" # VOLUME INTEGRAL +"gint": "⨘" # GEOMETRIC INTEGRAL +"sint": "⨋" # SUM/INTEGRAL +"del": "∇" # NABLA +"part": "∂" # PARTIAL DIFFERENTIAL +"*..d": "∂" # PARTIAL DIFFERENTIAL +"Re": "ℜ" # BLACK-LETTER CAPITAL R (Real Part) +"Im": "ℑ" # BLACK-LETTER CAPTIAL I (Imaginary Part) +"hbar": "ℏ" # PLANCK CONSTANT OVER TWO PI +"h-": "ℏ" # PLANCK CONSTANT OVER TWO PI +"hp": "ℎ" # PLANCK CONSTANT +"exp": "ℯ" # SCRIPT SMALL E +"e10": "⏨" # DECIMAL EXPONENT SYMBOL +"wp": "℘" # SCRIPT CAPITAL P +"^>": "⃗" # COMBINING RIGHT ARROW ABOVE (vector) +"|C": "ℂ" # DOUBLE-STRUCK CAPITAL C (set of complex numbers) +"|N": "ℕ" # DOUBLE-STRUCK CAPITAL N (natural number) +"|P": "ℙ" # DOUBLE-STRUCK CAPITAL P +"|Q": "ℚ" # DOUBLE-STRUCK CAPITAL Q (set of rational numbers) +"|R": "ℝ" # DOUBLE-STRUCK CAPITAL R (set of real numbers) +"|Z": "ℤ" # DOUBLE-STRUCK CAPITAL Z (set of integers) +"|H": "ℍ" # DOUBLE-STRUCK CAPITAL H +"|e": "ⅇ" # DOUBLE-STRUCK ITALIC SMALL E +"|i": "ⅈ" # DOUBLE-STRUCK ITALIC SMALL I +"|j": "ⅉ" # DOUBLE-STRUCK ITALIC SMALL J +"|*p": "ℼ" # DOUBLE-STRUCK SMALL PI +"|*P": "ℿ" # DOUBLE-STRUCK CAPITAL PI +"|*S": "⅀" # DOUBLE-STRUCK N-ARY SUMMATION +"|:": "⦂" # Z NOTATION TYPE COLON +"|;": "⨾" # Z NOTATION RELATIONAL COMPOSITION +"|{": "⦃" # LEFT WHITE CURLY BRACKET +"|}": "⦄" # RIGHT WHITE CURLY BRACKET +"S(": "⟅" # LEFT S-SHAPED BAG DELIMITER +"S)": "⟆" # RIGHT S-SHAPED BAG DELIMITER +"E[": "⁅" # LEFT SQUARE BRACKET WITH QUILL +"E]": "⁆" # RIGHT SQUARE BRACKET WITH QUILL +"<(": "⟨" # MATHEMATICAL LEFT ANGLE BRACKET +">)": "⟩" # MATHEMATICAL RIGHT ANGLE BRACKET +"|[": "⟦" # MATHEMATICAL LEFT WHITE SQUARE BRACKET +"|]": "⟧" # MATHEMATICAL RIGHT WHITE SQUARE BRACKET +"2<(": "⟪" # MATHEMATICAL LEFT DOUBLE ANGLE BRACKET +"2>)": "⟫" # MATHEMATICAL RIGHT DOUBLE ANGLE BRACKET +"||(": "⟬" # MATHEMATICAL LEFT WHITE TORTOISE SHELL BRACKET +"||)": "⟭" # MATHEMATICAL RIGHT WHITE TORTOISE SHELL BRACKET +"__(": "⟮" # MATHEMATICAL LEFT FLATTENED PARENTHESIS +"__)": "⟯" # MATHEMATICAL RIGHT FLATTENED PARENTHESIS +"([": "⦗" # LEFT BLACK TORTOISE SHELL BRACKET +")]": "⦘" # RIGHT BLACK TORTOISE SHELL BRACKET +"%(": "⧘" # LEFT WIGGLY FENCE +"%)": "⧙" # RIGHT WIGGLY FENCE +"2%(": "⧚" # LEFT DOUBLE WIGGLY FENCE +"2%)": "⧛" # RIGHT DOUBLE WIGGLY FENCE +"(&(": "⸨" # LEFT DOUBLE PARENTHESIS +")&)": "⸩" # RIGHT DOUBLE PARENTHESIS +"2(": "⸨" # LEFT DOUBLE PARENTHESIS +"2)": "⸩" # RIGHT DOUBLE PARENTHESIS +"Z(": "༼" # TIBETAN MARK ANG KHANG GYON +"Z)": "༽" # TIBETAN MARK ANG KHANG GYAS +"L[": "⌊" # LEFT FLOOR +"L]": "⌋" # RIGHT FLOOR +"7[": "⌈" # LEFT CEILING +"7]": "⌉" # RIGHT CEILING +"7'": "「" # HALFWIDTH LEFT CORNER BRACKET +"L'": "」" # HALFWIDTH RIGHT CORNER BRACKET +"7\"": "『" # LEFT WHITE CORNER BRACKET +"L\"": "』" # RIGHT WHITE CORNER BRACKET +"7(": "⌜" # TOP LEFT CORNER +"7)": "⌝" # TOP RIGHT CORNER +"L(": "⌞" # BOTTOM LEFT CORNER +"L)": "⌟" # BOTTOM RIGHT CORNER +"(&)": "≬" # BETWEEN +"ll": "ℓ" # SCRIPT SMALL L +"[[": "⊏" # SQUARE IMAGE OF +"[=": "⊑" # SQUARE IMAGE OF OR EQUAL TO +"[_": "⊑" # SQUARE IMAGE OF OR EQUAL TO +"]]": "⊐" # SQUARE ORIGINAL OF +"]=": "⊒" # SQUARE ORIGINAL OF OR EQUAL TO +"]_": "⊒" # SQUARE ORIGINAL OF OR EQUAL TO +"_|_": "⊥" # UP TACK (bottom) or should we use U27C2 PERPENDICULAR? +"_!_": "⊤" # DOWN TACK (opposite of False) +"_>_": "⊢" # RIGHT TACK +"_<_": "⊣" # LEFT TACK +"//": "⁄" # FRACTION SLASH +"_0": "₀" # SUBSCRIPT ZERO +"_1": "₁" # SUBSCRIPT ONE +"_2": "₂" # SUBSCRIPT TWO +"_3": "₃" # SUBSCRIPT THREE +"_4": "₄" # SUBSCRIPT FOUR +"_5": "₅" # SUBSCRIPT FIVE +"_6": "₆" # SUBSCRIPT SIX +"_7": "₇" # SUBSCRIPT SEVEN +"_8": "₈" # SUBSCRIPT EIGHT +"_9": "₉" # SUBSCRIPT NONE +"_+": "₊" # SUBSCRIPT PLUS +"_-": "₋" # SUBSCRIPT MINUS +"_=": "₌" # SUBSCRIPT EQUALS SIGN +"_(": "₍" # SUBSCRIPT LEFT PARENTHESIS +"_)": "₎" # SUBSCRIPT RIGHT PARENTHESIS +"_a": "ₐ" # LATIN SUBSCRIPT SMALL LETTER A +"_e": "ₑ" # LATIN SUBSCRIPT SMALL LETTER E +"_o": "ₒ" # LATIN SUBSCRIPT SMALL LETTER O +"_x": "ₓ" # LATIN SUBSCRIPT SMALL LETTER X +"_h": "ₕ" # LATIN SUBSCRIPT SMALL LETTER H +"_k": "ₖ" # LATIN SUBSCRIPT SMALL LETTER K +"_l": "ₗ" # LATIN SUBSCRIPT SMALL LETTER L +"_m": "ₘ" # LATIN SUBSCRIPT SMALL LETTER M +"_n": "ₙ" # LATIN SUBSCRIPT SMALL LETTER N +"_p": "ₚ" # LATIN SUBSCRIPT SMALL LETTER P +"_s": "ₛ" # LATIN SUBSCRIPT SMALL LETTER S +"_t": "ₜ" # LATIN SUBSCRIPT SMALL LETTER T +"_i": "ᵢ" # LATIN SUBSCRIPT SMALL LETTER I +"_j": "ⱼ" # LATIN SUBSCRIPT SMALL LETTER J +"_r": "ᵣ" # LATIN SUBSCRIPT SMALL LETTER R +"_u": "ᵤ" # LATIN SUBSCRIPT SMALL LETTER U +"_v": "ᵥ" # LATIN SUBSCRIPT SMALL LETTER V +"_*b": "ᵦ" # GREEK SUBSCRIPT SMALL LETTER BETA +"_*g": "ᵧ" # GREEK SUBSCRIPT SMALL LETTER GAMMA +"_*r": "ᵨ" # GREEK SUBSCRIPT SMALL LETTER RHO +"_*f": "ᵩ" # GREEK SUBSCRIPT SMALL LETTER PHI +"_*x": "ᵪ" # GREEK SUBSCRIPT SMALL LETTER CHI +"*a": "α" # GREEK SMALL LETTER ALPHA +"*b": "β" # GREEK SMALL LETTER BETA +"*c": "ψ" # GREEK SMALL LETTER PSI +"*d": "δ" # GREEK SMALL LETTER DELTA +"*e": "ε" # GREEK SMALL LETTER EPSILON +"*f": "φ" # GREEK SMALL LETTER PHI +"*g": "γ" # GREEK SMALL LETTER GAMMA +"*h": "η" # GREEK SMALL LETTER ΕΤΑ +"*i": "ι" # GREEK SMALL LETTER ΙΟΤΑ +"*j": "ξ" # GREEK SMALL LETTER XI +"*k": "κ" # GREEK SMALL LETTER KAPPA +"*l": "λ" # GREEK SMALL LETTER LAMBDA +"*m": "μ" # GREEK SMALL LETTER MU +"*n": "ν" # GREEK SMALL LETTER NU +"*o": "ο" # GREEK SMALL LETTER OMICRON +"*p": "π" # GREEK SMALL LETTER PI +"*.?": ";" # GREEK QUESTION MARK +"*r": "ρ" # GREEK SMALL LETTER RHO +"*s": "σ" # GREEK SMALL LETTER SIGMA +"*t": "τ" # GREEK SMALL LETTER TAU +"*u": "θ" # GREEK SMALL LETTER THETA +"*v": "ω" # GREEK SMALL LETTER OMEGA +"*w": "ς" # GREEK SMALL LETTER FINAL SIGMA +"*x": "χ" # GREEK SMALL LETTER CHI +"*y": "υ" # GREEK SMALL LETTER UPSILON +"*z": "ζ" # GREEK SMALL LETTER ZETA +"*A": "Α" # GREEK CAPITAL LETTER ALPHA +"*B": "Β" # GREEK CAPITAL LETTER BETA +"*C": "Ψ" # GREEK CAPITAL LETTER PSI +"*D": "Δ" # GREEK CAPITAL LETTER DELTA +"*E": "Ε" # GREEK CAPITAL LETTER EPSILON +"*F": "Φ" # GREEK CAPITAL LETTER PHI +"*G": "Γ" # GREEK CAPITAL LETTER GAMMA +"*H": "Η" # GREEK CAPITAL LETTER ΕΤΑ +"*I": "Ι" # GREEK CAPITAL LETTER ΙΟΤΑ +"*J": "Ξ" # GREEK CAPITAL LETTER XI +"*K": "Κ" # GREEK CAPITAL LETTER KAPPA +"*L": "Λ" # GREEK CAPITAL LETTER LAMBDA +"*M": "Μ" # GREEK CAPITAL LETTER MU +"*N": "Ν" # GREEK CAPITAL LETTER NU +"*O": "Ο" # GREEK CAPITAL LETTER OMICRON +"*P": "Π" # GREEK CAPITAL LETTER PI +"*R": "Ρ" # GREEK CAPITAL LETTER RHO +"*S": "Σ" # GREEK CAPITAL LETTER SIGMA +"*T": "Τ" # GREEK CAPITAL LETTER TAU +"*U": "Θ" # GREEK CAPITAL LETTER THETA +"*V": "Ω" # GREEK CAPITAL LETTER OMEGA +"*X": "Χ" # GREEK CAPITAL LETTER CHI +"*Y": "Υ" # GREEK CAPITAL LETTER UPSILON +"*Z": "Ζ" # GREEK CAPITAL LETTER ZETA +"*.p": "ϖ" # GREEK PI SYMBOL +"*.w": "ϝ" # GREEK SMALL LETTER DIGAMMA +"*.W": "Ϝ" # GREEK CAPITAL LETTER DIGAMMA +"*Q": "Ϟ" # GREEK LETTER QOPPA +"*q": "ϟ" # GREEK SMALL LETTER QOPPA +"*.Q": "Ϙ" # GREEK LETTER ARCHAIC QOPPA +"*.q": "ϙ" # GREEK SMALL LETTER ARCHAIC QOPPA +"*&": "ϗ" # GREEK KAI SYMBOL +"*.Z": "Ϡ" # GREEK LETTER SAMPI +"*.z": "ϡ" # GREEK SMALL LETTER SAMPI +"*..Z": "Ͳ" # GREEK CAPITAL LETTER ARCHAIC SAMPI +"*..z": "ͳ" # GREEK SMALL LETTER ARCHAIC SAMPI +"*?": "Ϛ" # GREEK LETTER STIGMA +"*/": "ϛ" # GREEK SMALL LETTER STIGMA +"*'": "ʹ" # MODIFIER LETTER PRIME, canonically equivalent to U0374 GREEK NUMERAL SIGN +"*.'": "′" # PRIME +"*.\"": "″" # DOUBLE PRIME +"*,": "͵" # GREEK LOWER NUMERAL SIGN (for thousands) +"*.b": "ϐ" # GREEK BETA SYMBOL +"*.u": "ϑ" # GREEK THETA SYMBOL +"*.Y": "ϒ" # GREEK UPSILON WITH HOOK SYMBOL +"*.f": "ϕ" # GREEK PHI SYMBOL +"*.k": "ϰ" # GREEK KAPPA SYMBOL +"*.r": "ϱ" # GREEK RHO SYMBOL +"*.U": "ϴ" # GREEK CAPITAL THETA SYMBOL +"*.e": "ϵ" # GREEK LUNATE EPSILON SYMBOL +"*.s": "ϻ" # GREEK SMALL LETTER SAN +"*.S": "Ϻ" # GREEK CAPITAL LETTER SAN +"13": "⅓" # VULGAR FRACTION ONE THIRD +"23": "⅔" # VULGAR FRACTION TWO THIRDS +"15": "⅕" # VULGAR FRACTION ONE FIFTH +"25": "⅖" # VULGAR FRACTION TWO FIFTHS +"35": "⅗" # VULGAR FRACTION THREE FIFTHS +"45": "⅘" # VULGAR FRACTION FOUR FIFTHS +"16": "⅙" # VULGAR FRACTION ONE SIXTH +"56": "⅚" # VULGAR FRACTION FIVE SIXTHS +"18": "⅛" # VULGAR FRACTION ONE EIGHTH +"38": "⅜" # VULGAR FRACTION THREE EIGHTHS +"58": "⅝" # VULGAR FRACTION FIVE EIGHTHS +"78": "⅞" # VULGAR FRACTION SEVEN EIGHTHS +"17": "⅐" # VULGAR FRACTION ONE SEVENTH +"19": "⅑" # VULGAR FRACTION ONE NINTH +"1x": "⅒" # VULGAR FRACTION ONE TENTH +"03": "↉" # VULGAR FRACTION ZERO THIRDS +"1/": "⅟" # FRACTION NUMERATOR ONE +"%1": "ⅰ" # SMALL ROMAN NUMERAL ONE +"%2": "ⅱ" # SMALL ROMAN NUMERAL TWO +"%3": "ⅲ" # SMALL ROMAN NUMERAL THREE +"%4": "ⅳ" # SMALL ROMAN NUMERAL FOUR +"%5": "ⅴ" # SMALL ROMAN NUMERAL FIVE +"%6": "ⅵ" # SMALL ROMAN NUMERAL SIX +"%7": "ⅶ" # SMALL ROMAN NUMERAL SEVEN +"%8": "ⅷ" # SMALL ROMAN NUMERAL EIGHT +"%9": "ⅸ" # SMALL ROMAN NUMERAL NINE +"%x": "ⅹ" # SMALL ROMAN NUMERAL TEN +"%_1": "ⅺ" # SMALL ROMAN NUMERAL ELEVEN +"%_2": "ⅻ" # SMALL ROMAN NUMERAL TWELVE +"%l": "ⅼ" # SMALL ROMAN NUMERAL FIFTY +"%c": "ⅽ" # SMALL ROMAN NUMERAL ONE HUNDRED +"%d": "ⅾ" # SMALL ROMAN NUMERAL FIVE HUNDRED +"%m": "ⅿ" # SMALL ROMAN NUMERAL ONE THOUSAND +"%01": "Ⅰ" # ROMAN NUMERAL ONE +"%02": "Ⅱ" # ROMAN NUMERAL TWO +"%03": "Ⅲ" # ROMAN NUMERAL THREE +"%04": "Ⅳ" # ROMAN NUMERAL FOUR +"%05": "Ⅴ" # ROMAN NUMERAL FIVE +"%06": "Ⅵ" # ROMAN NUMERAL SIX +"%07": "Ⅶ" # ROMAN NUMERAL SEVEN +"%08": "Ⅷ" # ROMAN NUMERAL EIGHT +"%09": "Ⅸ" # ROMAN NUMERAL NINE +"%0x": "Ⅹ" # ROMAN NUMERAL TEN +"%_01": "Ⅺ" # ROMAN NUMERAL ELEVEN +"%_02": "Ⅻ" # ROMAN NUMERAL TWELVE +"%0l": "Ⅼ" # ROMAN NUMERAL FIFTY +"%0c": "Ⅽ" # ROMAN NUMERAL ONE HUNDRED +"%0d": "Ⅾ" # ROMAN NUMERAL FIVE HUNDRED +"%0m": "Ⅿ" # ROMAN NUMERAL ONE THOUSAND +"%X": "Ⅹ" # ROMAN NUMERAL TEN +"%L": "Ⅼ" # ROMAN NUMERAL FIFTY +"%C": "Ⅽ" # ROMAN NUMERAL ONE HUNDRED +"%": "♢" # WHITE DIAMOND SUIT +"3-": "♠" # BLACK SPADE SUIT +"<}": "♠" # BLACK SPADE SUIT +"E>": "♡" # WHITE HEART SUIT +"shmrck": "☘" # SHAMROCK +"shamro": "☘" # SHAMROCK +"pc": "☮" # PEACE SYMBOL +"peace": "☮" # PEACE SYMBOL +"yy": "☯" # YIN YANG +"yinyan": "☯" # YIN YANG +"!<3": "❣" # HEAVY HEART EXCLAMATION MARK ORNAMENT +"f<3": "❦" # FLORAL HEART +"tel": "☎" # BLACK TELEPHONE +"tea": "☕" # HOT BEVERAGE +"[ ]": "☐" # BALLOT BOX +"chk": "☑" # BALLOT BOX WITH CHECK +"[/]": "☑" # BALLOT BOX WITH CHECK +"[x]": "☒" # BALLOT BOX WITH X +"@/": "✓" # CHECK MARK +"@@/": "✔" # HEAVY CHECK MARK +"@X": "✗" # BALLOT X +"@@X": "✘" # HEAVY BALLOT X +"@(": "❨" # MEDIUM LEFT PARENTHESIS ORNAMENT +"@)": "❩" # MEDIUM RIGHT PARENTHESIS ORNAMENT +"@@(": "❪" # MEDIUM FLATTENED LEFT PARENTHESIS ORNAMENT +"@@)": "❫" # MEDIUM FLATTENED RIGHT PARENTHESIS ORNAMENT +"@<": "❬" # MEDIUM LEFT-POINTING ANGLE BRACKET ORNAMENT +"@>": "❭" # MEDIUM RIGHT-POINTING ANGLE BRACKET ORNAMENT +"@@<": "❰" # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT +"@@>": "❱" # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT +"@[(": "❲" # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT +"@])": "❳" # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT +"@{": "❴" # MEDIUM LEFT CURLY BRACKET ORNAMENT +"@}": "❵" # MEDIUM RIGHT CURLY BRACKET ORNAMENT +"@": "️" # Emoji selector +"!": "︎" # Text selector +"[1]": "⚀" # DIE FACE-1 +"[2]": "⚁" # DIE FACE-2 +"[3]": "⚂" # DIE FACE-3 +"[4]": "⚃" # DIE FACE-4 +"[5]": "⚄" # DIE FACE-5 +"[6]": "⚅" # DIE FACE-6 +"(CC)": "🅭" # CIRCLED CC +"C(CC)": "🅭" # CIRCLED CC +"(\\C)": "🅮" # CIRCLED C WITH OVERLAID BACKSLASH +"(/C)": "🅮" # CIRCLED C WITH OVERLAID BACKSLASH +"C(\\C)": "🅮" # CIRCLED C WITH OVERLAID BACKSLASH +"C(/C)": "🅮" # CIRCLED C WITH OVERLAID BACKSLASH +"C(BY)": "🅯" # CIRCLED HUMAN FIGURE +"C(SA)": "🄎" # CIRCLED ANTICLOCKWISE ARROW +"C(ND)": "⊜" # CIRCLED EQUALS +"C(=)": "⊜" # CIRCLED EQUALS +"C(NC)": "🄏" # CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH +"C(/$)": "🄏" # CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH +"C(\\$)": "🄏" # CIRCLED DOLLAR SIGN WITH OVERLAID BACKSLASH +"(C<)": "🄯" # COPYLEFT SYMBOL +"C(C<)": "🄯" # COPYLEFT SYMBOL +"#0": "🯰" # SEGMENTED DIGIT ZERO +"#1": "🯱" # SEGMENTED DIGIT ONE +"#2": "🯲" # SEGMENTED DIGIT TWO +"#3": "🯳" # SEGMENTED DIGIT THREE +"#4": "🯴" # SEGMENTED DIGIT FOUR +"#5": "🯵" # SEGMENTED DIGIT FIVE +"#6": "🯶" # SEGMENTED DIGIT SIX +"#7": "🯷" # SEGMENTED DIGIT SEVEN +"#8": "🯸" # SEGMENTED DIGIT EIGHT +"#9": "🯹" # SEGMENTED DIGIT NINE +"fdl": "⚜" # FLEUR-DE-LIS +"atom": "⚛" # ATOM SYMBOL +"cccp": "☭" # HAMMER AND SICKLE +"/!\\": "⚠" # WARNING SIGN +"!^": "⚠" # WARNING SIGN +"zap": "⚡" # HIGH VOLTAGE SIGN +"rad": "☢" # RADIOACTIVE SIGN +"bh": "☣" # BIOHAZARD SIGN +"biohaz": "☣" # BIOHAZARD SIGN +"AAAAA": "⛤" # PENTAGRAM (pentalpha, get it?) +"plane": "✈" # AIRPLANE +"mail": "✉" # ENVELOPE +"whlch": "♿" # WHEELCHAIR SYMBOL +"med": "☤" # CADEUCEUS +"iwit": "👁️‍🗨️" +"1med": "⚕" # STAFF OF AESCULAPIUS +"o-+": "♀" # FEMALE SIGN +"o->": "♂" # MALE SIGN +"gay": "⚣" # DOUBLED MALE SIGN +"lesbian": "⚢" # DOUBLED FEMALE SIGN +"hetero": "⚤" # INTERLOCKED FEMALE AND MALE SIGN +"trans": "⚥" # MALE AND FEMALE SIGN +"genderq": "⚧" # MALE WITH STROKE AND MALE AND FEMALE SIGN +"OX": "☠" # SKULL AND CROSSBONES +"death": "☠" # SKULL AND CROSSBONES +"Xbones": "☠" # SKULL AND CROSSBONES +"kbd": "⌨" # KEYBOARD +"rhand": "☞" # WHITE RIGHT POINTING INDEX +"lhand": "☜" # WHITE LEFT POINTING INDEX +"**": "★" # BLACK STAR +"*0": "☆" # WHITE STAR +"*-": "✪" # CIRCLED WHITE STAR +"*3": "⁂" # ASTERISM +"3*": "⁂" # ASTERISM +"2*": "⁑" # TWO ASTERISKS ALIGNED VERTICALLY +"*4": "✢" # FOUR TEARDROP-SPOKED ASTERISK +"*6": "✡" # STAR OF DAVID +"*#": "✯" # PINWHEEL STAR +"*!": "✱" # HEAVY ASTERISK +"": "❖" # BLACK DIAMOND MINUS WHITE X +"@#": "⌘" # PLACE OF INTEREST SIGN +"`-'": "⚞" # THREE LINES CONVERGING RIGHT +"'-`": "⚟" # THREE LINES CONVERGING LEFT +"Bellsym": "⍾" # BELL SYMBOL (or ALIENS LANDING) -- &-a-l-i-e-n ? +"_^_": "⌤" # UP ARROWHEAD BETWEEN TWO HORIZONTAL BARS; aka ENTER KEY, aka NOT AMUSED. +"wait": "⌛" # HOURGLASS +"hour": "⌛" # HOURGLASS +"time": "⌚" # WATCH +"watch": "⌚" # WATCH +" N": " " # EN SPACE +" M": " " # EM SPACE +" 3M": " " # THREE-PER-EM SPACE +" 4M": " " # FOUR-PER-EM SPACE +" 6M": " " # SIX-PER-EM SPACE +" ,": " " # PUNCTUATION SPACE +" +": " " # MEDIUM MATHEMATICAL SPACE +"()": "◌" # DOTTED CIRCLE +"[]": "⬚" # DOTTED SQUARE +"*(": "﴾" # ORNATE LEFT PARENTHESIS +"*)": "﴿" # ORNATE RIGHT PARENTHESIS +"ks": "ʘ" # LATIN LETTER BILABIAL CLICK (kiss sound) +"|>": "‣" # TRIANGULAR BULLET +"^^h": "ʰ" # SUPERSCRIPT H +"^^i": "ⁱ" # SUPERSCRIPT I +"^^j": "ʲ" # SUPERSCRIPT J +"^^n": "ⁿ" # SUPERSCRIPT N +"^^r": "ʳ" # SUPERSCRIPT R +"^^w": "ʷ" # SUPERSCRIPT W +"^^y": "ʸ" # SUPERSCRIPT Y +"^^x": "ˣ" # SUPERSCRIPT X +"^^e": "ᵉ" # MODIFIER LETTER SMALL E +"^^t": "ᵗ" # MODIFIER LETTER SMALL T +"þt": "ꝥ" # LATIN SMALL LETTER THORN WITH STROKE +"^?.": "ˀ" # MODIFIER LETTER GLOTTAL STOP +"^?(": "ˁ" # MODIFIER LETTER REVERSED GLOTTAL STOP +"^-": "⁻" # SUPERSCRIPT MINUS +"^+": "⁺" # SUPERSCRIPT PLUS +"~~": "≈" # ALMOST EQUAL TO +"sh": "ʃ" # LATIN SMALL LETTER ESH +"zh": "ʒ" # LATIN SMALL LETTER EZH +"lh": "ɬ" # LATIN SMALL LETTER L WITH BELT +"l3": "ɮ" # LATIN SMALL LETTER LEZH +"yg": "ȝ" # LATIN SMALL LETTER YOGH +"YG": "Ȝ" # LATIN CAPITAL LETTER YOGH +"?.": "ʔ" # LATIN LETTER GLOTTAL STOP +"?(": "ʕ" # LATIN LETTER PHARYNGEAL VOICED FRICATIVE +"?v": "ʖ" # LATIN LETTER INVERTED GLOTTAL STOP +"?@": "ʖ" # LATIN LETTER INVERTED GLOTTAL STOP +"?-": "ʡ" # LATIN LETTER GLOTTAL STOP WITH STROKE +"?{": "ʢ" # LATIN LETTER REVERSED GLOTTAL STOP WITH STROKE +"ph": "ɸ" # LATIN SMALL LETTER PHI +"ih": "ɪ" # LATIN LETTER SMALL CAPITAL I +"IH": "ɪ" # LATIN LETTER SMALL CAPITAL I +"uh": "ʊ" # LATIN SMALL LETTER UPSILON +"UH": "ʊ" # LATIN SMALL LETTER UPSILON +"ah": "ɑ" # LATIN SMALL LETTER ALPHA +"er": "ɚ" # LATIN SMALL LETTER SCHWA WITH HOOK +"o)": "ɔ" # LATIN SMALL LETTER OPEN O +"aw": "ɔ" # LATIN SMALL LETTER OPEN O +"O)": "Ɔ" # LATIN CAPITAL LETTER OPEN O +"AW": "Ɔ" # LATIN CAPITAL LETTER OPEN O +"eh": "ɛ" # LATIN SMALL LETTER OPEN E +"": "͢" # COMBINING DOUBLE RIGHTWARDS ARROW BELOW +"\\2>": "͢" # COMBINING DOUBLE RIGHTWARDS ARROW BELOW +".)": "͒" # COMBINING FERMATA +"\\\\*": "҉" # COMBINING CYRILLIC MILLIONS SIGN -- aka COMBINING SHINY +"P-": "₽" # RUBLE SIGN +"p-": "₽" # RUBLE SIGN +"ZWSP": "​" # ZERO WIDTH SPACE +"ZWNJ": "‌" # ZERO WIDTH NON-JOINER +"ZWJ": "‍" # ZERO WIDTH JOINER +"LRM": "‎" # LEFT-TO-RIGHT MARK +"RLM": "‏" # RIGHT-TO-LEFT MARK +"LRE": "‪" # LEFT-TO-RIGHT EMBEDDING +"RLE": "‫" # RIGHT-TO-LEFT EMBEDDING +"PDF": "‬" # POP DIRECTIONAL FORMATTING +"LRI": "⁦" # LEFT-TO-RIGHT ISOLATE +"RLI": "⁧" # RIGHT-TO-LEFT ISOLATE +"FSI": "⁨" # FIRST STRONG ISOLATE +"PDI": "⁩" # POP DIRECTIONAL ISOLATE +"LRO": "‭" # LEFT-TO-RIGHT OVERRIDE +"RLO": "‮" # RIGHT-TO-LEFT OVERRIDE +"BOM": "" # ZERO WIDTH NO-BREAK SPACE (Byte Order Mark) +"CGJ": "͏" # COMBINING GRAPHEME JOINER +"WJ": "⁠" # WORD JOINER +"a`": "ᴀ" # LATIN LETTER SMALL CAPITAL A +"b`": "ʙ" # LATIN LETTER SMALL CAPITAL B +"c`": "ᴄ" # LATIN LETTER SMALL CAPITAL C +"d`": "ᴅ" # LATIN LETTER SMALL CAPITAL D +"e`": "ᴇ" # LATIN LETTER SMALL CAPITAL E +"f`": "ꜰ" # LATIN LETTER SMALL CAPITAL F +"g`": "ɢ" # LATIN LETTER SMALL CAPITAL G +"h`": "ʜ" # LATIN LETTER SMALL CAPITAL H +"i`": "ɪ" # LATIN LETTER SMALL CAPITAL I +"j`": "ᴊ" # LATIN LETTER SMALL CAPITAL J +"k`": "ᴋ" # LATIN LETTER SMALL CAPITAL K +"l`": "ʟ" # LATIN LETTER SMALL CAPITAL L +"m`": "ᴍ" # LATIN LETTER SMALL CAPITAL M +"n`": "ɴ" # LATIN LETTER SMALL CAPITAL N +"o`": "ᴏ" # LATIN LETTER SMALL CAPITAL O +"p`": "ᴘ" # LATIN LETTER SMALL CAPITAL P +"q`": "ꞯ" # LATIN LETTER SMALL CAPITAL Q +"r`": "ʀ" # LATIN LETTER SMALL CAPITAL R +"s`": "ꜱ" # LATIN LETTER SMALL CAPITAL S +"t`": "ᴛ" # LATIN LETTER SMALL CAPITAL T +"u`": "ᴜ" # LATIN LETTER SMALL CAPITAL U +"v`": "ᴠ" # LATIN LETTER SMALL CAPITAL V +"w`": "ᴡ" # LATIN LETTER SMALL CAPITAL W +"y`": "ʏ" # LATIN LETTER SMALL CAPITAL Y +"z`": "ᴢ" # LATIN LETTER SMALL CAPITAL Z +"sun": "☉" # SUN (Sunday) +"moon": "☽" # FIRST QUARTER MOON (Monday) +"mercury": "☿" # MERCURY (Wednesday) +"jupiter": "♃" # JUPITER (Thursday) +"saturn": "♄" # SATURN (Saturday) +"uranus": "♅" # URANUS (or ⛢ U26E2?) +"neptune": "♆" # NEPTUNE +"pluto": "♇" # PLUTO (ok, it isn't a planet anymore, but we still love it.) +"ceres": "⚳" # CERES +"pallas": "⚴" # PALLAS +"juno": "⚵" # JUNO +"vesta": "⚶" # VESTA +"chiron": "⚷" # CHIRON +"lilith": "⚸" # BLACK MOON LILITH +"[key]": "⚿" # SQUARED KEY +"[AS]": "🂡" # PLAYING CARD ACE OF SPADES +"[2S]": "🂢" # PLAYING CARD TWO OF SPADES +"[3S]": "🂣" # PLAYING CARD THREE OF SPADES +"[4S]": "🂤" # PLAYING CARD FOUR OF SPADES +"[5S]": "🂥" # PLAYING CARD FIVE OF SPADES +"[6S]": "🂦" # PLAYING CARD SIX OF SPADES +"[7S]": "🂧" # PLAYING CARD SEVEN OF SPADES +"[8S]": "🂨" # PLAYING CARD EIGHT OF SPADES +"[9S]": "🂩" # PLAYING CARD NINE OF SPADES +"[TS]": "🂪" # PLAYING CARD TEN OF SPADES +"[JS]": "🂫" # PLAYING CARD JACK OF SPADES +"[NS]": "🂬" # PLAYING CARD KNIGHT OF SPADES +"[QS]": "🂭" # PLAYING CARD QUEEN OF SPADES +"[KS]": "🂮" # PLAYING CARD KING OF SPADES +"[AH]": "🂱" # PLAYING CARD ACE OF HEARTS +"[2H]": "🂲" # PLAYING CARD TWO OF HEARTS +"[3H]": "🂳" # PLAYING CARD THREE OF HEARTS +"[4H]": "🂴" # PLAYING CARD FOUR OF HEARTS +"[5H]": "🂵" # PLAYING CARD FIVE OF HEARTS +"[6H]": "🂶" # PLAYING CARD SIX OF HEARTS +"[7H]": "🂷" # PLAYING CARD SEVEN OF HEARTS +"[8H]": "🂸" # PLAYING CARD EIGHT OF HEARTS +"[9H]": "🂹" # PLAYING CARD NINE OF HEARTS +"[TH]": "🂺" # PLAYING CARD TEN OF HEARTS +"[JH]": "🂻" # PLAYING CARD JACK OF HEARTS +"[NH]": "🂼" # PLAYING CARD KNIGHT OF HEARTS +"[QH]": "🂽" # PLAYING CARD QUEEN OF HEARTS +"[KH]": "🂾" # PLAYING CARD KING OF HEARTS +"[AD]": "🃁" # PLAYING CARD ACE OF DIAMONDS +"[2D]": "🃂" # PLAYING CARD TWO OF DIAMONDS +"[3D]": "🃃" # PLAYING CARD THREE OF DIAMONDS +"[4D]": "🃄" # PLAYING CARD FOUR OF DIAMONDS +"[5D]": "🃅" # PLAYING CARD FIVE OF DIAMONDS +"[6D]": "🃆" # PLAYING CARD SIX OF DIAMONDS +"[7D]": "🃇" # PLAYING CARD SEVEN OF DIAMONDS +"[8D]": "🃈" # PLAYING CARD EIGHT OF DIAMONDS +"[9D]": "🃉" # PLAYING CARD NINE OF DIAMONDS +"[TD]": "🃊" # PLAYING CARD TEN OF DIAMONDS +"[JD]": "🃋" # PLAYING CARD JACK OF DIAMONDS +"[ND]": "🃌" # PLAYING CARD KNIGHT OF DIAMONDS +"[QD]": "🃍" # PLAYING CARD QUEEN OF DIAMONDS +"[KD]": "🃎" # PLAYING CARD KING OF DIAMONDS +"[AC]": "🃑" # PLAYING CARD ACE OF CLUBS +"[2C]": "🃒" # PLAYING CARD TWO OF CLUBS +"[3C]": "🃓" # PLAYING CARD THREE OF CLUBS +"[4C]": "🃔" # PLAYING CARD FOUR OF CLUBS +"[5C]": "🃕" # PLAYING CARD FIVE OF CLUBS +"[6C]": "🃖" # PLAYING CARD SIX OF CLUBS +"[7C]": "🃗" # PLAYING CARD SEVEN OF CLUBS +"[8C]": "🃘" # PLAYING CARD EIGHT OF CLUBS +"[9C]": "🃙" # PLAYING CARD NINE OF CLUBS +"[TC]": "🃚" # PLAYING CARD TEN OF CLUBS +"[JC]": "🃛" # PLAYING CARD JACK OF CLUBS +"[NC]": "🃜" # PLAYING CARD KNIGHT OF CLUBS +"[QC]": "🃝" # PLAYING CARD QUEEN OF CLUBS +"[KC]": "🃞" # PLAYING CARD KING OF CLUBS +"[CB]": "🂠" # PLAYING CARD BACK +"[BJ]": "🃏" # PLAYING CARD BLACK JOKER +"[WJ]": "🃟" # PLAYING CARD WHITE JOKER +"|WK": "♔" # WHITE CHESS KING +"|WQ": "♕" # WHITE CHESS QUEEN +"|WR": "♖" # WHITE CHESS ROOK +"|WB": "♗" # WHITE CHESS BISHOP +"|WN": "♘" # WHITE CHESS KNIGHT +"|WP": "♙" # WHITE CHESS PAWN +"|BK": "♚" # BLACK CHESS KING +"|BQ": "♛" # BLACK CHESS QUEEN +"|BR": "♜" # BLACK CHESS ROOK +"|BB": "♝" # BLACK CHESS BISHOP +"|BN": "♞" # BLACK CHESS KNIGHT +"|BP": "♟" # BLACK CHESS PAWN +"|WDM": "⛀" # WHITE DRAUGHTS MAN +"|WDK": "⛁" # WHITE DRAUGHTS KING +"|BDM": "⛂" # BLACK DRAUGHTS MAN +"|BDK": "⛃" # BLACK DRAUGHTS KING +"|WS": "☖" # WHITE SHOGI PIECE +"|BS": "☗" # BLACK SHOGI PIECE +"|"] license = "GPL-3.0-or-later" -packages = [{"include" = "gencompose.py"}] +packages = [ + {"include" = "gencompose.py"}, + {"include" = "convcompose.py"} +] readme = "README.md" homepage = "https://github.com/Granitosaurus/macos-compose" repository = "https://github.com/Granitosaurus/macos-compose" @@ -25,6 +28,7 @@ pyyaml = "^5.3.1" [tool.poetry.scripts] gen-compose = "gencompose:main" +gen-compose-convert = "convcompose:main" [build-system] requires = ["poetry>=0.12"] From 165d87d0eb30ec2d279a5f74583834b0842c363f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernardas=20Ali=C5=A1auskas?= Date: Sun, 27 Sep 2020 15:19:09 +0700 Subject: [PATCH 2/2] add tests and bump version --- convcompose.py | 2 +- pyproject.toml | 3 ++- tests/__init__.py | 0 tests/test.compose | 5 +++++ tests/test_convcompose.py | 15 +++++++++++++++ 5 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 tests/__init__.py create mode 100644 tests/test.compose create mode 100644 tests/test_convcompose.py diff --git a/convcompose.py b/convcompose.py index 0586fa0..854802f 100644 --- a/convcompose.py +++ b/convcompose.py @@ -103,7 +103,7 @@ def xcompose(files, keep_comments): except ValueError: echo(f'malformed line:\n{row}', err=True) continue - from_ = re.split('\s+', from_) + from_ = re.split(r'\s+', from_) try: from_ = ''.join(remap_keys(from_)) except ValueError as e: diff --git a/pyproject.toml b/pyproject.toml index 7966bb9..1946436 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "gen-compose" -version = "1.0.1" +version = "1.1.0" description = "Key generator for macos keybinding system" authors = ["Granitosaurus "] license = "GPL-3.0-or-later" @@ -25,6 +25,7 @@ click = "^7.1.2" pyyaml = "^5.3.1" [tool.poetry.dev-dependencies] +pytest = "^6.1.0" [tool.poetry.scripts] gen-compose = "gencompose:main" diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/test.compose b/tests/test.compose new file mode 100644 index 0000000..c2c1270 --- /dev/null +++ b/tests/test.compose @@ -0,0 +1,5 @@ +# some leading comments +# that should be ignored + : "…" U2026 # HORIZONTAL ELLIPSIS + +# spaces and line breaking comments should be ignored too diff --git a/tests/test_convcompose.py b/tests/test_convcompose.py new file mode 100644 index 0000000..ccd1352 --- /dev/null +++ b/tests/test_convcompose.py @@ -0,0 +1,15 @@ +from pathlib import Path + +from click.testing import CliRunner +from convcompose import main + + +def test_xcompose_convert(): + runner = CliRunner() + file = Path(__file__).parent / 'test.compose' + result = runner.invoke(main, args=['xcompose', str(file)]) + assert result.exit_code == 0 + assert result.output == '"..": "…"\n' + result = runner.invoke(main, args=['xcompose', str(file), '--keep-comments']) + assert result.exit_code == 0 + assert result.output == '"..": "…" # HORIZONTAL ELLIPSIS\n'

: "⸙" U2E19 # PALM BRANCH + : "⸙" U2E19 # PALM BRANCH + + + : "ff" UFB00 # LATIN SMALL LIGATURE FF + : "fi" UFB01 # LATIN SMALL LIGATURE FI + : "ffi" UFB03 # LATIN SMALL LIGATURE FFI + : "fl" UFB02 # LATIN SMALL LIGATURE FL + : "ffl" UFB04 # LATIN SMALL LIGATURE FFL + : "st" UFB06 # LATIN SMALL LIGATURE ST + : "ſt" UFB05 # LATIN SMALL LIGATURE LONG S T +# allow me still to use my ſ key, okay? + : "ſt" UFB05 # LATIN SMALL LIGATURE LONG S T +# ß is already available as I think. But now it comes in industrial size! + : "ẞ" U1E9E # LATIN CAPITAL LETTER SHARP S + +# Eventually we'll have to look over the really crazy-cakes Latin letters +# they're adding as "mediævalist extensions" +# ꜢꜣꜤꜥ for the Egyptologists, Ꝏꝏ because they're cꝏl... Maybe some others. +# Can't do for ꝏ though, since that's already °. +# Epigraphics should not be missed: + : "ꟻ" UA7FB # LATIN EPIGRAPHIC LETTER REVERSED F +