From Fedora Project Wiki
m (→‎Is Wayland ready?: Fix minor grammar issue)
(The sddm.conf page in F35 beta still doesn't document this parameter, and googles results are poorly sorted. Document here how to work around this.)
 
(12 intermediate revisions by 2 users not shown)
Line 5: Line 5:


== Owner ==
== Owner ==
* Name: [[User:Ngompa|Neal Gompa]], [[User:Rdieter|Rex Dieter]]
* Name: [[User:Ngompa|Neal Gompa]], [[User:Rdieter|Rex Dieter]], [[User:Jgrulich|Jan Grulich]], [[User:Eeickmeyer|Erich Eickmeyer]]
* Email: ngompa13@gmail.com, rdieter@gmail.com
* Email: ngompa13@gmail.com, rdieter@gmail.com, jgrulich@redhat.com, erich@ericheickmeyer.com
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
<!--- UNCOMMENT only for Changes with assigned Shepherd (by FESCo)
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
* FESCo shepherd: [[User:FASAccountName| Shehperd name]] <email address>
Line 14: Line 14:


== Current status ==
== Current status ==
[[Category:ChangeReadyForWrangler]]
[[Category:ChangeAcceptedF34]]
<!-- When your change proposal page is completed and ready for review and announcement -->
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
<!-- The Wrangler announces the Change to the devel-announce list and changes the category to Category:ChangeAnnounced (no action required) -->
<!-- After review, the Wrangler will move your page to Category:ChangeReadyForFesco... if it still needs more work it will move back to Category:ChangePageIncomplete-->
 
<!-- Select proper category, default is Self Contained Change -->
[[Category:SystemWideChange]]
[[Category:SystemWideChange]]


Line 32: Line 26:
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
-->
-->
* FESCo issue: <will be assigned by the Wrangler>
* FESCo issue: [https://pagure.io/fesco/issue/2472 #2472]
* Tracker bug: <will be assigned by the Wrangler>
* Tracker bug: [https://bugzilla.redhat.com/show_bug.cgi?id=1882465 #1882465]
* Release notes tracker: <will be assigned by the Wrangler>
* Release notes tracker: [https://pagure.io/fedora-docs/release-notes/issue/556 #556]


== Detailed Description ==
== Detailed Description ==
Line 45: Line 39:
Wayland has been used by default for Fedora Workstation (which uses GNOME) since Fedora 25. And while it was somewhat immature initially, today it is a very rock-solid experience on virtually everything Fedora Workstation runs on. The change in Fedora 25 kickstarted the drive to get everything working on Wayland, and the Workstation team succeeded beyond their wildest dreams. Firefox has been Wayland-native by default since Fedora 31 as well.
Wayland has been used by default for Fedora Workstation (which uses GNOME) since Fedora 25. And while it was somewhat immature initially, today it is a very rock-solid experience on virtually everything Fedora Workstation runs on. The change in Fedora 25 kickstarted the drive to get everything working on Wayland, and the Workstation team succeeded beyond their wildest dreams. Firefox has been Wayland-native by default since Fedora 31 as well.


On the KDE side, serious work into supporting Wayland started shortly after GNOME switched to Wayland by default. Unlike GNOME, KDE has a much broader stack in its toolkit, and it has taken longer to get to a usable state. With the Plasma 5.20 release, the Wayland protocol for screencasting as well as middle-click paste finally are supported, completing the required feature set switching to Wayland by default.
On the KDE side, serious work into supporting Wayland started shortly after GNOME switched to Wayland by default. Unlike GNOME, KDE has a much broader stack in its toolkit, and it has taken longer to get to a usable state. With the Plasma 5.20 release, the Wayland protocol for screencasting as well as middle-click paste finally are supported, completing the required feature set for switching to Wayland by default.


==== What about NVIDIA? ====
==== What about NVIDIA? ====
Plasma, in fact, ''does'' support NVIDIA GPUs with the proprietary driver on Wayland. It needs to be manually activated, which will be taken care of by the <code>kwin-wayland-nvidia</code> package. So the expectation is that all major GPUs will work just fine.
Plasma, in fact, ''does'' support NVIDIA GPUs with the proprietary driver on Wayland with no configuration needed as of Plasma 5.20.2.


==== Why not keep using X11? ====
==== Why not keep using X11? ====
Line 58: Line 52:
== Scope ==
== Scope ==
* Proposal owners:
* Proposal owners:
** Modify {{package|kwin}} to switch to Wayland
*** Split out <code>/usr/bin/kwin_x11</code> to the <code>kwin-x11</code> subpackage.
*** Make {{package|kwin}} require <code>kwin-wayland</code> and recommend <code>kwin-x11</code>
** Modify {{package|plasma-workspace}} to switch to Wayland
** Modify {{package|plasma-workspace}} to switch to Wayland
*** Rename <code>/usr/share/xsessions/plasma.desktop</code> to <code>/usr/share/xsessions/plasma-xorg.desktop</code> and subpackage it out as <code>plasma-workspace-xorg</code>
*** Rename <code>/usr/share/xsessions/plasma.desktop</code> to <code>/usr/share/xsessions/plasma-xorg.desktop</code>, subpackage it out as <code>plasma-workspace-xorg</code>, and have it require <code>kwin-x11</code>
*** Rename <code>/usr/share/wayland-sessions/plasmawayland.desktop</code> to <code>/usr/share/wayland-sessions/plasma.desktop</code>
*** Rename <code>/usr/share/wayland-sessions/plasmawayland.desktop</code> to <code>/usr/share/wayland-sessions/plasma.desktop</code>
*** Make {{package|plasma-workspace}} require <code>plasma-workspace-wayland</code> and recommend <code>plasma-workspace-xorg</code>
*** Make {{package|plasma-workspace}} require <code>plasma-workspace-wayland</code> and recommend <code>plasma-workspace-xorg</code>
** Add <code>kwin-wayland-nvidia</code> subpackage to {{package|kwin}} which contains <code>/usr/lib/environment.d/10-kwin-wayland-nvidia.conf</code>, which sets <code>$KWIN_DRM_USE_EGL_STREAMS</code> to <code>1</code>. This package will have have a Supplements dependency <code>(kwin-wayland and kmod-nvidia)</code>.
** Modify <code>@kde-desktop</code> comps group for Fedora 34 to include <code>plasma-workspace-xorg</code> for the media.
** Modify <code>@kde-desktop</code> comps group for Fedora 34 to include <code>plasma-workspace-xorg</code> for the media.


Line 76: Line 72:


== Upgrade/compatibility impact ==
== Upgrade/compatibility impact ==
Systems using certain (very old) graphics hardware or graphics drivers (matrox, etc.) may have problems running the Wayland session. In these (rare) cases, users may have to configure SDDM to use X11.
Systems using certain (very old) graphics hardware or graphics drivers (matrox, etc.) may have problems running the Wayland session. In these (rare) cases, users may have to configure SDDM to use X11. That can be done by placing "DisplayServer=x11" in the /etc/sddm.conf file or a dedicated file in /etc/sddm.conf.d directory.


== How To Test ==
== How To Test ==
Line 85: Line 81:


== Dependencies ==
== Dependencies ==
This mainly affects the {{package|plasma-workspace}} and {{package|kwin}} packages, and the details of what changes there are described in the Scope section.
This mainly affects the {{package|plasma-workspace}} and {{package|kwin}} packages, and details for the changes for those packages are described in the Scope section.


== Contingency Plan ==
== Contingency Plan ==

Latest revision as of 20:06, 7 October 2021

Wayland by Default for KDE Plasma Desktop

Summary

Change the default session selection in SDDM to prefer the Wayland-based KDE Plasma Desktop session over the X11-based one.

Owner

Current status

Detailed Description

With KDE Plasma 5.20, the KDE Plasma desktop environment has reached a point where nearly all commonly used features in the desktop and all major applications function in the Plasma Wayland environment on all major GPUs (including NVIDIA with the proprietary driver). Starting with Plasma 5.20 in Fedora 34, we will change the default configuration for Wayland and X11 Plasma sessions so that Wayland is preferred and used by default, while permitting the X11 session to be selected as the alternative desktop environment option.

Feedback

Is Wayland ready?

Wayland has been used by default for Fedora Workstation (which uses GNOME) since Fedora 25. And while it was somewhat immature initially, today it is a very rock-solid experience on virtually everything Fedora Workstation runs on. The change in Fedora 25 kickstarted the drive to get everything working on Wayland, and the Workstation team succeeded beyond their wildest dreams. Firefox has been Wayland-native by default since Fedora 31 as well.

On the KDE side, serious work into supporting Wayland started shortly after GNOME switched to Wayland by default. Unlike GNOME, KDE has a much broader stack in its toolkit, and it has taken longer to get to a usable state. With the Plasma 5.20 release, the Wayland protocol for screencasting as well as middle-click paste finally are supported, completing the required feature set for switching to Wayland by default.

What about NVIDIA?

Plasma, in fact, does support NVIDIA GPUs with the proprietary driver on Wayland with no configuration needed as of Plasma 5.20.2.

Why not keep using X11?

The fact of the matter is, Xorg is in "hard maintenance mode" per Christian Schaller and development on it has basically stopped beyond the most critical of fixes. Combined with the rapid maturation of the Wayland session in KDE Plasma, this is the best time to make the switch and push things over the edge for the KDE ecosystem in the same way that Fedora Workstation did for the GNOME ecosystem.

Benefit to Fedora

Fedora has long been a leader in advancing the adoption of the Wayland protocol as part of the overall strategy to improve the Linux graphical software stack. Much of the quality of Wayland for GNOME can be attributed to the work done by the Fedora Workstation WG as part of advancing the GNOME platform. It is now the KDE SIG's turn to do the same for the KDE platform. By making this change, we are helping push the adoption forward for newer, more streamlined, and overall more actively developed graphics technology for the KDE ecosystem.

Scope

  • Proposal owners:
    • Modify Package-x-generic-16.pngkwin to switch to Wayland
      • Split out /usr/bin/kwin_x11 to the kwin-x11 subpackage.
      • Make Package-x-generic-16.pngkwin require kwin-wayland and recommend kwin-x11
    • Modify Package-x-generic-16.pngplasma-workspace to switch to Wayland
      • Rename /usr/share/xsessions/plasma.desktop to /usr/share/xsessions/plasma-xorg.desktop, subpackage it out as plasma-workspace-xorg, and have it require kwin-x11
      • Rename /usr/share/wayland-sessions/plasmawayland.desktop to /usr/share/wayland-sessions/plasma.desktop
      • Make Package-x-generic-16.pngplasma-workspace require plasma-workspace-wayland and recommend plasma-workspace-xorg
    • Modify @kde-desktop comps group for Fedora 34 to include plasma-workspace-xorg for the media.
  • Other developers: N/A (not applicable for this Change)
  • Release engineering: #9741
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Objectives: N/A (not applicable for this Change)

Upgrade/compatibility impact

Systems using certain (very old) graphics hardware or graphics drivers (matrox, etc.) may have problems running the Wayland session. In these (rare) cases, users may have to configure SDDM to use X11. That can be done by placing "DisplayServer=x11" in the /etc/sddm.conf file or a dedicated file in /etc/sddm.conf.d directory.

How To Test

Log into a KDE Plasma desktop. Do any activity you would normally do in your daily desktop use: launching applications, configuring displays, etc. Things should work the same way under Wayland as they used to under X.

User Experience

The user experience should not change noticeably.

Dependencies

This mainly affects the Package-x-generic-16.pngplasma-workspace and Package-x-generic-16.pngkwin packages, and details for the changes for those packages are described in the Scope section.

Contingency Plan

  • Contingency mechanism: Revert the file renames and switch plasma-workspace-xorg to be the required package instead of plasma-workspace-wayland
  • Contingency deadline: beta freeze
  • Blocks release? Yes
  • Blocks product? KDE Spin

Documentation

Some upstream documents about Wayland

There is currently no coherent up to date documentation about Plasma Wayland.

Release Notes

The KDE Plasma Desktop is using the Wayland display system now. X applications will continue to run transparently through XWayland.