On [[Linux]] it is possible to set a key as the "Compose Key", replace its usual functionality. Typically this is the right alt key, but some people use caps lock for it. This allows you to type characters that do not exist in your standard keyboard layout. ``` àãåâáäāăąč …¡¿»«¨ æœß∞ ♩♪♫♬♮♭♯ ¢¤€£¥ °×÷±ªºµ¬¶§ ½⅓¼⅕ ☺☹ ``` # Tables | **Symbol** | **Key 1** | **Key 2** | **Descri­ption** | | ---------- | --------- | ------------ | --------------------- | | ´ | ' | ' | Acute accent | | `|` | [space] | Grave accent | | | ˘ | ( | [space] | Breve | | ˇ | < | [space] | Caron | | ¸ | , | , | Cedilla | | ^ | > | [space] | Circumflex | | ¨ | " | " | Diaeresis | | … | . | . | Ellipsis | | ¡ | ! | ! | Inverted exclam­ation | | ¿ | ? | ? | Inverted question | | | [space] | [space] | Non-br­eaking space | | » | > | > | Right double arrow | | « | < | < | Left double arrow | | **Symbol** | **Key 1** | **Key 2** | **Descri­ption** | | ---------- | --------- | --------- | ----------------- | | ° | o | o | Degree | | ÷ | : | - | Division | | × | x | x | Multip­lic­ation | | ª | a | _ | Feminine ordinal | | º | o | _ | Masculine ordinal | | µ | / | u | Micro | | ¬ | , | - | Not | | ¶ | p | ! | Pilcrow | | ± | + | - | Plus/minus | | § | o | s | Section | | ⁰ | ^ | 0 | Supers­cript 0 | | ¹ | ^ | 1 | Supers­cript 1 | | ² | ^ | 2 | Supers­cript 2 | | ³ | ^ | 3 | Supers­cript 3 | | **Char** | **Key 1** | **Key 2** | **Descri­ption** | | -------- | --------- | --------- | ---------------- | | æ | a | e | ae ligature | | œ | o | e | oe ligature | | Æ | A | E | AE ligature | | Œ | O | E | OE ligature | | ß | s | s | German ß | | ∞ | 8 | 8 | Massac­husett ꝏ | | þ | t | h | Thorn | | ð | d | h | Eth | | **Symbol** | **Key 1** | **Key 2** | **Descri­ption** | | ---------- | --------- | --------- | ---------------- | | ¢ | \| (bar) | C | Cent | | ¤ | O | X | Currency | | € | C | = | Euro | | £ | L | = | Pound | | ¥ | Y | - | Yen | | **Symbol** | **Key 1** | **Key 2** | **Descri­ption** | | ---------- | --------- | --------- | ---------------- | | ♩ | # | q | Quarter | | ♪ | # | e | Eighth | | ♫ | # | E | Beamed eighth | | ♬ | # | S | Beamed sixteenth | | ♭ | # | b | Flat | | ♮ | # | f | Natural | | ♯ | # | # | Sharp | | **Char** | **Key 1** | **Key 2** | **Descri­ption** | | -------- | --------- | --------- | ---------------- | | ½ | 1 | 2 | One-half | | ⅓ | 1 | 3 | One-third | | ⅔ | 2 | 3 | Two-thirds | | ¼ | 1 | 4 | One-qu­arter | | ¾ | 3 | 4 | Three-­qua­rters | | ⅕ | 1 | 5 | One-fifth | | ⅖ | 2 | 5 | Two-fifths | | ⅗ | 3 | 5 | Three-­fifths | | ⅘ | 4 | 5 | Four-f­ifths | | ⅙ | 1 | 6 | One-sixth | | ⅛ | 1 | 8 | One-eighth | | ⅜ | 3 | 8 | Three-­eighths | | ⅝ | 5 | 8 | Five-e­ighths | | ⅞ | 7 | 8 | Seven-­eighths | | **Symbol** | **Key 1** | **Key 2** | **Descri­ption** | | ---------- | --------- | --------- | ---------------- | | © | o | c | Copyright | | ® | o | r | Registered | | ™ | t | m | Trademark | # Full List A searchable paginated list can be generated in Bash using: ```sh less "/usr/share/X11/locale/$(grep -m1 "${LANG%.*}.UTF-8\quot; /usr/share/X11/locale/locale.dir | cut -d/ -f1)/Compose" ``` This doesn't seem to take into account the user's `.XCompose` file? # Resources - Shared community `.XCompose` file: https://github.com/kragen/xcompose - Xorg default configuration: https://cgit.freedesktop.org/xorg/lib/libX11/tree/nls/en_US.UTF-8/Compose.pre - Cheatsheet, many of them work, but some do not match my configuration: https://cheatography.com/davechild/cheat-sheets/ubuntu-compose-key-combinations/ - https://www.linuxquestions.org/questions/linux-newbie-8/full-list-of-entering-special-characters-with-compose-key-922021/ - https://askubuntu.com/questions/34932/where-can-i-find-the-full-list-of-compose-combinations-for-my-locale