Skip to main content
Linux Reference Verified for GNOME 40+, KDE Plasma 5/6, and Universal XKB

Linux Keyboard Shortcuts for Special Characters

Find verified ways to type Unicode characters, accents, symbols and emoji on Linux using code-point input, Compose sequences, character tools and environment-specific methods.

Select Your Linux Desktop / Toolkit Context:
Tailors shortcut columns and input recommendations to your desktop environment
Showing verified input methods for GNOME 40+ & GTK (Ctrl+Shift+U hex entry, Ctrl+; emoji, and Compose sequences).

6 Ways to Type Special Characters in Linux

Choose the most efficient input technique for your environment, keyboard layout, and writing needs.

GNOME/GTK Built-in Fastest for any codepoint

Unicode Code-Point Entry

Scope: GNOME, GTK Applications & IBus

Press Ctrl+Shift+U, release, type the hexadecimal code point, and press Enter or Space to insert any Unicode character.

Requirements: Application must use GTK or IBus input context. Not universal in raw terminal emulators or pure Qt without IBus.
Configurable Key Fastest for accents & common symbols

Compose Key Sequences

Scope: System-Wide (X11 & Wayland XKB)

Press your assigned Compose key, then press mnemonic keys sequentially (e.g. Compose → ' → e = é).

Requirements: Requires one-time setup in Settings (assigning Right Alt, Caps Lock, etc. as Compose key).
Built-in Tool Visual & Searchable

Desktop Character Map

Scope: Desktop GUI

Browse, search by English name, and copy any Unicode symbol or emoji with a visual GUI viewer.

Requirements: Pre-installed in standard desktop installations (GNOME Characters or KCharSelect).
Desktop Shortcut Instant Emoji Palette

Desktop Emoji Palette

Scope: GNOME Shell & KDE Plasma

Open the native emoji picker with Ctrl+; (GNOME) or Meta+. (KDE Plasma) to search and insert emoji.

Requirements: Supported in native GTK text inputs or KDE Plasma desktop widgets.
Layout Dependent Direct Hardware Layer

Keyboard Layouts & AltGr

Scope: Active Keyboard Layout

Use Level 3 AltGr combinations or dead keys available on international layouts (e.g. US International, UK English).

Requirements: Must switch to an international or dead-key layout in Keyboard Settings.
Input Daemon Phonetic Candidate Engine

Input Frameworks (IBus / Fcitx5)

Scope: Complex Writing Systems

Compose complex text (Arabic, Chinese, Japanese, Korean, Indic) via phonetic typing and candidate selection.

Requirements: Requires installing appropriate language engine packages (e.g. ibus-libpinyin, ibus-mozc, fcitx5).

Search Linux Special Characters

Instant search across glyph, Unicode name, common alias, or U+ code point

Linux Unicode Code-Point Input (Ctrl + Shift + U)

Type any Unicode character in GNOME and GTK-based applications using its hexadecimal code point.

The 4-Step Input Sequence

1
Press Ctrl + Shift + U

Press and hold Ctrl and Shift, then press U, and release all keys.

Ctrl + Shift + U
2
Observe the Underlined "u"

An underlined letter u will appear at your cursor, signaling that hexadecimal capture mode is active.

3
Type the Hexadecimal Code

Type the hex digits without any leading "U+". For example, type 221e for infinity (∞) or 00a9 for copyright (©).

4
Commit with Enter or Space

Press Enter or Space. The underlined text instantly transforms into your desired symbol.

Working Example: Infinity (U+221E)

Infinity Sign
Ctrl+Shift+U u
u221e
Enter
Supplementary Code Points (> U+FFFF)

Ctrl+Shift+U is not limited to 4 digits. It fully supports 5-digit and 6-digit code points in supplementary planes, such as musical symbols (1D11E for 𝄞) and emoji (1F600 for 😀).

Scope & Terminal Limitations

Ctrl+Shift+U is implemented by GtkIMContextSimple and IBus. While standard in GNOME, Firefox, and LibreOffice, it is not universal across all terminals (e.g. Alacritty, Kitty) or pure Qt applications. In those environments, use Compose keys or copy-paste.

The Linux Compose Key: Setup & How It Works

Type accents, fractions, and symbols using intuitive two- and three-key sequential chords.

Important: Most Keyboards Have No Physical Compose Key

Standard PC keyboards do not have a dedicated key labeled "Compose". To use Compose sequences, you must first assign an existing physical key (such as Right Alt / AltGr, Caps Lock, or Right Ctrl) in your desktop settings.

GNOME (Ubuntu, Fedora)

Enable in GNOME Settings

  1. Open Settings → click Keyboard.
  2. Scroll to Special Character Entry and click Compose Key.
  3. Turn the toggle switch ON.
  4. Select Right Alt (recommended) or Caps Lock.
KDE Plasma (Kubuntu, openSUSE)

Enable in KDE System Settings

  1. Open System SettingsInput DevicesKeyboard.
  2. Click the Advanced tab at the top.
  3. Expand Position of Compose key.
  4. Check your preferred key (e.g. Right Alt) and click Apply.
CLI / i3 / Sway / X11

Enable via Command Line

For current X11 session:

setxkbmap -option compose:ralt

For permanent systemd keymap:

localectl set-x11-keymap us pc105 "" compose:ralt

How Sequential Compose Chords Work

Unlike modifier shortcuts where keys must be pressed at the exact same moment, Compose chords are entered one key at a time in sequence:

Step 1
Compose
Press & release Compose key
Step 2
'
Press modifier symbol (e.g. apostrophe)
Step 3
e
Press base letter (e.g. e)
Output é e with acute accent

Standard Linux Compose Key Sequences

Verified mnemonic combinations defined in standard X11 and GTK Compose tables.

Accented Letters (Vowels & Consonants)

á
Small a acute
Compose ' a
à
Small a grave
Compose ` a
â
Small a circumflex
Compose ^ a
ä
Small a diaeresis
Compose " a
ã
Small a tilde
Compose ~ a
å
Small a ring
Compose o a
ā
Small a macron
Compose - a
ç
Small c cedilla
Compose , c
é
Small e acute
Compose ' e
è
Small e grave
Compose ` e
ê
Small e circumflex
Compose ^ e
ë
Small e diaeresis
Compose " e
ē
Small e macron
Compose - e
í
Small i acute
Compose ' i
ì
Small i grave
Compose ` i
î
Small i circumflex
Compose ^ i
ï
Small i diaeresis
Compose " i
ñ
Small n tilde
Compose ~ n
ó
Small o acute
Compose ' o
ò
Small o grave
Compose ` o
ô
Small o circumflex
Compose ^ o
ö
Small o diaeresis
Compose " o
õ
Small o tilde
Compose ~ o
ø
Small o slash
Compose / o
ú
Small u acute
Compose ' u
ù
Small u grave
Compose ` u
û
Small u circumflex
Compose ^ u
ü
Small u diaeresis
Compose " u
ß
German sharp s
Compose s s

Punctuation & Quotation Marks

«
Left guillemet
Compose < <
»
Right guillemet
Compose > >
Left double quote
Compose < "
Right double quote
Compose > "
Left single quote
Compose < '
Right single quote
Compose > '
¿
Inverted question mark
Compose ? ?
¡
Inverted exclamation mark
Compose ! !
§
Section sign
Compose s o
Pilcrow (paragraph)
Compose p !

Fractions & Mathematics

½
Vulgar fraction 1/2
Compose 1 2
¼
Vulgar fraction 1/4
Compose 1 4
¾
Vulgar fraction 3/4
Compose 3 4
¹
Superscript 1
Compose ^ 1
²
Superscript 2
Compose ^ 2
³
Superscript 3
Compose ^ 3
×
Multiplication sign
Compose x x
¬
Not sign
Compose - ,

Linux Desktop Character Map Applications

Search, browse, and copy any Unicode symbol or emoji using built-in desktop utilities.

GNOME Desktop

GNOME Characters

Pre-installed on Ubuntu Desktop and Fedora Workstation. Allows browsing by category (Letters, Punctuation, Math, Currencies, Emoji) or instant search.

How to Open:
  1. Press Super (Windows key) to open Activities.
  2. Type Characters and press Enter.
  3. Or run in terminal: gnome-characters &
Pro Tip: You can type symbol names directly into the GNOME Shell Activities search bar (e.g. typing "infinity" or "trademark") to copy symbols without even opening the app window.
KDE Plasma

KDE KCharSelect

A comprehensive Unicode browser for KDE Plasma systems. Displays full Unicode technical details, hex code points, font rendering previews, and UTF-8 byte representations.

How to Open:
  1. Press Alt + F2 or Super.
  2. Type KCharSelect and press Enter.
  3. Or run in terminal: kcharselect &
One-Click Export: Double-click any symbol in KCharSelect and click To Clipboard to paste it into any running application.

Inserting Emoji on Linux: Hotkeys & Palettes

Open native desktop emoji pickers to search and insert smileys, people, and pictographs.

GNOME / GTK Shortcut Ctrl + ; (or Ctrl + .)

In any native GTK3/GTK4 text field (Gedit, Firefox, LibreOffice), press:

Ctrl + ;

A lightweight emoji popup will appear right at your cursor. You can immediately type to search (e.g. :smile:, :heart:) or click to insert.

KDE Plasma Shortcut Meta + . (Windows Key + Period)

On KDE Plasma 5.18 and Plasma 6, press:

Meta + .

Opens the native Plasma Emoji Selector widget, showing recent emoji and categorized Unicode tabs with integrated clipboard copying.

Multi-Codepoint & ZWJ Sequences (e.g., 👨‍👩‍👧‍👦 or 👩‍💻)

Many modern emoji are constructed from multiple Unicode code points joined by Zero-Width-Joiners (ZWJ, U+200D). Because Ctrl + Shift + U can only process a single hexadecimal code point at a time, **you cannot type an entire family or profession emoji with one hex command**. Instead, use the native desktop emoji picker or use 1-click Copy on CopyCharacter.

Keyboard Layouts, AltGr & Dead Keys

Access characters directly on your keyboard by enabling international layouts and modifier layers.

What is AltGr (Alternate Graphic)?

On international keyboard layouts, the physical Right Alt key acts as AltGr (Level 3 Shift). Holding AltGr allows your standard alphanumeric keys to type alternate symbols:

US International
AltGr + c
© (Copyright)
US International
AltGr + 5
(Euro)
UK English
AltGr + 4
(Euro)
UK English
Shift + 3
£ (Pound)

Dead Keys vs. Compose Key

Many users confuse Dead Keys with the Compose Key. Here is the critical difference:

Feature Dead Keys Compose Key
Scope Layout-dependent (e.g. us_intl) Universal (any keyboard layout)
Mechanism Pressing accent key produces nothing until the next letter is pressed Sequential chord started by assigned key (e.g. Right Alt)
Regular Apostrophe Must press ' then Space to type normal quote Normal keys behave normally until Compose key is pressed
Tip: If you find dead keys annoying because typing single quotes requires an extra Space bar tap, keep your layout as standard US and enable the Compose key instead.

Input Method Frameworks (IBus & Fcitx5)

Phonetic candidate engines for typing complex writing systems including Arabic, Chinese, Japanese, Korean, and Indic scripts.

Default in GNOME

IBus (Intelligent Input Bus)

IBus is deeply integrated into GNOME Shell and Ubuntu. It manages multilingual input engines and bridges Unicode input across GTK, Qt, and X11 applications.

  • Switch Input Engines: Press Super + Space (or Shift + Super + Space).
  • Popular Engines: ibus-libpinyin (Chinese), ibus-mozc (Japanese), ibus-hangul (Korean), ibus-m17n (Arabic & Indic).
  • Settings: GNOME Settings → Keyboard → Input Sources → click + to add an engine.
Modern Wayland & KDE

Fcitx5

Fcitx5 is a lightweight, responsive input framework with first-class Wayland support, modular theming, and native Qt5/Qt6 and GTK input method plugins.

  • Toggle Input Engine: Press Ctrl + Space.
  • Popular Engines: fcitx5-chinese-addons, fcitx5-mozc, fcitx5-hangul.
  • Settings: Open Fcitx 5 Configuration utility to adjust trigger hotkeys and skin layouts.
Typing Arabic (ع) or CJK (中) Without an Input Framework?

If you only need a single glyph occasionally, you don't need to install a full IME. Use Ctrl + Shift + U 0639 for Arabic Ain (ع), Ctrl + Shift + U 4E2D for CJK Zhong (中), or use 1-click Copy right here on CopyCharacter.

Troubleshooting Linux Character Shortcuts

Common causes for missing symbols, shortcut conflicts, and toolkit limitations in Linux.

Issue 1

Ctrl + Shift + U does nothing or types a literal "u" in terminal

Why It Happens:

Many Linux terminal emulators (e.g. Alacritty, Kitty, st, xterm) do not bind to the GTK/IBus pre-edit text context.

How to Fix:

Use your terminal's native copy-paste (Ctrl+Shift+V) or configure the Compose key, which functions directly at the XKB/display-server layer across terminal windows.

Issue 2

Pressing the Compose key does nothing at all

Why It Happens:

Standard PC keyboards have no physical Compose key; the feature is dormant until explicitly bound to a physical key.

How to Fix:

Go to GNOME Settings → Keyboard → Special Character Entry → Compose Key and enable it (e.g. choose Right Alt). In KDE, use System Settings → Input Devices → Keyboard → Advanced.

Issue 3

Why does Ctrl + Shift + U not work in Chrome or Electron apps?

Why It Happens:

Chromium-based applications on Linux may have internal shortcut conflicts (e.g. Ctrl+Shift+U bound to extensions or developer tools) or lack direct IBus socket access.

How to Fix:

Press Ctrl+Shift+U and release before typing the hex digits. If the pre-edit "u" does not appear, use Compose sequences or copy the character from CopyCharacter.

Issue 4

Can I type multi-character emoji like 👨‍👩‍👧‍👦 with Ctrl+Shift+U?

Why It Happens:

Complex emoji are Zero-Width-Joiner (ZWJ) sequences consisting of multiple distinct Unicode codepoints.

How to Fix:

Ctrl+Shift+U only accepts a single code point at a time. Use the desktop emoji picker (Ctrl+; in GNOME, Meta+. in KDE) or 1-click Copy on CopyCharacter.

Frequently Asked Questions

Technical answers to recurring questions about typing symbols and Unicode on Linux.