Fix Flatpak Apps Not Respecting GTK Theme in Ubuntu 24.04

Quick reference: what usually fixes the mismatch

If a Flatpak app on Ubuntu 24.04 opens with Adwaita or a light interface while the desktop is set to dark, first check whether the app uses GTK 3 or GTK 4/libadwaita. Then update Flatpak, make the matching GTK 3 theme extension available, and confirm the desktop portal is installed. Flatpak apps run in a sandbox, so they do not automatically read every theme file installed on the Ubuntu host.

What you seeLikely causeFirst action
GTK 3 app uses Adwaita instead of YaruThe active theme extension is missing or not visible to the app runtimeUpdate Flatpak and install the matching theme extension
Flatpak ignores Ubuntu's dark stylePortal, color-scheme setting, or app support issueCheck Appearance, portal packages, and relaunch the app
Only one app looks differentThe app may use GTK 4/libadwaita, Qt, Electron, or custom stylingIdentify the toolkit before changing system settings

These steps apply to Flatpak applications on Ubuntu 24.04, especially those installed from Flathub. They do not force every application to use Ubuntu's complete desktop styling. GTK 3 theme extensions, light/dark preference, icons, and app-specific styles are separate pieces.

How Flatpak theme matching works

A Flatpak application uses its own runtime rather than the host's system libraries and theme directories. Flatpak cannot simply expose Ubuntu's /usr/share/themes as the application's theme source: the sandbox has its own runtime filesystem, and themes can depend on a particular GTK version. Flatpak therefore distributes supported GTK 3 themes as runtime extensions.

Flatpak can read the host's active GTK theme name and install a matching extension when one is available in the app's remote. The theme still has to be exposed to the app. On X11, GTK 3 can receive the selected theme through XSettings. On Wayland, GTK reads relevant appearance settings through a desktop Settings portal. If the theme extension or a suitable integration path is missing, an app can fall back to Adwaita.

Ubuntu 24.04's Settings panel offers light and dark desktop styles. That preference is not the same thing as making every application use the Yaru GTK 3 theme. GTK 4 applications built with libadwaita generally follow supported system appearance preferences, but they do not necessarily accept arbitrary legacy GTK theme overrides. A flatpak theme extension named for GTK 3 will not restyle every GTK 4 or libadwaita app.

For the technical overview, see Flatpak's desktop integration and theming documentation and its GTK portal support documentation.

1. Confirm the desktop style and theme name

Open Settings > Appearance and select the intended Light or Dark style. The choice applies immediately to the desktop. If you use GNOME Tweaks or another tool to select a custom GTK theme, note its exact theme name; package names and theme names can differ in capitalization or suffixes.

You can read the active GTK theme name and color-scheme preference in Terminal:

gsettings get org.gnome.desktop.interface gtk-theme
gsettings get org.gnome.desktop.interface color-scheme

The first command reports the theme name stored in GNOME settings; the second reports the preferred light/dark scheme when supported. These commands only inspect values. Avoid setting a theme name copied from a tutorial unless that theme is installed and you intend to use it. Restart the affected app after changing appearance settings, since many programs read their theme at launch.

2. Update Flatpak and install the matching theme extension

Refresh installed applications and runtimes first. Flatpak's documented theme integration can automatically install a matching extension during an install or update when the theme is available from the configured remote.

flatpak update

If the app still uses the fallback theme, list the GTK theme extensions exposed by Flathub:

flatpak remote-ls --columns=application flathub | grep '^org.gtk.Gtk3theme'

Choose an extension whose name matches the GTK 3 theme you selected. Flathub currently lists Yaru theme variants, including org.gtk.Gtk3theme.Yaru-light. For example, install that variant only when it matches the theme you want:

flatpak install flathub org.gtk.Gtk3theme.Yaru-light

Flathub's Yaru-light theme listing identifies it as a GTK theme package. The matching theme name depends on the host setting and on what the remote currently publishes. If you use a different Yaru variant or a third-party theme, use flatpak search or the remote listing to find its exact extension ID; do not assume the package suffix from its visual name.

If the theme is installed but the app was already running, close all of its windows and reopen it. For a stubborn case, update once more after confirming the extension and application are from the same Flatpak installation:

flatpak list --app
flatpak list --runtime | grep -i theme
flatpak update

Flatpak distinguishes per-user and system installations. If you installed the app with --user but installed the extension system-wide, or vice versa, the app may not see the extension where expected. Keep the app and extension in the same installation scope where possible. You can inspect a specific app's installation with flatpak info APP_ID.

3. Check the desktop portal on Ubuntu 24.04

GTK's Flatpak portal documentation states that xdg-desktop-portal-gtk is required for GTK themes and fonts. Ubuntu publishes this backend for the Noble (24.04 LTS) release. If the package is absent, install it from Ubuntu's repositories:

sudo apt update
sudo apt install xdg-desktop-portal-gtk

Ubuntu GNOME also uses the GNOME portal backend for desktop-specific portal features. Installing the GTK backend does not mean you should remove or replace the GNOME backend. Keep the portal packages provided for your desktop environment. After installation, sign out and back in, or restart the user portal service and then relaunch the affected app:

systemctl --user restart xdg-desktop-portal.service

If systemd reports that the unit is unavailable, sign out and back in instead. Portal activation details can vary with the session and package state. Ubuntu's package listing confirms that xdg-desktop-portal-gtk is available for Ubuntu 24.04.

4. Decide whether the app can use the theme

Test more than one GTK 3 Flatpak if you can. If several GTK 3 apps now follow the theme but one app does not, the remaining issue may be specific to that app or its runtime. If GTK 3 apps work but a modern GNOME app still has a different accent color or widget appearance, that can be expected: GTK 3 theme extensions do not apply to GTK 4/libadwaita in the same way.

Some apps use Qt, Electron, or their own interface toolkit even when they look similar to GNOME applications. In that case, a GTK theme extension may have no effect. Check the app's official documentation for supported appearance options before changing Flatpak permissions. For a Flatpak installed from Flathub, inspect its app ID and runtime with:

flatpak info APP_ID

Replace APP_ID with the application ID shown by flatpak list --app. The output helps identify its runtime and installation scope; it does not always tell you the toolkit, so confirm the toolkit from the app's own documentation or project page when needed.

Common fixes to avoid

  • Do not grant broad host filesystem access just to copy the look. Flatpak documents theme extensions and portal/XSettings integration as the normal approaches. Broad access weakens sandbox isolation and can still fail when host and runtime GTK versions differ.
  • Do not use a GTK 3 theme extension as a universal dark-mode switch. It contains theme files for compatible GTK 3 apps; system color-scheme support is a separate setting that the app and portal must understand.
  • Do not reinstall the application before checking its extension and runtime. Reinstallation may fetch the same runtime without changing the missing theme or portal condition.
  • Do not change global portal configuration as a first step. Ubuntu GNOME's backend selection is session-specific. Replacing portal preferences can affect file pickers and other desktop integration beyond theming.

Verification checklist

  • Ubuntu Settings shows the intended Light or Dark style.
  • The host GTK theme name is known, and a matching GTK 3 extension is available to Flatpak.
  • flatpak update completed, and the app and theme extension are in a compatible installation scope.
  • The xdg-desktop-portal-gtk package is installed; after changes, the user session or portal has been restarted.
  • The affected application was fully closed and reopened.
  • You compared apps by toolkit: GTK 3, GTK 4/libadwaita, Qt, or Electron can respond differently.

If the checklist passes and one app remains unchanged, the most useful next step is to consult that application's issue tracker or documentation with its Flatpak ID, runtime, Ubuntu session type (Wayland or X11), and the output of the two read-only gsettings commands. This helps distinguish an app-specific styling choice from a missing desktop integration component without weakening the sandbox.

Ubuntu's current user guide describes the light/dark controls in Settings > Appearance. Flatpak's behavior can vary with its version, app runtime, portal backend, toolkit, and remote metadata; if the active theme is not packaged for the runtime, the app may continue to use its own default appearance.

Leave a Comment

How to Record Speaker Output on Linux with Audacity

How to Record Speaker Output on Linux with Audacity

Capture Linux desktop audio in Audacity by routing its recording stream to your output device’s monitor source. Follow PulseAudio and PipeWire steps, export tips, and fixes for silent tracks.

How to Use Dropbox on Linux: Install and Sync Your Files

How to Use Dropbox on Linux: Install and Sync Your Files

Install Dropbox on Linux from the official package, sign in, sync a local folder, manage selective sync, and check status from the command line.

How to Install Inkscape on Linux: Ubuntu, Fedora, Arch, and More

How to Install Inkscape on Linux: Ubuntu, Fedora, Arch, and More

Install Inkscape from your Linux distribution’s repositories, the Ubuntu stable PPA, Snap, or Flathub, with current commands and notes for choosing a package source.

How to Find and Remove Duplicate Files on Linux With FSlint

How to Find and Remove Duplicate Files on Linux With FSlint

Use FSlint to scan selected Linux folders, review duplicate groups, and safely delete redundant files or learn when hard-link merging is appropriate.

How to Install SABnzbd on Linux and Configure It

How to Install SABnzbd on Linux and Configure It

Install SABnzbd on Ubuntu or Debian, or run it in Docker on another Linux host. Then open the web interface and configure your provider and download folders.

How to Install the Paper GTK Theme on Linux

How to Install the Paper GTK Theme on Linux

Install the Paper GTK theme from supported Linux repositories, enable it for GTK apps in GNOME Tweaks, and see what the legacy theme can and cannot change.

How to Install and Set Up Plex on OpenMediaVault with Compose

How to Install and Set Up Plex on OpenMediaVault with Compose

The old OpenMediaVault Plex plugin is archived. Set up Plex on OMV 8 with OMV-Extras, the Compose plugin, persistent storage, and Plex’s official container.

How to Clean and Speed Up Ubuntu Safely

How to Clean and Speed Up Ubuntu Safely

Clean and speed up Ubuntu with safe APT cleanup, storage checks, and startup controls that help free space and troubleshoot a sluggish desktop.

How to Install the Hiri Email Client on Linux

How to Install the Hiri Email Client on Linux

Install Hiri on Linux with its Snap package or official tarball, add a desktop launcher, and check supported accounts plus a warning about Hiri’s old Snap release.

How to Get System Specifications for a Linux PC

How to Get System Specifications for a Linux PC

Use Fastfetch and built-in Linux commands to check your distro, kernel, CPU, memory, graphics, storage, and connected devices, then save a clear report.