From Fedora Project Wiki

No custom Qt theming for Fedora Workstation

This is a proposed Change for Fedora Linux.
This document represents a proposed Change. As part of the Changes process, proposals are publicly announced in order to receive community feedback. This proposal will only be implemented if approved by the Fedora Engineering Steering Committee.

Summary

Fedora Workstation has been using QGnomePlatform and Adwaita-qt projects to apply GNOME-like configuration and styling to Qt applications to match the environment. These projects are now in a state where they are outdated and semi-occasionally broken for some applications and it would be better to default to what Qt upstream has to offer.

Owner

Current status

  • Targeted release: Fedora Linux 39
  • Last updated: 2023-06-12
  • [<will be assigned by the Wrangler> devel thread]
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

QGnomePlatform project is a Qt Platform Theme plugin. It reads GNOME configuration, like fonts or icons and applies this configuration to Qt applications. It also provides implementation of Client-Side Window Decorations or native dialogs. This project partially overlaps with Qt's default GTK Platform Theme plugin, but there are some additions that are existing only in QGnomePlatform, like Client-Side Window Decorations.

Adwaita-qt project is a Qt Style plugin. It implements widget styling (e.g. buttons, checkboxes) to match GNOME's Adwaita style. There is no equivalent of such style in Qt, but given the complexity of Qt Style plugins, this project is now outdated and doesn't match the current Adwaita (GTK4) style. It is also responsible for the most of the issues users are facing while using our custom styling.

Some additional information about these projects and issues:

With this change we would like to stop shipping and using these projects by default on Fedora Workstation and default to Qt default theming and styling. Also, because the GTK Platform Theme in Qt doesn't support everything we have support for in QGnomePlatform, we would like to contribute it to Qt instead. With this work, there shouldn't be any drawbacks when using Qt's GTK Platform Theme and we believe we would even get broader usage and more contributors for things like Client-Side Window Decorations. For Adwaita-qt replacement, we would default to Fusion style or possibly to Breeze style for KDE apps. Both styles have benefit of active upstream and broader usage than our custom style that is only used by Fedora Workstation and not tested by developers.


Feedback

Benefit to Fedora

We will be using more reliable and tested Qt theming/styling instead of our custom solution, which is only used by Fedora Workstation. This brings us more to upstream with upstream support for theming and styling issues. This will eliminate all the issues our users have been experiencing in the past when using Qt applications on Fedora Workstation.

Scope

  • Proposal owners: Drop QGnomePlatform and Adwaita-qt from Fedora Workstation compose. Drop our custom patches making Qt to use QGnomePlatform by default. Upstream some of the QGnomePlatform features to Qt upstream and backport to Fedora packages to avoid waiting for Qt release, which in case of Qt5 is not going to happen anyway.
  • Other developers:
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Community Initiatives:

Upgrade/compatibility impact

How To Test

Use Qt apps the normal way as before and check if everything works as expected and there are no issues running Qt apps on Fedora Workstation. Qt apps running on Fedora Workstation should:

  • Use native Client-Side Window Decorations
  • Use native dialogs (e.g. FileDialog)
  • Use icon theme, fonts etc. you have configured on your system.

User Experience

The user experience should remain the same or be actually better in case Qt apps they were using were not working properly with QGnomePlatform or Adwaita-qt.

Dependencies

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), Yes/No


Documentation

N/A (not a System Wide Change)

Release Notes