Wayland (Magyar) - ArchWiki

Jump to content

# Wayland (Magyar)

From ArchWiki
Fordítás állapota: Ez az oldal az angol Wayland című oldal magyar nyelvre lefordított változata. Utolsó fordítás dátuma: 2025.11.30. Amennyiben a lefordítás időpontja óta az angol nyelvű oldalon történtek újabb módosítások, akkor Ön segíthet hozzászinkronizálni az angolhoz ezt a magyar nyelvű fordítást.

További oldalak az adott témakörben

- KMS (Magyar)
- Xorg (Magyar)
- Screen capture (Magyar)#Wayland

Wayland is a display server protocol. It is aimed to become the successor of the X Window System. You can find a comparison between Wayland and Xorg on Wikipedia.

Display servers using the Wayland protocol are called compositors because they also act as compositing window managers. Below you can find a list of Wayland compositors[Hibás hivatkozás: Érvénytelen szekció].

For compatibility with native X11 applications to run them seamlessly, Xwayland can be used, which provides an X Server in Wayland.

## Követelmények

Most Wayland compositors only work on systems using Kernel mode setting. Wayland by itself does not provide a graphical environment; for this you also need a compositor (see the following section), or a desktop environment that includes a compositor (e.g. GNOME or Plasma).

For the GPU driver and Wayland compositor to be compatible they must support the same buffer API. There are two main APIs: GBM and EGLStreams.

Buffer API | GPU driver support | Wayland compositor support
--- | --- | ---
GBM | All except NVIDIA < 495* | All
EGLStreams | NVIDIA | GNOME

  * NVIDIA ≥ 495 supports both EGLStreams and GBM.[1]

Since NVIDIA introduced GBM support, many compositors (including Mutter and KWin) started using it by default for NVIDIA ≥ 495. GBM is generally considered better with wider support, and EGLStreams only had support because NVIDIA did not provide any alternative way to use their GPUs under Wayland with their proprietary drivers. Furthermore, KWin dropped support for EGLStreams after GBM was introduced into NVIDIA.

If you use a popular desktop environment/compositor and a GPU still supported by NVIDIA, you are most likely already using GBM backend. To check, run `journalctl -b 0 --grep "renderer for"`. To force GBM as a backend, set the following environment variables:

    GBM_BACKEND=nvidia-drm
    __GLX_VENDOR_LIBRARY_NAME=nvidia

## Kompozitorok

See Window manager#Types for the difference between Stacking, Tiling and Dynamic.

### Stacking

- COSMIC Compositor — Compositor for the COSMIC desktop environment.

  https://github.com/pop-os/cosmic-comp || cosmic-comp

- Enlightenment — See Enlightenment#Manually. More Info: [2] [3]

  https://www.enlightenment.org/ || enlightenment

- hikari — wlroots-based compositor inspired by cwm which is actively developed on FreeBSD but also supports Linux.

  https://web.archive.org/web/20241220075628/https://hikari.acmelabs.space/ || hikariAUR

- KDE KWin — See KDE#Starting Plasma.

  https://userbase.kde.org/KWin || kwin

- waybox — a *box-style (minimalist) Wayland compositor modeled largely on Openbox

  https://github.com/wizbright/waybox || wayboxAUR

- labwc — wlroots-based compositor inspired by Openbox.

  https://github.com/labwc/labwc || labwc

- Mutter — See GNOME#Starting.

  https://gitlab.gnome.org/GNOME/mutter || mutter

- wayfire — 3D compositor inspired by Compiz and based on wlroots.

  https://wayfire.org/ || wayfireAUR

- Weston — Wayland compositor designed for correctness, reliability, predictability, and performance.

  https://gitlab.freedesktop.org/wayland/weston || weston

- wio — wlroots-based compositor that aims to replicate the look and feel of Plan 9's Rio desktop.

  https://gitlab.com/Rubo/wio || wio-wlAUR

- wlmaker — wlroots-based compositor that's inspired by Window Maker.

  https://github.com/phkaeser/wlmaker || wlmakerAUR

### Tiling

- Cagebreak — Based on cage, inspired by ratpoison.

  https://github.com/project-repo/cagebreak || cagebreakAUR

- miracle-wm — A Wayland compositor based on Mir in the style of i3 and sway with the intention to be flashier and more feature-rich than either, like swayfx.

  https://github.com/miracle-wm-org/miracle-wm || miracle-wmAUR

- niri — A scrollable-tiling Wayland compositor.

  https://github.com/YaLTeR/niri/ || niri

- Qtile — A full-featured, hackable tiling window manager and Wayland compositor written and configured in Python.

  https://github.com/qtile/qtile || qtile

- Sway — i3-compatible Wayland compositor based on wlroots.

  https://github.com/swaywm/sway || sway

- SwayFx — Sway, but with eye candy!

  https://github.com/WillPower3309/swayfx || swayfxAUR

- Velox — Simple window manager based on swc, inspired by dwm and xmonad.

  https://github.com/michaelforney/velox || velox-gitAUR

### Dynamic

- cwc — awesome-like Wayland compositor based on wlroots.

  https://cudiph.github.io/cwc/apidoc/ || cwcAUR

- dwl — dwm-like Wayland compositor based on wlroots.

  https://codeberg.org/dwl/dwl || dwlAUR

- Hyprland — A dynamic tiling Wayland compositor that does not sacrifice on its looks.

  https://hypr.land || hyprland

- japokwm — Dynamic Wayland tiling compositor based around creating layouts, based on wlroots.

  https://github.com/werererer/japokwm || japokwm-gitAUR

- river — Dynamic tiling Wayland compositor inspired by dwm and bspwm.

  https://codeberg.org/river/river || river

- Vivarium — A dynamic tiling Wayland compositor using wlroots, with desktop semantics inspired by xmonad.

  https://github.com/inclement/vivarium || vivarium-gitAUR[Hibás hivatkozás: package not found]

### Egyéb

- Cage — Displays a single fullscreen application like a kiosk.

  https://www.hjdskes.nl/projects/cage/ || cage

- GNOME Kiosk — Mutter based compositor that provides an environment suitable for fixed purpose, or single application deployments like wall displays and point-of-sale systems.

  https://gitlab.gnome.org/GNOME/gnome-kiosk || gnome-kioskAUR

- phoc — A tiny wlroots-based compositor for mobile devices.

  https://gitlab.gnome.org/World/Phosh/phoc || phoc

- Wayback — X11 compatibility layer which allows for running full X11 desktop environments using Wayland components.

  https://wayback.freedesktop.org/ || wayback-x11AUR

Some of the above may support display managers. Check `/usr/share/wayland-sessions/compositor.desktop` to see how they are started.

## Display managers

Display managers listed below support launching Wayland compositors.

Name | Runs on | Description
--- | --- | ---
emptty | tty | Simple CLI Display Manager on TTY.
GDM | Wayland | GNOME display manager.
greetd | Wayland/Xorg/tty See Greetd#Greeters. | Minimal and flexible login daemon.
lemurs | tty | TUI display manager written in Rust.
lidmAUR | tty | A fully colorful customizable TUI display manager made in C.
LightDM | Xorg[4] | Cross-desktop display manager.
ly | tty | TUI display manager written in Zig
SDDM | Wayland/Xorg | QML-based display manager.
tbsmAUR | tty | Simple CLI session launcher written in pure bash.
uwsm | tty | Session and XDG autostart manager for standalone compositors. Provides a TUI menu, but can also be used with other display managers.

## Xwayland

Xwayland(1) is an X server that runs under Wayland and provides compatibility for native X11 applications that are yet to provide Wayland support. To use it, install the xorg-xwayland package.

Xwayland is started via a compositor, so you should check the documentation for your chosen compositor for Xwayland compatibility and instructions on how to start Xwayland.

Megjegyzés

- Security: Xwayland is an X server, so it does not have the security features of Wayland
- Performance: Xwayland has a nearly identical performance to that of X11. In some cases you might notice degraded performance, especially on NVIDIA cards.
- Compatibility: Xwayland is not fully backward compatible with X11. Some applications may not work properly under Xwayland.

### NVIDIA driver

Megjegyzés NVIDIA drivers prior to version 470 (e.g. nvidia-390xx-dkmsAUR) do not support hardware accelerated Xwayland, causing non-Wayland-native applications to suffer from poor performance in Wayland sessions.

Enabling DRM KMS is required. There may be additional information in the official documentation regarding your display manager (e.g. GDM).

### Kwin Wayland debug console

If you use kwin, execute the following to see which windows use Xwayland or native Wayland, surfaces, input events, clipboard contents, and more.

    $ qdbus6 org.kde.KWin /KWin org.kde.KWin.showDebugConsole

### Detect Xwayland applications

To determine whether an application is running via Xwayland, you can run extramausAUR. Move your mouse pointer over the window of an application. If the red mouse moves, the application is running via Xwayland.

Alternatively, you can use xorg-xeyes and see if the eyes are moving, when moving the mouse pointer over an application window.

Another option is to run xwininfo (from xorg-xwininfo) in a terminal window: when hovering over an Xwayland window the mouse pointer will turn into a + sign. If you click the window it will display some information and end, but it will not do anything with native Wayland windows.You can use `Ctrl+C` to end it.

You can also use xlsclients (from the xorg-xlsclients package). To list all applications running via Xwayland, run `xlsclients -l`.

## GUI libraries

### GTK

The gtk3 and gtk4 packages have the Wayland backend enabled. GTK will default to the Wayland backend, but it is possible to override it to Xwayland by modifying an environment variable: `GDK_BACKEND=x11`.

For theming issues, see GTK#Wayland backend.

### Qt

To enable Wayland support in Qt 5, install the qt5-wayland package. Qt 5 applications will then run under Wayland on a Wayland session.

While it should not be necessary, to explicitly run a Qt application with the Wayland plugin [5], use `-platform wayland` or `QT_QPA_PLATFORM=wayland` environment variable.

To force the usage of X11 on a Wayland session, use `QT_QPA_PLATFORM=xcb`.

This might be necessary for some proprietary applications that do not use the system's implementation of Qt. `QT_QPA_PLATFORM="wayland;xcb"` allows Qt to use the xcb (X11) plugin instead if Wayland is not available.[6]

The factual accuracy of this article or section is disputed.

Reason: This feels wrong or outdated. I don't know about other potential applications, but KeepassXC doesn't need any of this to minimize to tray properly under Sway (Discuss in Talk:Wayland (Magyar))

On some compositors, for example sway, Qt applications running natively might have missing functionality. For example, KeepassXC will be unable to minimize to tray. This can be solved by installing qt5ct and setting `QT_QPA_PLATFORMTHEME=qt5ct` before running the application.

Due to the Incorrect sizing and bad text rendering with WebEngine using fractional scaling on Wayland Qt WebEngine bug, applications using Qt WebEngine, for example Calibre, may display jagged fonts. A workaround is launching the application with `QT_SCALE_FACTOR_ROUNDING_POLICY=RoundPreferFloor`. This prevents the application window being fractional scaled.

### Clutter

The Clutter toolkit has a Wayland backend that allows it to run as a Wayland client. The backend is enabled in the clutterAUR package.

To run a Clutter application on Wayland, set `CLUTTER_BACKEND=wayland`.

### SDL

In SDL3, Wayland is used by default to communicate with the desktop compositor.

To run an SDL2 application on Wayland, set `SDL_VIDEODRIVER=wayland`. `SDL_VIDEODRIVER="wayland,x11"` allows SDL2 to use the x11 video driver instead if Wayland is not available.[7]. You may also want to install libdecor to enable window decorations (for example, on GNOME).

Refer to the official documentation for more details.

### GLFW

The glfw package has support for Wayland, and uses the Wayland backend if the environment variable `XDG_SESSION_TYPE` is set to `wayland` and the application developer has not set a specific desired backend.

See the source code for more information.

### GLEW

If the glew-wayland-gitAUR package does not work with the needed GLEW-based applications, the option is to use glew with Xwayland. See FS#62713.

### EFL

Enlightenment has complete Wayland support.

To run an EFL-based application on Wayland, set `ELM_DISPLAY=wl`.

### winit

Winit is a window handling library in Rust. It will default to the Wayland backend, but it is possible to override it to Xwayland by modifying environment variables:

- Prior to version 0.29.2, set `WINIT_UNIX_BACKEND=x11`
- For version 0.29.2 and higher, unset `WAYLAND_DISPLAY`, which forces a fallback to X using the `DISPLAY` variable. [8]

### Electron

Megjegyzés In Plasma, some Electron applications can use the wrong icon (default Wayland one) for the window, while using the correct icon for the taskbar. To fix that, you can create a special application/window rule, forcing the desktop file name on such applications.

Wayland support can be activated using command line flags, or an environment variable.

#### Command line flags

Megjegyzés Some packages do not forward flags to Electron, and thus will need the application developer to implement a solution.

See Chromium#Native Wayland support to command-line flags needed to work on Wayland. Note that the command-line flag `--ozone-platform-hint=auto` does not work since Electron 38.

You can pass these flags manually, persist them in an Electron configuration file, or override the .desktop file at ~/.local/share/applications of an application by adding the flags to the end of the `Exec=` line.

The factual accuracy of this article or section is disputed.

Reason: Old version of Electron needs `--enable-features=WebRTCPipeWireCapturer` But what version is it enable by default? Also default behavior of Electron vendored by non-free software would be wrong. (Discuss in Talk:Wayland (Magyar))

Electron enable WebRTC screen capture over PipeWire by default. The capture is based on xdg-desktop-portal.

A case of missing top bars can be solved by using: `--enable-features=WaylandWindowDecorations`. This will typically be necessary under GNOME (supported since electron17).

#### Environment variable

Applications using Electron between versions 28 and 37 can use the environment variable `ELECTRON_OZONE_PLATFORM_HINT` set to `auto` or `wayland`.

This takes lower priority than the command line flags.

### Java

The open source implementation of the Java platform OpenJDK, does not yet have native support for Wayland. Until Wakefield, the project that aims to implement Wayland in OpenJDK, is available, Xwayland can be used.

See Debian:Wayland#Java Programs (supported since OpenJDK 16?):

  Starting with OpenJDK 16, the JRE can dynamically load GTK3 (which has Wayland support), it appears this might be supported according to this discussion.
  The `_JAVA_AWT_WM_NONREPARENTING` environment variable can be set to "1" to fix misbehavior where the application starts with a blank screen.

Since XWayland doesn't have full feature parity with Wayland, WLToolkit can be used to fill the gaps while Wakefield isn't ready. It can be activated with `-Dawt.toolkit.name=WLToolkit`. Some programs such as the JetBrains IDEs support it.

## Tippek és trükkök

### Automation

- ydotool (ydotool) - Generic command-line automation tool (not limited to wayland). Enable/start the `ydotool.service` user unit. See ydotoold(8), ydotool(1).
- wtype (wtype) - xdotool type for wayland. See wtype(1).
- keyboard - Python library that works on Windows and Linux with experimental OS X support. Also see the mouse library.
- wlrctl (wlrctlAUR) - A command line utility for miscellaneous wlroots extensions (supports the foreign-toplevel-management, virtual-keyboard, virtual-pointer)

### Remap keyboard or mouse keys

See Input remap utilities.

### Screencast

See Screen capture#Screencasting and Screen capture#Screencast Wayland windows with X11 applications.

### Chromium does not fully maximize

This article or section is a candidate for moving to Chromium.

Notes: Has nothing to do with Wayland in general and is only specific to Chromium. (Discuss in Talk:Wayland (Magyar))

You have to enable Use system title bar and borders via the chrome://settings/appearance menu.

### Persist clipboard after app close

This article or section is a candidate for merging with Clipboard.

Notes: This is a standard behavior even on Xorg. There are many other clipboard managers. (Discuss in Talk:Wayland (Magyar))

Due to Wayland's design philosophy, clipboard data is stored in the memory of the source client. When the client closes, the clipboard data is lost. You can solve this using wl-clip-persist, which runs in the background to reads the clipboard data and stores it in its own memory, separate from the source client.

### Autostart wayland compositor as systemd service

Megjegyzés Universal Wayland Session Manager automatically generates systemd units for your compositors, moreover it helps you to integrate graphical applications with systemd.

If you do not want to use a display manager or a shell, you can autostart your Wayland compositor with a systemd service. Adjust the `ExecStart` line with the compositor you want to use. Here is an example for KDE Plasma:

    /etc/systemd/system/wayland-compositor.service

    [Unit]
    After=graphical.target systemd-user-sessions.service modprobe@drm.service
    Conflicts=getty@tty1.service #option to disable unusable tty1

    [Service]
    User=username
    WorkingDirectory=~

    PAMName=login
    TTYPath=/dev/tty1
    UnsetEnvironment=TERM

    StandardOutput=journal
    ExecStart=/usr/lib/plasma-dbus-run-session-if-needed /usr/bin/startplasma-wayland

    [Install]
    WantedBy=graphical.target

### Use another renderer for wlroots based compositor

You can use another wlroots renderer such as vulkan by specifying the `WLR_RENDERER` environment variable for wlroots based compositor. The list of available ones is on the wlroots documentation.

## Hibaelhárítás

### Színkorrekció

See Backlight#Color correction.

### Slow motion, graphical glitches, and crashes

Gnome-shell users may experience display issues when they switch to Wayland from X. One of the root cause might be the `CLUTTER_PAINT=disable-clipped-redraws:disable-culling` set by yourself for Xorg-based gnome-shell. Just try to remove it from `/etc/environment` or other rc files to see if everything goes back to normal.

### Remote display

- wlroots0.18 and wlroots0.19 (used by sway) offers a VNC backend via wayvnc since version 0.10. RDP backend has been removed [9].
- mutter has now remote desktop enabled at compile time, see [10] and gnome-remote-desktop for details.
- krfb offers a VNC server for kwin. `krfb-virtualmonitor` can be used to set up another device as an extra monitor.
- There was a merge of FreeRDP into Weston in 2013, enabled via a compile flag. The weston package has it enabled since version 6.0.0.
- waypipe (or waypipe-gitAUR) is a transparent proxy for Wayland applications, with a wrapper command to run over SSH
  - Here is an example for launching a remote KDE kcalc under Plasma:

        $ waypipe ssh example.local env QT_QPA_PLATFORM=wayland QT_QPA_PLATFORMTHEME=KDE dbus-launch kcalc

### Input grabbing in games, remote desktop and VM windows

In contrast to Xorg, Wayland does not allow exclusive input device grabbing, also known as active or explicit grab (e.g. keyboard, mouse), instead, it depends on the Wayland compositor to pass keyboard shortcuts and confine the pointer device to the application window.

This change in input grabbing breaks current applications' behavior, meaning:

- Hotkey combinations and modifiers will be caught by the compositor and will not be sent to remote desktop and virtual machine windows.
- The mouse pointer will not be restricted to the application's window which might cause a parallax effect where the location of the mouse pointer inside the window of the virtual machine or remote desktop is displaced from the host's mouse pointer.

Wayland solves this by adding protocol extensions for Wayland and Xwayland. Support for these extensions is needed to be added to the Wayland compositors. In the case of native Wayland clients, the used widget toolkits (e.g GTK, Qt) needs to support these extensions or the applications themselves if no widget toolkit is being used. In the case of Xorg applications, no changes in the applications or widget toolkits are needed as the Xwayland support is enough.

These extensions are already included in wayland-protocols, and supported by xorg-xwayland.

The related extensions are:

- Xwayland keyboard grabbing protocol
- Compositor shortcuts inhibit protocol
- Relative pointer protocol
- Pointer constraints protocol

Supporting Wayland compositors:

- Mutter, GNOME's compositor since release 3.28
- wlroots supports relative-pointer and pointer-constraints
- Kwin
  - KDE#X11 shortcuts conflict on Wayland
  - Keyboard shortcuts inhibit

Supporting widget toolkits:

- GTK since release 3.22.18.

### Nem működnek a GTK témák

See https://github.com/swaywm/sway/wiki/GTK-3-settings-on-Wayland.

### Avoid loading NVIDIA modules

Add `__EGL_VENDOR_LIBRARY_FILENAMES=/usr/share/glvnd/egl_vendor.d/50_mesa.json` as environment variable before launching a Wayland compositor like sway.

### Magnifying/surface scaling

Screen magnifying is not solved yet, a pull request was merged mid-2022 providing the protocol wp-surface-scale.

### Wayland lag/stuttering since kernel 6.11.2 (AMD)

Until this issue is patched in future kernel releases, a workaround is to add `amdgpu.dcdebugmask=0x400` to the cmdline.

See: https://community.frame.work/t/wayland-lag-stuttering-since-kernel-6-11-2/59422

## További olvasnivaló a témában

- Wayland documentation online
- Official repository
- Fedora:How to debug Wayland problems
- We are Wayland now! - An updated version of "Are we Wayland yet?"
- Awesome Wayland projects
- Cursor themes
- Arch Linux forum discussion
- i3 Migration Guide - Common X11 apps used on i3 with Wayland alternatives
- Wayland Explorer - A better way to read Wayland documentation
- How can I tell if an application is using XWayland

Category:

- Wayland (Magyar)

Hidden categories:

- Pages with broken section links
- Pages with broken package links
- Pages or sections flagged with Template:Accuracy
- Pages or sections flagged with Template:Move
- Pages or sections flagged with Template:Merge

Wayland (Magyar)
Add topic