A more general solution would be to set up an .Xcompose
file for custom compose key sequences.
This is what I use:
include "%L"
# SINGLE ARROWS
<Multi_key> <Left> <Left> : "←" leftarrow # LEFTWARDS ARROW
<Multi_key> <Up> <Up> : "↑" uparrow # UPWARDS ARROW
<Multi_key> <Right> <Right> : "→" rightarrow # RIGHTWARDS ARROW
<Multi_key> <Down> <Down> : "↓" downarrow # DOWNWARDS ARROW
<Multi_key> <Left> <Right> : "↔" U2194 # LEFT RIGHT ARROW (kragen's)
<Multi_key> <Right> <Left> : "↔" U2194 # LEFT RIGHT ARROW (kragen's)
<Multi_key> <Right> <ampersand> <Left> : "⥂" U21F5 #
<Multi_key> <Left> <ampersand> <Right> : "⥄" U21F5 #
<Multi_key> <Left> <equal> <Right> : "⇌" U21F5 #
<Multi_key> <Right> <equal> <Left> : "⇌" U21F5 #
<Multi_key> <Up> <Down> : "↕" U2195 # UP DOWN ARROW (kragen's)
<Multi_key> <Up> <ampersand> <Down> : "⇵" U21F5 #
<Multi_key> <Down> <ampersand> <Up> : "⇵" U21F5 #
<Multi_key> <Down> <ampersand> <Down> : "⇊" U21F5 #
<Multi_key> <Up> <ampersand> <Up> : "⇈" U21F5 #
# DOUBLE ARROWS
<Multi_key> <equal> <Right> <Right> : "⇒" U21D2 # RIGHTWARDS DOUBLE ARROW
<Multi_key> <equal> <greater> : "⇒" U21D2 # RIGHTWARDS DOUBLE ARROW
<Multi_key> <equal> <Left> <Left> : "⇐" U21D0 # LEFTWARDS DOUBLE ARROW
<Multi_key> <equal> <less> : "⇐" U21D0 # RIGHTWARDS DOUBLE ARROW
<Multi_key> <equal> <Left> <Right> : "⇔" U21D4 # LEFT RIGHT DOUBLE ARROW
<Multi_key> <equal> <Right> <Left> : "⇔" U21D4 # LEFT RIGHT DOUBLE ARROW
<Multi_key> <equal> <Up> <Up> : "⇑" U21D1 # UPWARDS DOUBLE ARROW
<Multi_key> <equal> <Down> <Down> : "⇓" U21D3 # DOWNWARDS DOUBLE ARROW
<Multi_key> <equal> <Up> <Down> : "⇕" U21D5 # UP DOWN DOUBLE ARROW
# SPECIAL ARROWS
<Multi_key> <Left> <o> : "⟲" U27F2 # ANTICLOCKWISE GAPPED CIRCLE ARROW
<Multi_key> <Right> <o> : "⟳" U27F3 # CLOCKWISE GAPPED CIRCLE ARROW
<Multi_key> <Left> <c> : "↺" U21BA # ANTICLOCKWISE OPEN CIRCLE ARROW
<Multi_key> <Right> <c> : "↻" U21BB # CLOCKWISE OPEN CIRCLE ARROW
<Multi_key> <Left> <w> : "⇜" U21DC # LEFTWARDS SQUIGGLE ARROW
<Multi_key> <Right> <w> : "⇝" U21DD # RIGHTWARDS SQUIGGLE ARROW
<Multi_key> <Left> <bar> : "⥖" U21E4 #
<Multi_key> <Right> <bar> : "⥗" U21E5 #
<Multi_key> <Right> <minus> : "⤼" U21E2 # RIGHTWARDS DASHED ARROW
<Multi_key> <Right> <plus> : "⥅" U21E2 # RIGHTWARDS DASHED ARROW
<Multi_key> <equal> <slash> <greater> : "⇏" U21D2 # RIGHTWARDS DOUBLE ARROW
<Multi_key> <equal> <slash> <less> : "⇍" U21D0 # LEFTWARDS DOUBLE ARROW
<Multi_key> <Down> <minus> <Right> : "↪" U27F2 #
<Multi_key> <Down> <equal> <Right> : "➥" U27F2 #
# MATHEMATICAL OPERATORS AND SYMBOLS
<Multi_key> <exclam> <equal> : "≠" U2260 # NOT EQUAL TO
<Multi_key> <a> <q> <u> : "≙" U2260 # NOT EQUAL TO
<Multi_key> <a> <p> <r> : "≈" U2248 # ALMOST EQUAL TO
<Multi_key> <less> <equal> : "≤" U2264 # LESS-THAN OR EQUAL TO
<Multi_key> <greater> <equal> : "≥" U2265 # GREATER-THAN OR EQUAL TO
<Multi_key> <plus> <less> : "≪" U226A # MUCH LESS-THAN
<Multi_key> <plus> <greater> : "≫" U226B # MUCH GREATER-THAN
<Multi_key> <equal> <d> <e> <f> : "≝" U225D # EQUAL TO BY DEFINITION
<Multi_key> <equal> <question> : "≟" U225f # QUESTIONED EQUAL TO
<Multi_key> <8> <8> : "∞" U221E # INFINITY
<Multi_key> <o> <1> : "·" periodcentered # MIDDLE DOT
<Multi_key> <o> <2> : "•" U2022 # BULLET
<Multi_key> <o> <3> : "⚫" U2022 # BULLET
<Multi_key> <parenleft> <plus> <parenright> : "⊕" U2295 # CIRCLED PLUS
<Multi_key> <parenleft> <minus> <parenright> : "⊖" U2296 # CIRCLED MINUS
<Multi_key> <1> <3> : "⅓" U2153 # VULGAR FRACTION ONE THIRD
<Multi_key> <2> <3> : "⅔" U2154 # VULGAR FRACTION TWO THIRDS
<Multi_key> <1> <5> : "⅕" U2155 # VULGAR FRACTION ONE FIFTH
<Multi_key> <2> <5> : "⅖" U2156 # VULGAR FRACTION TWO FIFTHS
<Multi_key> <3> <5> : "⅗" U2157 # VULGAR FRACTION THREE FIFTHS
<Multi_key> <4> <5> : "⅘" U2158 # VULGAR FRACTION FOUR FIFTHS
<Multi_key> <1> <6> : "⅙" U2159 # VULGAR FRACTION ONE SIXTH
<Multi_key> <5> <6> : "⅚" U215A # VULGAR FRACTION FIVE SIXTHS
<Multi_key> <1> <8> : "⅛" U215B # VULGAR FRACTION ONE EIGHTH
<Multi_key> <3> <8> : "⅜" U215C # VULGAR FRACTION THREE EIGHTHS
<Multi_key> <5> <8> : "⅝" U215D # VULGAR FRACTION FIVE EIGHTHS
<Multi_key> <7> <8> : "⅞" U215E # VULGAR FRACTION SEVEN EIGHTHS
# MISC SYMBOLS
<Multi_key> <colon> <parenright> : "☺" U263A # WHITE SMILING FACE
<Multi_key> <colon> <parenleft> : "☹" U2639 # WHITE FROWNING FACE
<Multi_key> <y> <y> <1> : "✓" U2713 # CHECK MARK
<Multi_key> <y> <y> <2> : "✔" U2714 # HEAVY CHECK MARK
<Multi_key> <n> <n> <1> : "✗" U2717 # BALLOT X
<Multi_key> <n> <n> <2> : "✘" U2718 # HEAVY BALLOT X
<Multi_key> <r> <a> <d> : "☢" U2622 # RADIOACTIVE SIGN
<Multi_key> <b> <h> : "☣" U2623 # BIOHAZARD SIGN
<Multi_key> <z> <a> <p> <1> : "⚡" U26A1 # HIGH VOLTAGE SIGN
<Multi_key> <slash> <slash> <slash> : "↯" U26A1 #
<Multi_key> <z> <a> <p> <2> : "ϟ" U26A1 #
<Multi_key> <m> <e> <d> : "⚕" U2695 # STAFF OF AESCULAPIUS
<Multi_key> <o> <minus> <plus> : "♀" U2640 # FEMALE SIGN
<Multi_key> <o> <minus> <greater> : "♂" U2642 # MALE SIGN
<Multi_key> <t> <r> <a> <n> <s> : "⚥" U26A5 # MALE AND FEMALE SIGN
<Multi_key> <s> <u> <n> : "☉" U2609 # SUN (Sunday)
<Multi_key> <g> <a> <y> : "⚣" U26A3 # DOUBLED MALE SIGN
<Multi_key> <l> <e> <s> <b> <i> <a> <n> : "⚢" U26A2 # DOUBLED FEMALE SIGN
<Multi_key> <h> <e> <t> <e> <r> <o> : "⚤" U26A4 # INTERLOCKED FEMALE AND MALE SIGN
<Multi_key> <O> <X> : "☠" U2620 # SKULL AND CROSSBONES
<Multi_key> <numbersign> <G> : "𝄞" U0001d11e # MUSICAL SYMBOL G CLEF
<Multi_key> <p> <p> <p> : "Ⓟ" U2718 #
<Multi_key> <k> <k> <k> : "Ⓚ" U2718 #
<Multi_key> <t> <t> <t> : "Ⓣ" U2718 #
<Multi_key> <s> <s> <s> : "Ⓢ" U2718 #
<Multi_key> <d> <d> <d> : "Ⓓ" U2718 #
<Multi_key> <e> <e> <e> : "Ⓔ" U2718 #
<Multi_key> <minus> <minus> : "−" U2212 #
(Sorry for the bad formatting, I should really stop using tabs)