Wayland: Difference between revisions
imported>Qyriad add note about NIXOS_OZONE_WL |
imported>Spitzeqc Added basics for enabling Wayland |
||
(6 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{Expansion| | {{Expansion|Verify accuracy of article}} | ||
= | == Checking for Wayland == | ||
To check if you are using Wayland, run the following command {{Commands|$ echo $XDG_SESSION_TYPE}} If {{ic|wayland}} is returned, you are running Wayland | |||
== | == Setup == | ||
Two things are required for running Wayland: a compatible Display Manager, and a compatible Compositor. | |||
{{Expansion|Verify completeness of DM and Compositor lists}} | |||
== Display Managers == | |||
Display Managers are responsible for handling user login. | |||
== Electron and Chromium == | The following Display Managers support using both X and Wayland protocols | ||
==== Graphical ==== | |||
* [https://github.com/NixOS/nixpkgs/blob/592047fc9e4f7b74a4dc85d1b9f5243dfe4899e3/nixos/modules/services/x11/display-managers/gdm.nix gdm] is the [[GNOME]] Display Manager. | |||
* [https://github.com/NixOS/nixpkgs/blob/592047fc9e4f7b74a4dc85d1b9f5243dfe4899e3/nixos/modules/services/x11/display-managers/sddm.nix sddm] is the default Display Manager for [[KDE]]. Wayland support is currently experimental. | |||
==== Text-based ==== | |||
* [https://github.com/NixOS/nixpkgs/blob/592047fc9e4f7b74a4dc85d1b9f5243dfe4899e3/pkgs/applications/display-managers/ly/default.nix ly] | |||
* [https://github.com/NixOS/nixpkgs/blob/592047fc9e4f7b74a4dc85d1b9f5243dfe4899e3/pkgs/applications/display-managers/emptty/default.nix emptty] | |||
* [https://github.com/NixOS/nixpkgs/blob/592047fc9e4f7b74a4dc85d1b9f5243dfe4899e3/pkgs/applications/display-managers/lemurs/default.nix lemurs] | |||
== Compositors == | |||
For the purposes of this basic overview, a compositor can be thought of as equivalent to an X Desktop Environment. {{Note|It is important to remember that this is not actually the case as there are [https://en.wikipedia.org/wiki/Wayland_(protocol)#Differences_between_Wayland_and_X multiple differences] between how X and Wayland work internally}} | |||
=== Wayland Native === | |||
* [[Sway]] is a i3-like compositor. | |||
* [[Hyprland]] the dynamic tiling Wayland compositor that doesn't sacrifice on its looks. | |||
=== X and Wayland support === | |||
* [https://github.com/NixOS/nixpkgs/blob/nixos-23.11/pkgs/desktops/gnome/core/mutter/default.nix Mutter] is the default [[GNOME]] Desktop Environment/Compositor. | |||
* [https://github.com/NixOS/nixpkgs/blob/nixos-23.11/pkgs/desktops/plasma-5/default.nix Plasma] is the default [[KDE]] Desktop Environment/Compositor. | |||
== Applications == | |||
Not all apps support running natively on Wayland. To work around this, XWayland should be enabled. {{Note|Enabling XWayland varies slightly from Compositor to Compositor, and may already be enabled. Consult your Compositor's documentation and/or nix file for how to enable}} | |||
==== Electron and Chromium ==== | |||
<!-- I kept getting META error when trying {{ic|NIXOS_OZONE_WL=1}}, and replacing the equals with = didn't work either — does anyone know how to markup this correctly? --> | <!-- I kept getting META error when trying {{ic|NIXOS_OZONE_WL=1}}, and replacing the equals with = didn't work either — does anyone know how to markup this correctly? --> | ||
Line 15: | Line 43: | ||
<syntaxhighlight lang="nix"> | <syntaxhighlight lang="nix"> | ||
sessionVariables.NIXOS_OZONE_WL = "1"; | environment.sessionVariables.NIXOS_OZONE_WL = "1"; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
This allows these applications to run without Xwayland. |