From Fedora Project Wiki

(Display rotation is not yet supported in GNOME)
Line 115: Line 115:
=== Screen capture is not available with usual apps ===
=== Screen capture is not available with usual apps ===


One of the features of Wayland is its security design, which helps to guard the user against malicious apps. Apps can no longer see everything on the screen and spy on you. But that also means you cannot run a common application (like {{pkg|shutter}} or {{pkg|gtk-recordmydesktop}}) and use it to make a screenshot or a screencast of your desktop - it will see only its own window, but nothing else (or it might crash right away). System (trusted) apps need to be used to perform these actions. GNOME's screenshot tool is one of them.
One of the features of Wayland is its security design, which helps to guard the user against malicious apps. Apps can no longer see everything on the screen and spy on you. But that also means you cannot run a common application (like {{pkg|shutter}} or {{pkg|gtk-recordmydesktop}}) and use it to make a screenshot or a screencast of your desktop - it will see only its own window, but nothing else (or it might crash right away). System (trusted) apps need to be used to perform these actions.


'''FIXME: which apps can be currently used to capture screen? Is it possible to elevate privileges of other such tools?'''
In GNOME, you can use Screenshot tool (available in overview or as <code>Printscreen</code> hotkey or as <code>gnome-screenshot</code> command) to capture a screenshot of the full desktop or a particular window. You can press <code>Ctrl+Alt+Shift+R</code> keyboard shortcut to start video recording of the whole desktop (stop it by pressing the same shortcut again, there's an indicator in the upper right corner) and find the screencast in <code>~/Videos</code>.


=== Apps can no longer set their window position ===
=== Apps can no longer set their window position ===

Revision as of 12:20, 6 November 2015

Wayland is intended as a simpler replacement for X11. It changes the design of a Linux desktop architecture considerably. Unlike X11, there is no dedicated standalone server in Wayland. What was previously done between the app, its toolkit, the Xserver and the window manager is now shared between the app, its toolkit and the Wayland compositor which manages the compositing, input, windows management, etc. The apps and toolkits are now in charge of their own rendering and decorations (client side decorations), so any issues usually sit between the toolkit (e.g. GTK+) and the Wayland compositor (e.g. mutter).

Identifying Wayland problems

Are you running a Wayland session?

In GNOME, there's a gear button at the login screen which can be used to either log into standard GNOME desktop (X11 session), or GNOME on Wayland session (if you have a password-less user account, you won't see the gear icon, it is displayed only when the password prompt appears). Use the gear button to determine type of session you're logging into.

In KDE, there is support for running a nested Wayland session inside your X11 session. You'll need to install kwin-wayland package and then follow up with this howto. There doesn't seem to be out-of-the-box support for running a full Wayland session at the moment.

Other desktop environments are not currently capable of running a Wayland session.

If you want to figure out which type of session you're running right now, without logging out and in again, .... FIXME: how to do that?

If you're not running X11 session, not a Wayland session, your problems are not related to Wayland. It's a bug either in that particular application, or X11 itself, see How to debug Xorg problems.

Does your application run on Wayland natively, or uses XWayland (X11 compatibility layer)?

It is important to know whether the problematic application is a native Wayland application, or runs through XWayland, which allows legacy applications to still run on top of Xorg server, but display in a Wayland session.

There are several ways how to identify whether an application is using Wayland or XWayland:

  • Select the window using xwininfo or xprop. Run:
    $ xwininfo

    Your mouse pointer should change to a cross under X11, it doesn't seem to change under Wayland. Now click anywhere inside the app window you want to test. If the xwininfo command finishes (it should print window properties into the terminal), the app under test is running under XWayland. If nothing happens (the xwininfo command is still waiting until you select a window), the app under test is running under Wayland (you can close the command with Ctrl+C).
    You can also use xprop command using the same instructions.

  • XWayland applications are listed in xlsclients output. Run:
    $ xlsclients

    However, this list of not always entirely reliable, some apps might be missing.

  • You can try to run the app while unsetting DISPLAY environment variable:
    $ DISPLAY='' command

    If the application runs OK, it should be using Wayland natively.

  • You can run the app with WAYLAND_DEBUG=1 environment variable:
    $ WAYLAND_DEBUG=1 command

    If you see loads of output (when compared to a standard run), the app is using Wayland natively.

  • Under GNOME, you can determine this using integrated Looking Glass tool. Hit Alt+F2, run:
    lg

    click on Windows in the upper right corner of the tool and select desired window by clicking on its name. If you see MetaWindowWayland in the first line, this app is running under Wayland. If you see MetaWindowX11 in the first line, this app is running under X11.

If you have identified the problem to be in a XWayland application, try to reproduce the issue in a standard X11 session. If it happens as well, it is not related to Wayland, it's a bug either in that particular application, or Xorg server, see How to debug Xorg problems. If the problem happens only under XWayland but not in an X11 session... FIXME: what to do now? report against xwayland somewhere?

Identifying problem component

Wayland itself is a protocol and the problem is rarely in the protocol itself. Rather, the problem is likely to be in the app or its toolkit, or in the compositor.

The most notable Wayland-ready toolkits are:

  • GTK+ 3 - default apps in GNOME environment use almost exclusively this toolkit. Please note that apps using older GTK+ 2 are not Wayland-ready.
  • QT 5 - many apps in KDE environment use this toolkit. Please note that apps using older QT 4 are not Wayland-ready.

The most notable Wayland compositors are:

  • Weston - the reference implementation of a Wayland compositor, maintained directly by the Wayland project
  • Mutter - compositor in GNOME. If you run GNOME, it is using this compositor.
  • Kwin - compositor in KDE. If you run KDE, it is using this compositor.

Testing under different compositors

If you experience a problem with a Wayland app, it is very useful to know whether the problem is present under just a single compositor (in that case it's likely a compositor bug) or under multiple compositors (in that case it's likely an app/toolkit bug).

Please run your session with the reference Weston compositor and try to reproduce the issue. FIXME: how to do that?

If you can reproduce the issue with Weston, file an issue against the app or its toolkit (gtk+, qt, etc). Otherwise file the issue against the compositor your environment uses (mutter, kwin, etc).


Reporting the issue

After you've identified against which component to (most probably) report the issue, there are several places where to report it:

  • Red Hat Bugzilla - recommended for issues related to wayland itself, weston compositor, non-GNOME apps, KDE project, QT toolkit
  • GNOME Bugzilla - recommended for issues related to mutter compositor, GTK+ toolkit, applications under the GNOME project (most of default apps in Fedora Workstation)

When reporting the issue, please make your report block our tracker, so that we have a good overall picture of what is broken across many different components. In your bug report, set Blocks: WaylandRelated (one of the fields available after you've reported the bug, you might need to toggle showing advanced fields). That will make it block one of these trackers, depending where you reported the bug:

Information to include in your bug report

  1. System journal. Since there is no unique server like the X11 server, most of the important information will come from the the Wayland compositor and the apps. All of that should be in system journal nowadays. You can save a full journal since last boot like this:
    $ journalctl -ab > journal.log

    You can also edit the file and according to the timestamps remove everything long prior to when the issue occurred, in order to make the log more succinct.

    • If your system crashed or became unresponsive so that you had to reboot it, you can see the journal from the previous boot using journalctl -a -b -1 instead.
  2. Wayland debug output. If you can reproduce the issue, please run the problematic app like this:
    $ WAYLAND_DEBUG=1 command |& tee debug.out

    You should see loads of output being printed out. It will involve all communication between the app and the compositor.

  3. Information whether the same problem occurs when you run the app using XWayland instead of Wayland. For GTK+ 3 apps, you can force a native Wayland app to run using XWayland like this:
    $ GDK_BACKEND=x11 command

    Vice versa, you can also force a XWayland app to run using Wayland (in case it has just experimental support):

    $ GDK_BACKEND=wayland command

    All of this applies to just GTK+ 3 apps. FIXME: what about other toolkits, like QT 5?

  4. Hardware description is useful for some hardware-related bugs:
    $ lspci -nn > lspci.out
  5. Package versions. You can collect the list and versions of all your packages installed using:
    $ rpm -qa | sort > packages.out
  6. The usual information that every bug report should have.

Known issues, frequent complaints, fundamental changes

Here we will list high-profile issues which are known to be broken, not yet implemented, or intentionally behaving differently from regular X11 apps.

You can see more of known issues in our Bugzilla trackers, see Fedora Wayland tracker and GNOME Wayland tracker.

There is no middle-click clipboard selection

Under X11, you have one clipboard accessible through well-known ctrl+c, ctrl+v shortcuts, and another clipboard (called primary selection) that copies everything you highlight using the cursor and pastes text by pressing the middle mouse button. The former clipboard is still accessible in Wayland programs, but the middle-click clipboard is no longer supported. That is a design choice, not a bug, though quite contentious.

Many well-known X11 utilities don't work

Power users are familiar with a large range of X11-related utilities, like xkill, xrandr, xdotool, xsel. These tools won't work under Wayland session, or will only work with XWayland applications but not Wayland applications. Some tools might have a replacement which allows to perform similar tasks.

FIXME: add some Wayland-ready replacements for popular X11 tools

Screen capture is not available with usual apps

One of the features of Wayland is its security design, which helps to guard the user against malicious apps. Apps can no longer see everything on the screen and spy on you. But that also means you cannot run a common application (like shutter or gtk-recordmydesktop) and use it to make a screenshot or a screencast of your desktop - it will see only its own window, but nothing else (or it might crash right away). System (trusted) apps need to be used to perform these actions.

In GNOME, you can use Screenshot tool (available in overview or as Printscreen hotkey or as gnome-screenshot command) to capture a screenshot of the full desktop or a particular window. You can press Ctrl+Alt+Shift+R keyboard shortcut to start video recording of the whole desktop (stop it by pressing the same shortcut again, there's an indicator in the upper right corner) and find the screencast in ~/Videos.

Apps can no longer set their window position

With X11, apps could place their window at an arbitrary position. With Wayland, the compositor decides where to place them and they can no longer move their window or influence their placement in any way. For this reason, the window placement might be different from what you're used to. If you have any objections to the window placement, you need to discuss that with the compositor authors.

Mouse locking and relative mouse movement is not implemented yet, affecting games

Games often need to lock your mouse pointer at a single place, and receive relative movement events instead of absolute coordinates. This is not yet implemented in Wayland, so your cursor might move even when it is not supposed to or it might leave game window boundaries even when it should stay locked inside the window.

FIXME: add link to track progress, is it https://bugzilla.gnome.org/show_bug.cgi?id=744104 ? does this also involve double-pointer in games issue?

Display rotation is not yet supported in GNOME

Wayland itself is capable of having rotated displays, but support needs to be present in the compositor. GNOME does not yet allow to rotate your display in its control center.

FIXME: find a link to bugzilla or report it