# General compose rules: # # ‘C X’ means ‘Compose + X’ # U+22C6 STAR OPERATOR (‘⋆’) represents an arbitrary key # # C ⋆ ' A letter with an acute # C ⋆ u A letter with a breve # C ⋆ v A letter with a caron # C ⋆ , A letter with a cedilla # C ⋆ ^ A letter with a circumflex # C ⋆ : A letter with a diaeresis # C ⋆ . A letter with a dot # C ⋆ " A letter with a double-acute # C ⋆ ` A letter with a grave # C ⋆ - A letter with a macron # C ⋆ ; A letter with an ogonek # C ⋆ o A letter with a ring # C ⋆ / A letter with a slash or strikethrough # C ⋆ ~ A letter with a tilde # C ⋆ * The Greek letter ‘⋆’ # C _ ⋆ Subscript ‘⋆’ # C ^ ⋆ Superscript ‘⋆’ # C l ⋆ Propositional logic operators # # Ligatures or other glyphs that are compose of multiple characters are # straight forwards. For example ‘C I J’ produces ‘IJ’. # # Math symbols typically use programming counterparts if they exist, # for example ‘C ! =’ produces ‘≠’. Other symbols that look similar to # ASCII symbols are formed via repetition, for example ‘C * *’ produces # ‘⋆’. # # NOTE: System config at /usr/share/X11/locale/en_US.UTF-8/Compose # # Propositional Logic <Multi_key> <l> <a> : "∧" U2227 # [L]ogical [A]nd <Multi_key> <l> <e> : "⇔" U21D4 # [L]ogical [E]quivalence <Multi_key> <l> <i> : "⇒" U21D2 # [L]ogical [I]mplication <Multi_key> <l> <n> : "¬" U00AC # [L]ogical [N]ot <Multi_key> <l> <o> : "∨" U2228 # [L]ogical [O]r <Multi_key> <l> <x> : "⊕" U2295 # [L]ogical [X]or # Math <Multi_key> <asterisk> <asterisk> : "⋆" U22C6 <Multi_key> <exclam> <equal> : "≠" U2260 <Multi_key> <greater> <equal> : "≥" U2265 <Multi_key> <less> <equal> : "≤" U2264 <Multi_key> <minus> <colon> : "÷" division <Multi_key> <parenleft> <parenleft> : "⟮" U27EE <Multi_key> <parenright> <parenright> : "⟯" U27EF <Multi_key> <period> <period> : "⋅" U22C5 <Multi_key> <plus> <minus> : "±" plusminus <Multi_key> <x> <x> : "×" multiply # Typographical Symbols <Multi_key> <greater> <greater> : "»" U00BB <Multi_key> <less> <less> : "«" U00AB <Multi_key> <less> <minus> : "←" U2190 <Multi_key> <minus> <greater> : "→" U2192 <Multi_key> <minus> <m> : "—" U2014 <Multi_key> <minus> <n> : "–" U2013 <Multi_key> <o> <c> : "℃" U2103 <Multi_key> <o> <f> : "℉" U2109 <Multi_key> <o> <o> : "°" U00B0 # Latin Alphabet — Acute <Multi_key> <a> <apostrophe> : "á" aacute <Multi_key> <A> <apostrophe> : "Á" Aacute <Multi_key> <C> <apostrophe> : "Ć" U0106 <Multi_key> <c> <apostrophe> : "ć" U0107 <Multi_key> <e> <apostrophe> : "é" eacute <Multi_key> <E> <apostrophe> : "É" Eacute <Multi_key> <G> <apostrophe> : "Ǵ" U01F4 <Multi_key> <g> <apostrophe> : "ǵ" U01F5 <Multi_key> <i> <apostrophe> : "í" iacute <Multi_key> <I> <apostrophe> : "Í" Iacute <Multi_key> <K> <apostrophe> : "Ḱ" U1E30 <Multi_key> <k> <apostrophe> : "ḱ" U1E31 <Multi_key> <L> <apostrophe> : "Ĺ" U0139 <Multi_key> <l> <apostrophe> : "ĺ" U013A <Multi_key> <M> <apostrophe> : "Ḿ" U1E3E <Multi_key> <m> <apostrophe> : "ḿ" U1E3F <Multi_key> <N> <apostrophe> : "Ń" U0143 <Multi_key> <n> <apostrophe> : "ń" U0144 <Multi_key> <o> <apostrophe> : "ó" oacute <Multi_key> <O> <apostrophe> : "Ó" Oacute <Multi_key> <P> <apostrophe> : "Ṕ" U1E54 <Multi_key> <p> <apostrophe> : "ṕ" U1E55 <Multi_key> <R> <apostrophe> : "Ŕ" U0154 <Multi_key> <r> <apostrophe> : "ŕ" U0155 <Multi_key> <S> <apostrophe> : "Ś" U015A <Multi_key> <s> <apostrophe> : "ś" U015B <Multi_key> <u> <apostrophe> : "ú" uacute <Multi_key> <U> <apostrophe> : "Ú" Uacute <Multi_key> <W> <apostrophe> : "Ẃ" U1E82 <Multi_key> <w> <apostrophe> : "ẃ" U1E83 <Multi_key> <y> <apostrophe> : "ý" yacute <Multi_key> <Y> <apostrophe> : "Ý" Yacute <Multi_key> <Z> <apostrophe> : "Ź" U0179 <Multi_key> <z> <apostrophe> : "ź" U017A # Latin Alphabet — Breve <Multi_key> <a> <u> : "ă" abreve <Multi_key> <A> <u> : "Ă" Abreve <Multi_key> <E> <u> : "Ĕ" U0114 <Multi_key> <e> <u> : "ĕ" U0115 <Multi_key> <g> <u> : "ğ" gbreve <Multi_key> <G> <u> : "Ğ" Gbreve <Multi_key> <i> <u> : "ĭ" ibreve <Multi_key> <I> <u> : "Ĭ" Ibreve <Multi_key> <O> <u> : "Ŏ" U014E <Multi_key> <o> <u> : "ŏ" U014F <Multi_key> <u> <u> : "ŭ" ubreve <Multi_key> <U> <u> : "Ŭ" Ubreve # Latin Alphabet — Caron <Multi_key> <A> <v> : "Ǎ" U01CD <Multi_key> <a> <v> : "ǎ" U01CE <Multi_key> <c> <v> : "č" ccaron <Multi_key> <C> <v> : "Č" Ccaron <Multi_key> <d> <v> : "ď" dcaron <Multi_key> <D> <v> : "Ď" Dcaron <Multi_key> <e> <v> : "ě" ecaron <Multi_key> <E> <v> : "Ě" Ecaron <Multi_key> <g> <v> : "ǧ" gcaron <Multi_key> <G> <v> : "Ǧ" Gcaron <Multi_key> <H> <v> : "Ȟ" U021E <Multi_key> <h> <v> : "ȟ" U021F <Multi_key> <I> <v> : "Ǐ" U01CF <Multi_key> <i> <v> : "ǐ" U01D0 <Multi_key> <j> <v> : "ǰ" U01F0 # NOTE: No uppercase in Unicode <Multi_key> <K> <v> : "Ǩ" U01E8 <Multi_key> <k> <v> : "ǩ" U01E9 <Multi_key> <l> <v> : "ľ" lcaron <Multi_key> <L> <v> : "Ľ" Lcaron <Multi_key> <n> <v> : "ň" ncaron <Multi_key> <N> <v> : "Ň" Ncaron <Multi_key> <o> <v> : "ǒ" ocaron <Multi_key> <O> <v> : "Ǒ" Ocaron <Multi_key> <r> <v> : "ř" rcaron <Multi_key> <R> <v> : "Ř" Rcaron <Multi_key> <s> <v> : "š" scaron <Multi_key> <S> <v> : "Š" Scaron <Multi_key> <t> <v> : "ť" tcaron <Multi_key> <T> <v> : "Ť" Tcaron <Multi_key> <U> <v> : "Ǔ" U01D3 <Multi_key> <u> <v> : "ǔ" U01D4 <Multi_key> <z> <v> : "ž" zcaron <Multi_key> <Z> <v> : "Ž" Zcaron # Latin Alphabet — Cedilla <Multi_key> <c> <comma> : "ç" ccedilla <Multi_key> <C> <comma> : "Ç" ccedilla <Multi_key> <D> <comma> : "Ḑ" U1E10 <Multi_key> <d> <comma> : "ḑ" U1E11 <Multi_key> <E> <comma> : "Ȩ" U0228 <Multi_key> <e> <comma> : "ȩ" U0229 <Multi_key> <g> <comma> : "ģ" U0121 <Multi_key> <G> <comma> : "Ģ" U0122 <Multi_key> <H> <comma> : "Ḩ" U1E28 <Multi_key> <h> <comma> : "ḩ" U1E29 <Multi_key> <K> <comma> : "Ķ" U0136 <Multi_key> <k> <comma> : "ķ" U0137 <Multi_key> <L> <comma> : "Ļ" U012C <Multi_key> <l> <comma> : "ļ" U013C <Multi_key> <N> <comma> : "Ņ" U0145 <Multi_key> <n> <comma> : "ņ" U0146 <Multi_key> <R> <comma> : "Ŗ" U0156 <Multi_key> <r> <comma> : "ŗ" U0157 <Multi_key> <S> <comma> : "Ş" U015E <Multi_key> <s> <comma> : "ş" U015F <Multi_key> <T> <comma> : "Ţ" U0162 <Multi_key> <t> <comma> : "ţ" U0163 # Latin Alphabet - Circumflex <Multi_key> <a> <asciicircum> : "â" acircumflex <Multi_key> <A> <asciicircum> : "Â" Acircumflex <Multi_key> <C> <asciicircum> : "Ĉ" U0108 <Multi_key> <c> <asciicircum> : "ĉ" U0109 <Multi_key> <e> <asciicircum> : "ê" ecircumflex <Multi_key> <E> <asciicircum> : "Ê" Ecircumflex <Multi_key> <g> <asciicircum> : "Ĝ" U011C <Multi_key> <g> <asciicircum> : "ĝ" U011D <Multi_key> <H> <asciicircum> : "Ĥ" U0124 <Multi_key> <h> <asciicircum> : "ĥ" U0125 <Multi_key> <i> <asciicircum> : "î" icircumflex <Multi_key> <I> <asciicircum> : "Î" Icircumflex <Multi_key> <J> <asciicircum> : "Ĵ" U0134 <Multi_key> <j> <asciicircum> : "ĵ" U0135 <Multi_key> <o> <asciicircum> : "ô" ocircumflex <Multi_key> <O> <asciicircum> : "Ô" Ocircumflex <Multi_key> <S> <asciicircum> : "Ŝ" U015C <Multi_key> <s> <asciicircum> : "ŝ" U015D <Multi_key> <u> <asciicircum> : "û" ucircumflex <Multi_key> <U> <asciicircum> : "Û" Ucircumflex <Multi_key> <W> <asciicircum> : "Ŵ" U0174 <Multi_key> <w> <asciicircum> : "ŵ" U0175 <Multi_key> <Y> <asciicircum> : "Ŷ" U0176 <Multi_key> <y> <asciicircum> : "ŷ" U0177 <Multi_key> <Z> <asciicircum> : "Ẑ" U1E90 <Multi_key> <z> <asciicircum> : "ẑ" U1E91 # Latin Alphabet — Dot # TODO # Latin Alphabet — Diaeresis <Multi_key> <a> <colon> : "ä" adiaeresis <Multi_key> <A> <colon> : "Ä" Adiaeresis <Multi_key> <e> <colon> : "ë" adiaeresis <Multi_key> <E> <colon> : "Ë" Ediaeresis <Multi_key> <H> <colon> : "Ḧ" U1E26 <Multi_key> <h> <colon> : "ḧ" U1E27 <Multi_key> <i> <colon> : "ï" adiaeresis <Multi_key> <I> <colon> : "Ï" Idiaeresis <Multi_key> <o> <colon> : "ö" adiaeresis <Multi_key> <O> <colon> : "Ö" Odiaeresis <Multi_key> <t> <colon> : "ẗ" U1E97 # NOTE: No uppercase in Unicode <Multi_key> <u> <colon> : "ü" adiaeresis <Multi_key> <U> <colon> : "Ü" Udiaeresis <Multi_key> <W> <colon> : "Ẅ" U1E84 <Multi_key> <w> <colon> : "ẅ" U1E85 <Multi_key> <X> <colon> : "Ẍ" U1E8C <Multi_key> <x> <colon> : "ẍ" U1E8D <Multi_key> <Y> <colon> : "Ÿ" U0178 <Multi_key> <y> <colon> : "ÿ" ydiaeresis # Latin Alphabet — Double-Acute <Multi_key> <o> <quotedbl> : "ő" odoubleacute <Multi_key> <O> <quotedbl> : "Ő" Odoubleacute <Multi_key> <u> <quotedbl> : "ű" udoubleacute <Multi_key> <U> <quotedbl> : "Ű" Udoubleacute # Latin Alphabet — Grave # TODO # Latin Alphabet — Macron # TODO # Latin Alphabet — Ogonek <Multi_key> <a> <semicolon> : "ą" aogonek <Multi_key> <A> <semicolon> : "Ą" Aogonek <Multi_key> <e> <semicolon> : "ę" eogonek <Multi_key> <E> <semicolon> : "Ę" Eogonek <Multi_key> <i> <semicolon> : "į" iogonek <Multi_key> <I> <semicolon> : "Į" Iogonek <Multi_key> <o> <semicolon> : "ǫ" U01EB <Multi_key> <O> <semicolon> : "Ǫ" U01EA <Multi_key> <u> <semicolon> : "ų" uogonek <Multi_key> <U> <semicolon> : "Ų" Uogonek # Latin Alphabet — Ring <Multi_key> <a> <o> : "å" aring <Multi_key> <A> <o> : "Å" Aring <Multi_key> <U> <o> : "Ů" U016E <Multi_key> <u> <o> : "ů" U016F <Multi_key> <w> <o> : "ẘ" U1E98 # NOTE: No uppercase in Unicode <Multi_key> <y> <o> : "ẙ" U1E99 # NOTE: No uppercase in Unicode # Latin Alphabet — Slash & Strikethrough # NOTE: Eth and D-Stroke conflict, but ð is more curvy than đ, so use # slash for the former and minus for the latter. <Multi_key> <d> <minus> : "đ" dstroke <Multi_key> <D> <minus> : "Đ" Dstroke <Multi_key> <d> <slash> : "ð" eth <Multi_key> <D> <slash> : "Ð" ETH <Multi_key> <h> <slash> : "ħ" U0126 <Multi_key> <H> <slash> : "Ħ" U0126 <Multi_key> <L> <slash> : "Ł" U0141 <Multi_key> <l> <slash> : "ł" U0142 <Multi_key> <o> <slash> : "ø" oslash <Multi_key> <O> <slash> : "Ø" Oslash # Latin Alphabet — Tilde # TODO # Latin Alphabet — Ligatures & Multiglyphs <Multi_key> <a> <e> : "æ" ae <Multi_key> <A> <E> : "Æ" AE <Multi_key> <D> <Z> : "DŽ" U01C4 <Multi_key> <D> <z> : "Dž" U01C5 <Multi_key> <d> <z> : "dž" U01C6 <Multi_key> <exclam> <exclam> : "¡" exclamdown <Multi_key> <exclam> <question> : "‽" U203D <Multi_key> <f> <f> <f> : "ff" UFB00 <Multi_key> <f> <f> <i> : "ffi" UFB03 <Multi_key> <f> <f> <l> : "ffl" UFB04 <Multi_key> <f> <i> : "fi" UFB01 <Multi_key> <f> <l> : "fl" UFB02 <Multi_key> <I> <J> : "IJ" U0132 <Multi_key> <i> <j> : "ij" U0133 <Multi_key> <L> <J> : "LJ" U01C7 <Multi_key> <L> <j> : "Lj" U01C8 <Multi_key> <l> <j> : "lj" U01C9 <Multi_key> <N> <J> : "NJ" U01CA <Multi_key> <N> <j> : "Nj" U01CB <Multi_key> <n> <j> : "nj" U01CC <Multi_key> <N> <o> : "№" numerosign <Multi_key> <o> <e> : "œ" oe <Multi_key> <O> <E> : "Œ" OE <Multi_key> <question> <exclam> : "⸘" U2E18 <Multi_key> <question> <question> : "¿" questiondown <Multi_key> <s> <l> : "ſ" U017F # [s]-[l]ong <Multi_key> <s> <t> : "st" UFB06 # Latin Alphabet — Extended <Multi_key> <s> <s> : "ß" ssharp # [s]harp [s] <Multi_key> <S> <S> : "ẞ" U1E9E # [S]HARP [S] <Multi_key> <t> <h> : "þ" thorn # [t][h]orn <Multi_key> <T> <H> : "Þ" THORN # [T][H]ORN # Greek Alphabet <Multi_key> <A> <asterisk> : "Α" U0391 <Multi_key> <a> <asterisk> : "α" U03B1 <Multi_key> <B> <asterisk> : "Β" U0392 <Multi_key> <b> <asterisk> : "β" U03B2 <Multi_key> <D> <asterisk> : "Δ" U0394 <Multi_key> <d> <asterisk> : "δ" U03B4 <Multi_key> <E> <asterisk> : "Ε" U0395 <Multi_key> <e> <asterisk> : "ε" U03B5 <Multi_key> <F> <asterisk> : "Φ" U03A6 <Multi_key> <f> <asterisk> : "φ" U03C6 <Multi_key> <G> <asterisk> : "Γ" U0393 <Multi_key> <g> <asterisk> : "γ" U03B3 <Multi_key> <H> <asterisk> : "Η" U0397 <Multi_key> <h> <asterisk> : "η" U03B7 <Multi_key> <I> <asterisk> : "Ι" U0399 <Multi_key> <i> <asterisk> : "ι" U03B9 <Multi_key> <J> <asterisk> : "Θ" U0398 <Multi_key> <j> <asterisk> : "θ" U03B8 <Multi_key> <K> <asterisk> : "Κ" U039A <Multi_key> <k> <asterisk> : "κ" U03BA <Multi_key> <L> <asterisk> : "Λ" U039B <Multi_key> <l> <asterisk> : "λ" U03BB <Multi_key> <M> <asterisk> : "Μ" U039C <Multi_key> <m> <asterisk> : "μ" U03BC <Multi_key> <N> <asterisk> : "Ν" U039D <Multi_key> <n> <asterisk> : "ν" U03BD <Multi_key> <O> <asterisk> : "Ο" U039F <Multi_key> <o> <asterisk> : "ο" U03BF <Multi_key> <P> <asterisk> : "Π" U03A0 <Multi_key> <p> <asterisk> : "π" U03C0 <Multi_key> <Q> <asterisk> : "Χ" U03A7 <Multi_key> <q> <asterisk> : "χ" U03C7 <Multi_key> <R> <asterisk> : "Ρ" U03A1 <Multi_key> <r> <asterisk> : "ρ" U03C1 <Multi_key> <S> <asterisk> : "Σ" U03A3 <Multi_key> <s> <asterisk> : "σ" U03C3 <Multi_key> <T> <asterisk> : "Τ" U03A4 <Multi_key> <t> <asterisk> : "τ" U03C4 <Multi_key> <U> <asterisk> : "Υ" U03A5 <Multi_key> <u> <asterisk> : "υ" U03C5 <Multi_key> <W> <asterisk> : "Ω" U03A9 <Multi_key> <w> <asterisk> : "ω" U03C9 <Multi_key> <X> <asterisk> : "Ξ" U039E <Multi_key> <x> <asterisk> : "ξ" U03BE <Multi_key> <Y> <asterisk> : "Ψ" U03A8 <Multi_key> <y> <asterisk> : "ψ" U03C8 <Multi_key> <Z> <asterisk> : "Ζ" U0396 <Multi_key> <z> <asterisk> : "ζ" U03B6 <Multi_key> <asterisk> <s> : "ς" U03C2 # NOTE: Special case for final sigma # Superscript <Multi_key> <asciicircum> <0> : "⁰" U2070 <Multi_key> <asciicircum> <1> : "¹" U00B9 <Multi_key> <asciicircum> <2> : "²" U00B2 <Multi_key> <asciicircum> <3> : "³" U00B3 <Multi_key> <asciicircum> <4> : "⁴" U2074 <Multi_key> <asciicircum> <5> : "⁵" U2075 <Multi_key> <asciicircum> <6> : "⁶" U2076 <Multi_key> <asciicircum> <7> : "⁷" U2077 <Multi_key> <asciicircum> <8> : "⁸" U2078 <Multi_key> <asciicircum> <9> : "⁹" U2079 <Multi_key> <asciicircum> <i> : "ⁱ" U2071 <Multi_key> <asciicircum> <minus> : "⁻" U207B <Multi_key> <asciicircum> <n> : "ⁿ" U207F <Multi_key> <asciicircum> <parenleft> : "⁽" U207D <Multi_key> <asciicircum> <parenright> : "⁾" U207E <Multi_key> <asciicircum> <plus> : "⁺" U207A # Subscript <Multi_key> <underscore> <0> : "₀" U2080 <Multi_key> <underscore> <1> : "₁" U2081 <Multi_key> <underscore> <2> : "₂" U2082 <Multi_key> <underscore> <3> : "₃" U2083 <Multi_key> <underscore> <4> : "₄" U2084 <Multi_key> <underscore> <5> : "₅" U2085 <Multi_key> <underscore> <6> : "₆" U2086 <Multi_key> <underscore> <7> : "₇" U2087 <Multi_key> <underscore> <8> : "₈" U2088 <Multi_key> <underscore> <9> : "₉" U2089 <Multi_key> <underscore> <a> : "ₐ" U2090 <Multi_key> <underscore> <e> : "ₑ" U2090 <Multi_key> <underscore> <h> : "ₕ" U2095 <Multi_key> <underscore> <i> : "ᵢ" U1D62 <Multi_key> <underscore> <j> : "ⱼ" U2C7C <Multi_key> <underscore> <k> : "ₖ" U2089 <Multi_key> <underscore> <l> : "ₗ" U2097 <Multi_key> <underscore> <minus> : "₋" U2089 <Multi_key> <underscore> <m> : "ₘ" U2098 <Multi_key> <underscore> <n> : "ₙ" U2099 <Multi_key> <underscore> <o> : "ₒ" U2092 <Multi_key> <underscore> <parenleft> : "₍" U2089 <Multi_key> <underscore> <parenright> : "₎" U2089 <Multi_key> <underscore> <plus> : "₊" U2089 <Multi_key> <underscore> <p> : "ₚ" U209A <Multi_key> <underscore> <r> : "ᵣ" U1D63 <Multi_key> <underscore> <s> : "ₛ" U209B <Multi_key> <underscore> <t> : "ₜ" U209C <Multi_key> <underscore> <u> : "ᵤ" U1D64 <Multi_key> <underscore> <v> : "ᵥ" U1D65 <Multi_key> <underscore> <x> : "ₓ" U2093