From Fedora Project Wiki
 
(27 intermediate revisions by 4 users not shown)
Line 8: Line 8:
== Owner ==
== Owner ==


* Name: [[User:FASAcountName| Matthias Clasen]]
* Name: [[User:mclasen| Matthias Clasen]] [[User:rstrode| Ray Strode]] [[User:jadahl| Jonas Ådahl]] [[User:ofourdan| Olivier Fourdan]] [[User:mchalupa| Marek Chalupa]]  
* Email: mclasen@redhat.com
* Email: mclasen@redhat.com rstrode@redhat.com ofourdan@redhat.com jadahl@redhat.com mchalupa@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 18: Line 18:


== Current status ==
== Current status ==
* Targeted release: [[Releases/23 | Fedora 23 ]]
* Targeted release: [[Releases/25 | Fedora 25 ]]
* Last updated: 2015-03-25
* Last updated: 2016-08-23
<!-- 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:
Line 28: Line 28:
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: <will be assigned by the Wrangler>
* Tracker bug: 1277927


== Detailed Description ==
== 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
We will change GDM to use wayland by default for GNOME.  The code will automatically fall back to Xorg in cases where wayland is unavailable (like nvidia).  Users will be able to disable wayland by setting WaylandEnable=false in /etc/gdm/custom.conf but there will no longer be two separate menu items for GNOME on Wayland and GNOME on X11.
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 ==
Line 43: Line 42:
== 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.
** merge the gnome-wayland.desktop and gnome.desktop into one file that is distributed into both /usr/share/wayland-sessions and /usr/share/xsessions. since they have same filename, the wayland one will "win". - DONE
** 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) - DONE
** Close all remaining feature parity gaps between the Wayland and the X11 session:
** Close remaining feature parity gaps between the Wayland and the X11 session:
*** input methods
*** See the [[Wayland_features|Wayland features]] page for a complete list of features.
*** on-screen keyboard
*** game support - Wayland and mutter are DONE, missing support in Xwayland and SDL
*** hi-dpi support
*** details panel in control center needs to show hardware graphics device
*** clipboard proxy for xwayland
*** input methods - DONE
*** attached modal dialogs
*** on-screen keyboard - DONE
*** tablet support
*** hi-dpi support - DONE
*** startup notification
*** tablet support - GTK+ side DONE, control-center side still in progress
*** touch proxy for xwayland
*** startup notification - DONE
*** accessibility features
*** touch proxy for xwayland - DONE
*** output rotation
*** accessibility features - Screen reader and visual bell are DONE
 
*** output rotation / randr like features - DONE
*** triple-monitor setups (like [[https://bugzilla.gnome.org/show_bug.cgi?id=750610 this]])
*** primary selection - DONE ([https://wiki.gnome.org/Initiatives/Wayland/PrimarySelection discussion])
*** dnd actions and cancellation - DONE
* Other developers:
* Other developers:
** GTK+ applications that use X11-specific APIs need to be patched to explicitly use the GDK X backend
** GTK+ applications that use X11-specific APIs need to be patched to explicitly use the GDK X backend
** xwayland needs to prevent access from outside the session
** Popup and dialog placement issues in applications


* Release engineering: No release engineering changes needed
* Release engineering: No release engineering changes needed
Line 66: Line 68:


== Upgrade/compatibility impact ==
== 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
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.
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 ==
== How To Test ==


# Boot a fresh F23 workstation install.
# Boot a fresh F25 workstation install.
# 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)
# 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)
# Verify that the session chooser offers 'GNOME', 'GNOME on X11' and 'GNOME Classic', and that 'GNOME' is selected by default.
# Verify that the session chooser offers 'GNOME', 'GNOME on X11' and 'GNOME Classic', and that 'GNOME' is selected by default.
Line 92: Line 92:
== Contingency Plan ==
== Contingency Plan ==


* Contingency mechanism: Revert the changes to the session files, thereby keeping the X-based session as the default
* Contingency mechanism: Rename /usr/share/wayland-sessions/gnome.desktop to /usr/share/wayland-sessions/gnome-wayland.desktop so it doesn't preempt the X11 session file anymore, thereby keeping the X-based session as the default and adding wayland back to the list.
* Contingency deadline: beta
* Contingency deadline: beta
* Blocks release? no
* Blocks release? no
Line 109: Line 109:
<!-- 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]]

Latest revision as of 14:43, 24 August 2016

Wayland By Default

Summary

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

Owner

Current status

  • Targeted release: Fedora 25
  • Last updated: 2016-08-23
  • Tracker bug: 1277927

Detailed Description

We will change GDM to use wayland by default for GNOME. The code will automatically fall back to Xorg in cases where wayland is unavailable (like nvidia). Users will be able to disable wayland by setting WaylandEnable=false in /etc/gdm/custom.conf but there will no longer be two separate menu items for GNOME on Wayland and GNOME on X11.

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:
    • merge the gnome-wayland.desktop and gnome.desktop into one file that is distributed into both /usr/share/wayland-sessions and /usr/share/xsessions. since they have same filename, the wayland one will "win". - DONE
    • 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) - DONE
    • Close remaining feature parity gaps between the Wayland and the X11 session:
      • See the Wayland features page for a complete list of features.
      • game support - Wayland and mutter are DONE, missing support in Xwayland and SDL
      • details panel in control center needs to show hardware graphics device
      • input methods - DONE
      • on-screen keyboard - DONE
      • hi-dpi support - DONE
      • tablet support - GTK+ side DONE, control-center side still in progress
      • startup notification - DONE
      • touch proxy for xwayland - DONE
      • accessibility features - Screen reader and visual bell are DONE
      • output rotation / randr like features - DONE
      • triple-monitor setups (like [this])
      • primary selection - DONE (discussion)
      • dnd actions and cancellation - DONE
  • Other developers:
    • GTK+ applications that use X11-specific APIs need to be patched to explicitly use the GDK X backend
    • Popup and dialog placement issues in applications
  • 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 F25 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: Rename /usr/share/wayland-sessions/gnome.desktop to /usr/share/wayland-sessions/gnome-wayland.desktop so it doesn't preempt the X11 session file anymore, thereby keeping the X-based session as the default and adding wayland back to the list.
  • Contingency deadline: beta
  • Blocks release? no
  • Blocks product? no

Documentation

TBD

Release Notes

TBD