From Fedora Project Wiki
m
Line 18: Line 18:
  
 
== Current status ==
 
== Current status ==
* Targeted release: [[Releases/23 | Fedora 23 ]]  
+
* Targeted release: [[Releases/23 | Fedora 23 ]]
 
* Last updated: 2015-03-25
 
* Last updated: 2015-03-25
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page  
+
<!-- After the change proposal is accepted by FESCo, tracking bug is created in Bugzilla and linked to this page
 
Bugzilla states meaning as usual:
 
Bugzilla states meaning as usual:
 
NEW -> change proposal is submitted and announced
 
NEW -> change proposal is submitted and announced
Line 34: Line 34:
 
We will change the default session in the gdm session selector to be the Wayland session, if both are available. If a user makes
 
We will change the default session in the gdm session selector to be the Wayland session, if both are available. If a user makes
 
an explicit choice, we will still remember it and keep using the same session the next time he logs in.
 
an explicit choice, we will still remember it and keep using the same session the next time he logs in.
 
  
 
== Benefit to Fedora ==
 
== Benefit to Fedora ==
  
 
Using Wayland instead of X gives a much better basis for isolating applications from each other and the system.
 
Using Wayland instead of X gives a much better basis for isolating applications from each other and the system.
 
+
 
 
<!-- What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new functionality, what capabilities does it bring? Why will Fedora become a better distribution or project because of this proposal?-->
 
<!-- What is the benefit to the platform?  If this is a major capability update, what has changed?  If this is a new functionality, what capabilities does it bring? Why will Fedora become a better distribution or project because of this proposal?-->
  
 
== Scope ==
 
== Scope ==
 
* Proposal owners:
 
* Proposal owners:
** Rename the gnome-wayland.session file to gnome.session and the current gnome.session file to gnome-x.session. At the same time, change the display names around to be just 'GNOME' for the default, and 'GNOME on X11' for the X11-based session.  
+
** Rename the gnome-wayland.session file to gnome.session and the current gnome.session file to gnome-x.session. At the same time, change the display names around to be just 'GNOME' for the default, and 'GNOME on X11' for the X11-based session.
 
** Make gdm hide Wayland sessions from the session chooser if we know they will not work (because the login screen had to fall back to X)
 
** Make gdm hide Wayland sessions from the session chooser if we know they will not work (because the login screen had to fall back to X)
 
** Close all remaining feature parity gaps between the Wayland and the X11 session:
 
** Close all remaining feature parity gaps between the Wayland and the X11 session:
Line 87: Line 86:
  
 
== Dependencies ==
 
== Dependencies ==
The tasks lists in the Scope section are spread across a number of upstream modules and packages: gtk3, gnome-shell, mutter, libinput, Xorg, gdm.  
+
The tasks lists in the Scope section are spread across a number of upstream modules and packages: gtk3, gnome-shell, mutter, libinput, Xorg, gdm.
  
 
== Contingency Plan ==
 
== Contingency Plan ==
Line 105: Line 104:
 
<!-- When your change proposal page is completed and ready for review and announcement -->
 
<!-- When your change proposal page is completed and ready for review and announcement -->
 
<!-- remove Category:ChangePageIncomplete and change it to Category:ChangeReadyForWrangler -->
 
<!-- 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) -->  
+
<!-- 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-->
 
<!-- After review, the Wrangler will move your page to Category:ChangeReadyForFesco... if it still needs more work it will move back to Category:ChangePageIncomplete-->
  
 
[[Category:SystemWideChange]
 
[[Category:SystemWideChange]

Revision as of 18:52, 30 March 2015

Wayland By Default

Summary

Change the default session selection in gdm to prefer the Wayland-based GNOME session over the X11-based one.

Owner

  • Name: Matthias Clasen
  • Email: mclasen@redhat.com
  • Release notes owner:
  • Product: Workstation
  • Responsible WG: Workstation

Current status

  • Targeted release: Fedora 23
  • Last updated: 2015-03-25
  • Tracker bug: <will be assigned by the Wrangler>

Detailed Description

We will change the default session in the gdm session selector to be the Wayland session, if both are available. If a user makes an explicit choice, we will still remember it and keep using the same session the next time he logs in.

Benefit to Fedora

Using Wayland instead of X gives a much better basis for isolating applications from each other and the system.


Scope

  • Proposal owners:
    • Rename the gnome-wayland.session file to gnome.session and the current gnome.session file to gnome-x.session. At the same time, change the display names around to be just 'GNOME' for the default, and 'GNOME on X11' for the X11-based session.
    • Make gdm hide Wayland sessions from the session chooser if we know they will not work (because the login screen had to fall back to X)
    • Close all remaining feature parity gaps between the Wayland and the X11 session:
      • input methods
      • on-screen keyboard
      • hi-dpi support
      • clipboard proxy for xwayland
      • attached modal dialogs
      • tablet support
      • startup notification
      • touch proxy for xwayland
      • accessibility features
      • output rotation
  • Other developers: GTK+ applications that use X11-specific APIs need to be patched to explicitly use the GDK X backend
  • Release engineering: No release engineering changes needed
  • Policies and guidelines: No policy or guideline changes needed

Upgrade/compatibility impact

Systems using certain graphics hw or graphics drivers (matrox, qxl) may have problems running the Wayland session. In these (rare) cases, users may have to configure gdm to use X11 (although automatic fallback should work most of the time). If we don't manage to close all the feature parity gaps entirely, then users relying on those features may have to choose the X11-based session.

How To Test

  1. Boot a fresh F23 workstation install.
  2. Verify that the login screen is running under Wayland (you can do so by looking for a process called gdm-wayland-session in ps -ef output)
  3. Verify that the session chooser offers 'GNOME', 'GNOME on X11' and 'GNOME Classic', and that 'GNOME' is selected by default.
  4. Log into all three of these sessions and verify that 'GNOME' gives you Wayland (you can verify this by bringing up the GTK+ inspector in a gtk3 application and checking what backend is used), while the other two end up with X11.
  1. Change the gdm configuration by adding WaylandEnable=false and reboot
  2. Verify that the login screen comes up under X
  3. Verify that only X-based sessions are offered in the session chooser
  1. Log into the Wayland-based session again
  2. Use the desktop normally, and verify that there are no obvious instabilities, or Wayland-specific bugs or performance problems

User Experience

The user experience of the Wayland session is identical to that of the X session.

Dependencies

The tasks lists in the Scope section are spread across a number of upstream modules and packages: gtk3, gnome-shell, mutter, libinput, Xorg, gdm.

Contingency Plan

  • Contingency mechanism: Revert the changes to the session files, thereby keeping the X-based session as the default
  • Contingency deadline: beta
  • Blocks release? no
  • Blocks product? no

Documentation

TBD

Release Notes

TBD

[[Category:SystemWideChange]