(Created a new page) |
m (Add trackers) |
||
(11 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
<!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name. This keeps all change proposals in the same namespace --> | <!-- The actual name of your proposed change page should look something like: Changes/Your_Change_Proposal_Name. This keeps all change proposals in the same namespace --> | ||
= | = Qt Wayland By Default On Gnome <!-- The name of your change proposal --> = | ||
== Summary == | == Summary == | ||
<!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. | <!-- A sentence or two summarizing what this change is and what it will do. This information is used for the overall changeset summary page for each release. | ||
Note that motivation for the change should be in the Motivation section below, and this part should answer the question "What?" rather than "Why?". --> | Note that motivation for the change should be in the Motivation section below, and this part should answer the question "What?" rather than "Why?". --> | ||
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 == | == Owner == | ||
Line 12: | Line 12: | ||
This should link to your home wiki page so we know who you are. | This should link to your home wiki page so we know who you are. | ||
--> | --> | ||
* Name: [[User: | * Name: [[User:jgrulich| Jan Grulich]] | ||
<!-- Include you email address that you can be reached should people want to contact you about helping with your change, status is requested, or technical issues need to be resolved. If the change proposal is owned by a SIG, please also add a primary contact person. --> | <!-- Include you email address that you can be reached should people want to contact you about helping with your change, status is requested, or technical issues need to be resolved. If the change proposal is owned by a SIG, please also add a primary contact person. --> | ||
* Email: < | * Email: <jgrulich@redhat.com> | ||
* Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> --> | * Release notes owner: <!--- To be assigned by docs team [[User:FASAccountName| Release notes owner name]] <email address> --> | ||
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo) | <!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo) | ||
Line 34: | Line 34: | ||
CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development | CLOSED as NEXTRELEASE -> change is completed and verified and will be delivered in next release under development | ||
--> | --> | ||
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id= | * Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1732129 #1732129] | ||
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/ | * Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/367 #367] | ||
== Detailed Description == | == Detailed Description == | ||
<!-- Expand on the summary, if appropriate. A couple sentences suffices to explain the goal, but the more details you can provide the better. --> | <!-- Expand on the summary, if appropriate. A couple sentences suffices to explain the goal, but the more details you can provide the better. --> | ||
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 == | == 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 == | == Scope == | ||
* Proposal owners: | * Proposal owners: | ||
# Update Qt 5 | |||
## Use [https://jgrulich.fedorapeople.org/fedora-qt-wayland-default/qtbase-use-wayland-on-gnome.patch 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 | |||
## Use [https://jgrulich.fedorapeople.org/fedora-qt-wayland-default/qtwayland-use-gnome-platform-theme-on-gnome-based-desktops.patch 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 | |||
# Update QGnomePlatform with upcoming upstream release including window decorations, which will be automatically used when QGnomePlatform theme is loaded | |||
* Other developers: | * Other developers: | ||
# Test and watch for regressions. | |||
* Release engineering: [https://pagure.io/releng/issues #Releng issue number] (a check of an impact with Release Engineering is needed) <!-- REQUIRED FOR SYSTEM WIDE AS WELL AS FOR SELF CONTAINED CHANGES --> | * Release engineering: [https://pagure.io/releng/issues #Releng issue number] (a check of an impact with Release Engineering is needed) <!-- REQUIRED FOR SYSTEM WIDE AS WELL AS FOR SELF CONTAINED CHANGES --> | ||
Line 86: | Line 94: | ||
N/A (not a System Wide Change) | N/A (not a System Wide Change) | ||
Run | Run any Qt application on Gnome Wayland session and check any issues you may see. | ||
== User Experience == | == User Experience == | ||
* Smoother font rendering compared to Qt applications using XCB plugin | |||
* Smoother font rendering compared to | |||
* Honor display scale, better user experience on HiDPI and semi-HiDPI desktops. | * Honor display scale, better user experience on HiDPI and semi-HiDPI desktops. | ||
Line 113: | Line 120: | ||
<!-- If you cannot complete your feature by the final development freeze, what is the backup plan? This might be as simple as "Revert the shipped configuration". Or it might not (e.g. rebuilding a number of dependent packages). If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy. --> | <!-- If you cannot complete your feature by the final development freeze, what is the backup plan? This might be as simple as "Revert the shipped configuration". Or it might not (e.g. rebuilding a number of dependent packages). If you feature is not completed in time we want to assure others that other parts of Fedora will not be in jeopardy. --> | ||
* Contingency mechanism: Switch back default | * Contingency mechanism: Switch back default to XCB plugin. | ||
* Contingency deadline: Beta Freeze | * Contingency deadline: Beta Freeze | ||
* Blocks release? No | * Blocks release? No | ||
Line 119: | Line 126: | ||
== Documentation == | == Documentation == | ||
<!-- REQUIRED FOR SYSTEM WIDE CHANGES --> | <!-- REQUIRED FOR SYSTEM WIDE CHANGES --> |
Latest revision as of 18:31, 22 July 2019
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
- Targeted release: Fedora 31
- Last updated: 2019-07-22
- Tracker bug: #1732129
- Release notes tracker: #367
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:
- Update Qt 5
- 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
- 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
- Update QGnomePlatform with upcoming upstream release including window decorations, which will be automatically used when QGnomePlatform theme is loaded
- Other developers:
- Test and watch for regressions.
- Release engineering: #Releng issue number (a check of an impact with Release Engineering is needed)
- List of deliverables: N/A (not a System Wide Change)
- 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)