How to Type Emojis on Linux: IBus, GNOME, KDE, and More

Typing Emojis on Linux: Overview

Linux gives you several ways to insert emojis, depending on your desktop environment and input method. Unlike Windows or macOS, there is no single universal shortcut โ€” but once you configure your preferred method, emojiEmoji
A Japanese word (็ตตๆ–‡ๅญ—) meaning 'picture character' โ€” small graphical symbols used in digital communication to express ideas, emotions, and objects.
input is fast and reliable. This guide covers GNOME, KDE, IBus, and terminal-based approaches.

Method 1: GNOME's Built-In Emoji Picker

If you run GNOME (the default desktop on Ubuntu, Fedora, Debian GNOME edition, and many others), you have a native emoji picker built in since GNOME 3.32.

Opening the GNOME Emoji Picker

Press this keyboard shortcut in any text field:

Ctrl + Shift + E

A small search box appears in the input area. Type an emoji name or keyword โ€” for example, type fire and press Enter to insert ๐Ÿ”ฅ. The picker is lightweight and works in GTK applications like GNOME Text Editor, Gedit, and the Files app.

The GNOME Characters App

GNOME also ships a full emoji browser called GNOME Characters. Install it if it isn't already present:

sudo apt install gnome-characters        # Debian/Ubuntu
sudo dnf install gnome-characters        # Fedora

Open it from your app launcher, search or browse by category, click an emoji, then click Copy to put it on your clipboard. Switch to your app and paste with Ctrl + V.

Method 2: IBus Emoji Picker

IBus (Intelligent Input Bus) is the most widely used input method framework on Linux and includes an emoji picker that works across almost all applications.

Installing IBus

sudo apt install ibus ibus-gtk ibus-gtk3    # Debian/Ubuntu
sudo dnf install ibus                        # Fedora

After installation, start IBus:

ibus-setup

Add IBus to your session startup (GNOME: add it to GNOME Settings โ†’ Startup Applications, or set GTK_IM_MODULE=ibus in your environment).

Using the IBus Emoji Picker

Once IBus is running, use this shortcut in any text field:

Ctrl + Shift + E

A search-driven emoji picker appears. Type a keyword, use arrow keys to select an emoji, and press Enter to insert it. IBus renders the emoji as a literal UnicodeUnicode
Universal character encoding standard that assigns a unique number to every character across all writing systems and symbol sets, including emoji.
character in the focused application.

Configuring the IBus Shortcut

If the default shortcut conflicts with another application, open ibus-setup, go to Emoji tab, and reassign the trigger key to something like Super + . (Windows key + period).

Method 3: KDE Plasma Emoji Picker

KDE Plasma 5.21 and later includes a built-in emoji picker panel widget.

Enabling the Emoji Picker on KDE

  1. Right-click on your taskbar and choose Add Widgets
  2. Search for Emoji Selector
  3. Drag it to your panel or desktop

Alternatively, open KRunner (press Alt + F2 or Alt + Space) and type emoji to launch the picker.

KCharSelect

KDE also ships KCharSelect, a full Unicode character browser:

sudo apt install kcharselect    # Debian/Ubuntu
sudo dnf install kcharselect    # Fedora

Launch it from your app menu, search for emojis by name or Unicode code pointCode Point
A unique numerical value assigned to each character in the Unicode standard, written in the format U+XXXX (e.g., U+1F600 for ๐Ÿ˜€).
, select an emoji, and click Copy to Clipboard.

Method 4: Unicode Hex Input (Universal Method)

Every Linux desktop supports direct Unicode input โ€” no additional software required. This works in GTK and Qt applications.

In GTK Apps (GNOME, Xfce, MATE)

  1. Place your cursor where you want the emoji
  2. Hold Ctrl + Shift, then press U
  3. Release all keys
  4. Type the Unicode code point (without the U+ prefix) โ€” for example, 1F525 for ๐Ÿ”ฅ
  5. Press Enter or Space

The emoji appears immediately. This works in Firefox, LibreOffice, Gedit, and most GTK applications.

Example Code Points

Emoji Code Point Hex Input
๐Ÿ˜€ U+1F600 1F600
๐Ÿ”ฅ U+1F525 1F525
โค๏ธ U+2764 2764
๐Ÿ‘ U+1F44D 1F44D
๐ŸŽ‰ U+1F389 1F389
โœ… U+2705 2705

Method 5: Terminal Emoji Input

Printing Emojis in Bash

In any modern terminal with a Unicode-capable font, you can print emoji characters directly:

# Print a single emoji
echo "๐Ÿ”ฅ"

# Using Unicode escape
echo -e "\U0001F525"

# In a variable
EMOJI=๐ŸŽ‰
echo "Build complete $EMOJI"

Setting Up Your Terminal for Emoji

If emojis display as boxes or question marks in your terminal, the issue is almost always font-related. Install a font with full emoji support:

sudo apt install fonts-noto-color-emoji    # Debian/Ubuntu
sudo dnf install google-noto-emoji-fonts   # Fedora

After installing, restart your terminal. For best results in the terminal, configure your terminal emulator to use Noto Color EmojiColor Emoji
Full-color emoji rendered using bitmap images or color vector graphics, as opposed to monochrome text-style rendering.
or TwemojiTwemoji
An open-source emoji set originally created by Twitter, providing SVG and PNG emoji assets that can be used in any project.
as a fallback font.

Setting the Locale

Ensure your locale is set to UTF-8UTF-8
A variable-width Unicode encoding that uses 1 to 4 bytes per character, dominant on the web (used by 98%+ of websites).
, which is required for proper emoji rendering:

echo $LANG    # Should output something like en_US.UTF-8

If not, configure your locale:

sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8

Method 6: Third-Party Emoji Pickers

Several standalone emoji picker apps work across all Linux desktop environments:

emoji-picker-electron

A lightweight cross-platform emoji picker:

# Install via snap
snap install emoji-picker-electron

Bind it to a keyboard shortcut in your desktop's keyboard settings for instant access.

Rofi Emoji Plugin

If you use Rofi (a popular application launcher), the rofimoji plugin adds emoji search to Rofi's interface:

pip install rofimoji

Then trigger it with:

rofimoji

Bind this command to a global shortcut like Super + . in your desktop settings.

Quick Reference: Linux Emoji Methods

Method Desktop Shortcut / Command
GNOME built-in GNOME Ctrl + Shift + E in text field
GNOME Characters app GNOME App launcher โ†’ Characters
IBus emoji picker All (with IBus) Ctrl + Shift + E
KDE Emoji Selector KDE Panel widget or KRunner
GTK Unicode input GTK apps Ctrl + Shift + U โ†’ hex code
Terminal echo Terminal echo "๐Ÿ”ฅ" or echo -e "\U1F525"
rofimoji All rofimoji (bindable)

Troubleshooting

Emojis appear as boxes: Install fonts-noto-color-emoji and restart your session.

Ctrl + Shift + E doesn't work: The shortcut is application-dependent in GNOME. Try it in Gedit or GNOME Text Editor first to confirm it works, then check if your target app overrides the shortcut.

IBus not starting automatically: Add export GTK_IM_MODULE=ibus and export QT_IM_MODULE=ibus to your ~/.profile or ~/.bash_profile.

Explore More on EmojiFYI

Related Tools

โŒจ๏ธ Emoji Keyboard Emoji Keyboard
Browse and copy any of 3,953 emojis organized by category. Works in any browser, no install needed.
๐Ÿ” Sequence Analyzer Sequence Analyzer
Decode ZWJ sequences, skin tone modifiers, keycap sequences, and flag pairs into individual components.

Glossary Terms

Code Point Code Point
A unique numerical value assigned to each character in the Unicode standard, written in the format U+XXXX (e.g., U+1F600 for ๐Ÿ˜€).
Color Emoji Color Emoji
Full-color emoji rendered using bitmap images or color vector graphics, as opposed to monochrome text-style rendering.
Emoji Emoji
A Japanese word (็ตตๆ–‡ๅญ—) meaning 'picture character' โ€” small graphical symbols used in digital communication to express ideas, emotions, and objects.
Twemoji Twemoji
An open-source emoji set originally created by Twitter, providing SVG and PNG emoji assets that can be used in any project.
UTF-8 UTF-8
A variable-width Unicode encoding that uses 1 to 4 bytes per character, dominant on the web (used by 98%+ of websites).
Unicode Unicode
Universal character encoding standard that assigns a unique number to every character across all writing systems and symbol sets, including emoji.

Related Stories