diff --git a/pkgs/desktops/gnome-3/core/gdm/default.nix b/pkgs/desktops/gnome-3/core/gdm/default.nix index 88fed09de38..247d3566d6f 100644 --- a/pkgs/desktops/gnome-3/core/gdm/default.nix +++ b/pkgs/desktops/gnome-3/core/gdm/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchurl, substituteAll, pkgconfig, glib, itstool, libxml2, xorg, dbus , intltool, accountsservice, libX11, gnome3, systemd, autoreconfHook , gtk, libcanberra-gtk3, pam, libtool, gobjectIntrospection, plymouth -, librsvg, coreutils }: +, librsvg, coreutils, xwayland }: stdenv.mkDerivation rec { name = "gdm-${version}"; @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { patches = [ (substituteAll { src = ./fix-paths.patch; - inherit coreutils plymouth; + inherit coreutils plymouth xwayland; }) ./sessions_dir.patch ./gdm-x-session_extra_args.patch diff --git a/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch b/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch index d10283d40ea..adac2dc913c 100644 --- a/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch +++ b/pkgs/desktops/gnome-3/core/gdm/fix-paths.patch @@ -1,3 +1,14 @@ +--- a/daemon/gdm-local-display-factory.c ++++ b/daemon/gdm-local-display-factory.c +@@ -450,7 +450,7 @@ + #ifdef ENABLE_WAYLAND_SUPPORT + gboolean wayland_enabled = FALSE; + if (gdm_settings_direct_get_boolean (GDM_KEY_WAYLAND_ENABLE, &wayland_enabled)) { +- if (wayland_enabled && g_file_test ("/usr/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) ) { ++ if (wayland_enabled && g_file_test ("@xwayland@/bin/Xwayland", G_FILE_TEST_IS_EXECUTABLE) ) { + session_type = "wayland"; + } + } --- a/daemon/gdm-manager.c +++ b/daemon/gdm-manager.c @@ -147,7 +147,7 @@