Reading view

Fix Qt App Window Border & Title-bar in Ubuntu 24.04 | 25.10

Qt applications (e.g, qBittorrent, KeePassXC) look weird as they don’t have window border or shadow in Ubuntu since 24.04. Here’s how to configure to make them look native.

Applications in Ubuntu and other popular Linux distributions mostly use GTK or Qt tool-kits for rendering their user interfaces. Gnome is based on GTK. It uses “xcb” QPA plugin for Qt apps running on classic Xorg session.

Due to switch to Wayland, the “xcb” plugin is not in use by default, and Qt apps look weird as you see in the screenshot below in Ubuntu 24.04, Ubuntu 25.04 & 25.10.

Qt apps look border-less in Ubuntu since 24.04

To “fix” the issue, I found few choices:

  1. Re-use “xcb” QPA plugin.
  2. QGnomePlatform theme.
  3. QAdwaitaDecorations Qt decoration plugin.

While there are also Qt5/6 configuration tool and Kvantum available for configuring Qt theme, icon, font, color, and more.

1. “Fix” Qt window title-bar and window border

Option 1: use “xcb” QPA plugin

Most Qt applications (both Qt5 and Qt6) are still working good with “xcb” QPA plugin even in Wayland session.

1. First, press Ctrl+Alt+T on keyboard to open window. When it opens, run command to install the required libraries:

sudo apt install libxcb-cursor0 libxcb-composite0

Run sudo apt update to refresh cache in case it’s unable to locate the packages.

2. After that, run the command below in terminal to set the environment variable:

export QT_QPA_PLATFORM=xcb

Then, all Qt apps start from that terminal window will try using “xcb” plugin. For example, run keepassxc to start the Qt-based password manager.

enable ‘xcb’ for apps start from this terminal only

3. If it works for you, then open Files (aka Nautilus), and press Ctrl+H to show all hidden files. Find out .profile file in home directory and click edit it.

Finally, add export QT_QPA_PLATFORM=”xcb;wayland” in the end of file to make it work for all Qt applications permanently! And, log out and back in to apply.

enable xcb for all Qt apps, though current user only

NOTE: It must be set to “xcb;wayland“, to allow fall-back to default wayland, when ‘xcb’ does not work. For example, Qt apps installed as Flatpak may not work with ‘xcb’ plugin and output the error below:

qt.qpa.xcb: could not connect to display
qt.qpa.plugin: From 6.5.0, xcb-cursor0 or libxcb-cursor0 is needed to load the Qt xcb platform plugin.
qt.qpa.plugin: Could not load the Qt platform plugin “xcb” in “” even though it was found.

Option 2: Use QGnomePlatform theme

While xcb is designed for Xorg, FedoraQt team has developed few Qt plugins for better integration in GNOME. They are “QGnomePlatform” theme, “adwaita-qt” style, and “QAdwaitaDecorations”.

Downsides: The Qt window title-bar made by QGnomePlatform looks NOT so good. FedoraQt has discontinued the project. And, Ubuntu 24.04 only includes Qt5 version of the package.

1. To install the Qt platform theme, open terminal (Ctrl+Alt+T) and run command:

sudo apt install qgnomeplatform-qt5

Ubuntu 25.04, 25.10 may also install qgnomeplatform-qt6 for Qt6 support.

2. Next, either run the command below to set environment:

export QT_QPA_PLATFORMTHEME='gnome'

Then, start Qt apps from the same terminal window to use the Qt platform theme.

Or, edit .profile file in home directory and add export QT_QPA_PLATFORMTHEME='gnome' to make it work permanently for all Qt apps (Qt5 only for 24.04) at next login.

Option 3: Use QAdwaitaDecorations

QGnomePlatform and adwaita-qt have been discontinued (though they still work). QAdwaitaDecorations, the project that implements Adwaita-like client-side decorations, is so far the only upstream project that’s still in development.

However, it’s NOT made into Debian/Ubuntu repositories so far. Meaning you need to build it by yourself. And, it does not support Qt6 app for Ubuntu 24.04, as it requires Qt6 >= 6.5.0 (24.04 has 6.4.2).

This option is good choice for Ubuntu 25.10, to enable Qt5 window decorations, while Qt6 decorations work out-of-the-box.

1. First, open terminal (Ctrl+Alt+T) and run command to install dependency libraries:

sudo apt install git cmake build-essential qtbase5-dev libqt5svg5-dev libqt5waylandclient5-dev qtbase5-private-dev qtwayland5-private-dev libwayland-dev

2. Then, run command to grab the source code:

git clone https://github.com/FedoraQt/QAdwaitaDecorations.git

After that, navigate to the source folder, create ‘build’ sub-folder and navigate into it:

cd QAdwaitaDecorations
mkdir build && cd build

Next, configure the source for Qt5:

cmake -DUSE_QT6=OFF ../

Ubuntu 24.04 does NOT meet Qt6 requirement, and Qt6 window decoration in 25.10 looks good out-of-the-box, so here I only build it for Qt5.

3. Finally, build & install the plugin by running the 2 commands below one by one:

make -j3
sudo make install

Here -j3 tells to start 3 threads in parallel. Depends on how many CPU cores you have, you may replace it with -j4, -j8, or j$(nproc) to use all CPU cores.

4. After successfully built the plugin, clean up by deleting the source folder. Then, either run the command below to set environment variable:

export QT_WAYLAND_DECORATION=adwaita

So it works for all Qt5 apps start from this terminal window.

Or, edit .profile file in user home and add the line to make it work permanently for all Qt5 apps at next login.

2. Change Qt Theme, or Configure Fonts, icon, and colors

Gnome/Adwaita style decorations is NOT enough? You may also configure the Qt apps themes, fonts, icons, and color scheme.

Option 1: Use Kvantum along with “xcb”

If you use “xcb” plugin for the decorations, then you may also use Kvantum (SVG-based theme engine) to change the Qt app themes.

1. First, open terminal (Ctrl+Alt+T) and run command to install the package:

sudo apt install qt5-style-kvantum

Ubuntu 25.04, 25.10 users may also install qt6-style-kvantum for Qt6 apps support, however it’s NOT available in Ubuntu 24.04.

2. Next, set the following environment variables:

export QT_QPA_PLATFORM="xcb;wayland"
export QT_STYLE_OVERRIDE=kvantum

either in terminal for apps start from that terminal, or in .profile for all Qt apps (Qt5 only for 24.04).

3. Finally, launch “Kvantum Manager” to change Qt theme and configure active theme.

Use qt5ct / qt6ct

For choice, you may use Qt5 / Qt6 settings tools to configure the app window buttons, fonts, icons, and color scheme.

1. First, open terminal and install the settings tools, as well as adwaita-qt themes:

sudo apt install qt5ct qt6ct adwaita-qt adwaita-qt6

2. Next, set environment variable:

export QT_QPA_PLATFORMTHEME=qt5ct

It works for both Qt5 and Qt6 with either “xcb” or “wayland” QPA platform.

3. After set the environment (log out and back in if added to .profile), launch Qt5 Settings or Qt6 settings to configure the Qt appearances.

Summary:

This tutorial shows how to “fix” border-less issue for Qt apps in Ubuntu 24.04 and higher with default GNOME, as well as change the theme, fonts, icons, and color scheme.

The “xcb” QPA platform plugin is still a good choice for 24.04 with both Qt5 and Q6 support. While, QAdwaitaDecorations is better (in my own opinion) for Qt5 in 25.10, as Qt6 decorations look good out-of-the-box.

  •  

Change the Color Scheme of GNOME Adwaita Apps & Shell

Modern GNOME apps do NOT support traditional themes, but you may change the look with custom color schemes!

As you know, GNOME has moved to use GTK4 + LibAdwaita for its applications and desktop components. And, so many apps use the LibAwaita library for their modern UI, which however do not support theming (see this thread).

GNOME with custom color scheme

To make libadwaita apps look consistent on non-GNOME desktops, Linux Mint has a soft fork called libadapta, and programmers can inject their custom CSS code.

What if you have no coding skill, but want a fresh look of the GNOME apps? Here’s a stupid simple app that can do the job by changing the color schemes!

There used to be an app called Gradience to set custom colors for Adwaita apps, which is however discontinued due to lack of maintenance. Just a month ago, a new app was born for GNOME users boring with the default look.

It’s Rewaita, a free open-source app written in CSS and Python, which provides a simple user interface, with few dozen of color scheme presets (for light and dark mode) and few window controls (min, max, close) layout.

Rewaita app window

Just choose one from the list, then Adwaita apps (may need a re-launch), Gnome top-bar, and menus’ colors change automatically according to the color scheme.

GNOME Dark mode with a custom color scheme

For choice, user may switch to “Custom” tab for options to set custom background and text colors for buttons, main window, widgets, warning, etc components.

As well, you may change the named colors, e.g., Blue, Teal, Green, Orange, Yellow accent colors. So, when you select an accent color in Appearance settings page, it won’t display the named color but the custom color you set.

The custom colors can be saved as preset for either light or dark mode, then apply at any time from the “Theming” tab.

How to Install Rewaita:

NOTE: Rewaita so far does NOT work in Ubuntu 24.04 and works partially IN MY CASE in Ubuntu 25.04, probably because Ubuntu does not feature vanilla Gnome environment.

Rewaita is available to install in most Linux on amd64 and arm64 platforms as Flatpak package, which runs in sandbox environment.

Fedora workstation (with 3rd party repository enabled) may search & install it from GNOME Software.

While, other Linux may do the steps below one by one to get it:

  • First, follow the official setup guide to enable Flatpak support. For Debian/Ubuntu, simply open terminal (Ctrl+Alt+T) and run command:
    sudo apt install flatpak

  • Next, install the Rewaita package by running command:
    flatpak install https://dl.flathub.org/repo/appstream/io.github.swordpuffin.rewaita.flatpakref

    There’ll be also lots of downloads for GNOME and FreeBSD run-times if you don’t have them.

After installed the app package, launch either from GNOME Overview (log out and back in if app icon not visible) or by running command in terminal:

flatpak run io.github.swordpuffin.rewaita

And, replace run with update in last command to check & install updates.

In addition, to make custom colors work for Flatpak apps, you need to run one more command to grant read & write permission to the gtk-4.0 configuration directory for Flatpak.

sudo flatpak override --filesystem=xdg-config/gtk-4.0:rw

And for GNOME Top-bar and menus, you need to set Gnome Shell theme to Rewaita (via Gnome Tweaks).

Set Gnome Shell theme to Rewaita

Tips: if “Shell” theme option is grayed out, then you need to install User Themes extension:

  • either visit the last link and use the ON/OFF toggle to install. Though you need to install browser extension if prompted, and Debian/Ubuntu needs to install the agent package first:
    sudo apt install chrome-gnome-shell
  • or install “Extension Manager” from Gnome Software, App Center (debian package), or your system package manager, and use it to search & install Gnome Shell extensions.
  • finally, re-launch Gnome Tweaks.

Uninstall Rewaita

To uninstall the app, first reset to default color schemes (use the ⟳ icon) for both light, dark, and window controls.

Then, run the command below to remove the flatpak package:

flatpak uninstall --delete-data io.github.swordpuffin.rewaita
  •