From Fedora Project Wiki

Qt Wayland By Default On Gnome

Summary

Make Qt applications to run natively on Gnome Wayland session, using the Qt Wayland platform plugin instead of the XCB plugin which is used for X11/XWayland. Other desktop environments already run natively on Wayland sessions, only Gnome is excluded by Qt.

Owner

  • Name: Jan Grulich
  • Email: <jgrulich@redhat.com>
  • Release notes owner:
  • Product: Spins / Workstation
  • Responsible WG: Desktop

Current status

Detailed Description

Qt Wayland plugin has been available for a long time, but it hasn't been in condition where it could be enabled by default. With Qt 5.12 the state of the Wayland plugin is much better and it's becoming more and more reliable. It now supports all the needed protocols and has been enabled by default for non-Gnome Wayland sessions. With Qt Wayland on Gnome Wayland session we need to support CSD, it's actually the only way how decorations are going to work in Qt apps right now. Qt Wayland implements basic decorations, which really doesn't match Gnome Adwaita theme, therefore there are new CSD being implemented as part of QGnomePlatform.

To make Qt applications run natively on Wayland we need to modify Qt 5, specifically qt5-qtbase module, where we allow the Wayland plugin to be used also for Gnome sessions. The new decorations from QGnomePlatform will be used automatically once they are fully implemented and updated in Fedora.

Benefit to Fedora

Qt applications running with the Wayland plugin run generally faster and smoother on Wayland enabled sessions like Gnome Wayland and better support HiDPI displays (respects desktop scale) .

Scope

  • Proposal owners:
  1. Update Qt 5
    1. Use this patch for qtbase to force using Wayland platform plugin when available on Gnome Wayland sessions. This can be manually invoked when using -platform wayland option to any Qt 5 based application
    2. Use this patch for qtwayland to use Gnome platform theme for better integration with Gnome. This platform theme is automatically used when xcb plugin is loaded, but not used from some reason on Wayland. This can be manually invoked when using -platformtheme qgnomeplatform option to any Qt 5 based application
  2. Update QGnomePlatform with upcoming upstream release including window decorations, which will be automatically used when QGnomePlatform theme is loaded
  • Other developers:
  1. Test and watch for regressions.
  • Policies and guidelines: N/A (not a System Wide Change)
  • Trademark approval: N/A (not needed for this Change)

Upgrade/compatibility impact

N/A (not a System Wide Change)

How To Test

N/A (not a System Wide Change)

Run any Qt application on Gnome Wayland session and check any issues you may see.

User Experience

  • Smoother font rendering compared to Qt applications using XCB plugin
  • Honor display scale, better user experience on HiDPI and semi-HiDPI desktops.


Dependencies

N/A (not a System Wide Change)

Contingency Plan

  • Contingency mechanism: Switch back default to XCB plugin.
  • Contingency deadline: Beta Freeze
  • Blocks release? No
  • Blocks product? product No

Documentation

N/A (not a System Wide Change)

Release Notes