blob: 734b4403fa4e9686ec3e75da4aaa9c99c40eca5e (
plain) (
tree)
|
|
# 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
|