How to Enable and Type Emoji on Ubuntu

Updated on by

On a standard Ubuntu desktop install, color emoji already work out of the box. If you opened Twitter, a Discord channel, or the Emoji page on Wikipedia and got rows of empty boxes instead of smiley faces, you are probably on Ubuntu Server, inside a container, or on a custom image that left the emoji font out. One apt command fixes that. Typing emoji is a separate question, and Ubuntu has good answers for it on both the standard GNOME desktop and on the input frameworks (IBus, fcitx5) some people prefer.

This guide covers Ubuntu 24.04 LTS (Noble Numbat) and newer. Everything below applies the same way on 25.10 and the 26.04 LTS release that landed in April, because Canonical and GNOME have not changed the underlying pieces in years.

When You Need to Install the Emoji Font

The package you want is fonts-noto-color-emoji, Google’s open-source color emoji font that Ubuntu and most other Linux distributions standardized on. Both ubuntu-desktop and ubuntu-desktop-minimal declare it as a Recommends dependency, and apt pulls recommends in by default, so any normal desktop install (full or minimal) already has the font on disk. The Ubuntu DesktopTeam emoji page summarizes the same setup.

You only need to install it manually in these cases:

  1. You are on Ubuntu Server with no desktop on top.
  2. You are inside a container or chroot built from a slimmed-down base.
  3. You are on a custom-seeded image that dropped the font to save space.
  4. You ran apt install ubuntu-desktop --no-install-recommends (or any other install that explicitly skipped recommends), which leaves the emoji font out.

A fast way to check is to open a browser and look at the Wikipedia emoji article. If you see real, colorful glyphs, you are done. If you see empty rectangles or simple monochrome outlines, keep reading.

Install the Font

Open a terminal and run:

sudo apt update && sudo apt install fonts-noto-color-emoji

The Debian package’s post-install trigger rebuilds the system font cache for you, so in most cases you are finished. If a running app still does not see the new font, refresh the cache by hand:

fc-cache -fv

The fc-cache man page explains the flags in detail; the short version is that -f forces a rebuild even if nothing has changed and -v makes it tell you what it scanned. After that, close and reopen your browser (or any app where emoji were broken) so it re-reads the font list, and the boxes should turn into faces.

Typing Emoji on the GNOME Desktop

Ubuntu’s default desktop is GNOME, and GNOME has had a built-in emoji picker baked into GTK text fields for several releases. There are two ways to summon it.

Keyboard shortcut. With the cursor in any GTK text field, press ctrl . (Control and the period key). A small panel appears with the standard emoji categories along the bottom, a search box on top, and a tone selector for the skin-tone variants. Type a few letters of the emoji name to filter (try cake or thumbs), then click or hit Enter to insert. On many systems ctrl ; opens the same picker; both bindings have been documented for years and one or the other will work on whatever release you are on.

Right-click menu. Right-click inside a GTK text field and you will see an “Insert Emoji” entry near the bottom of the context menu, which opens the same picker. This is the easier path to remember if you do not type the shortcut every day.

The catch is that this is a GTK feature, not a desktop-wide one. It works in GNOME’s own apps (Text Editor, Files, Geary, the GNOME settings panels) and in Firefox 150 and newer, which added support for the GTK emoji picker directly. It does not automatically appear inside Qt apps, Electron apps that bring their own input handling, terminals, or anything else outside GTK. Chromium-family browsers (Chrome, Edge, Brave, Vivaldi) sit in the latter group on Linux today; treat the picker as unreliable there and use one of the fallbacks below.

When the Inline Picker is Missing: the Characters App

For apps the GTK picker does not reach, Ubuntu ships the GNOME Characters app. Install it if it is not already on your system:

sudo apt install gnome-characters

Launch it from the Activities overview by searching for “Characters.” It is a small standalone window with the full Unicode emoji set plus accented letters, math symbols, and other special characters. You can search by name (“rocket,” “snowflake,” “right arrow”) or browse categories. Click a character and the app copies it to your clipboard, then you paste it into whatever app you actually wanted to type in.

It is a fallback rather than the primary tool, but it is the cleanest way to drop an emoji into a Qt app, a terminal multiplexer, a notes app that built its own text input, or an Electron app that ignores GTK. The Ubuntu wiki notes that the Characters app focuses on modern emoji and does not include the historical Unicode emoji pages.

A Note for IBus and fcitx5 Users

If you have switched to an input method framework for typing in other languages, the picture is slightly different. On IBus (Ubuntu’s default), the GTK ctrl . picker continues to work in GTK apps, and IBus also ships its own built-in Emojier that you trigger with super . from any app IBus is active in; ibus-typing-booster is an optional add-on that surfaces emoji suggestions while you type, not the built-in path. On fcitx5, the emoji module ships in fcitx5-modules on Ubuntu 24.04 and newer (the old fcitx5-module-emoji name is now a virtual package that points there), so installing fcitx5-modules gives you fcitx5’s own emoji search alongside the GTK shortcut. Pick whichever path matches how you already type.

Browsers and Non-GTK Apps

Two things to know about browsers on Linux that catch people off guard.

First, rendering emoji on Linux relies on a system font. On Windows the operating system provides Segoe UI Emoji, on macOS it provides Apple Color Emoji, and browsers on those platforms simply use whatever the OS gives them. Linux has no equivalent OS-bundled emoji font, so browsers fall back to whatever fontconfig points them at; once you install fonts-noto-color-emoji that is what they pick up. The same package fixes web emoji rendering across every browser at once, with no browser-specific configuration.

Second, typing emoji into a web page depends on the browser. Firefox 150 and later supports the GTK ctrl . picker (and ctrl ; ) directly inside web text fields. Chromium-family browsers (Chrome, Edge, Brave, Vivaldi) do not currently hook into the GTK emoji picker on Linux, so the shortcut may do nothing useful inside their textareas; use the Characters app or copy from another window as the fallback. The same fallback applies to any Qt or Electron app that does not integrate with GTK.

For terminals specifically, GNOME Terminal renders color emoji correctly once the font is installed, but the GTK ctrl . picker does not appear there because a terminal is not a GTK text-entry widget; the input area is a VTE terminal surface, which the GTK picker does not bind to. The same is true of most other Linux terminals. Use the Characters app or paste from the browser when you need an emoji in a shell prompt or a commit message.

That Is It

The whole story comes down to two moves: install fonts-noto-color-emoji if you are missing the font, and reach for ctrl . when you want to type one. Everything else (the Characters app, IBus tweaks, fcitx5 modules) is there for the edge cases, and the defaults Ubuntu ships will carry most people through without ever touching them.