Unverified Commit fd5efe59 authored by Arne Keller's avatar Arne Keller Committed by GitHub
Browse files

prusa-slicer: allow wayland (#417751)

parents ba7f45db 88da23a9
Loading
Loading
Loading
Loading
+54 −0
Original line number Diff line number Diff line
commit c9282b73f3d09daff23a2603addd94605596ebe7
Author: Robert Schiele <rschiele@gmail.com>
Date:   Thu May 8 19:16:46 2025 +0200

    remove forcing GDK_BACKEND to x11
    
    It seems the problems on Wayland from the past are removed meanwhile.

diff --git a/src/CLI/GuiParams.cpp b/src/CLI/GuiParams.cpp
index f44b91651f..41b42ff368 100644
--- a/src/CLI/GuiParams.cpp
+++ b/src/CLI/GuiParams.cpp
@@ -107,9 +107,8 @@ int start_gui_with_params(GUI::GUI_InitParams& params)
 #if !defined(_WIN32) && !defined(__APPLE__)
     // likely some linux / unix system
     const char* display = boost::nowide::getenv("DISPLAY");
-    // const char *wayland_display = boost::nowide::getenv("WAYLAND_DISPLAY");
-    //if (! ((display && *display) || (wayland_display && *wayland_display))) {
-    if (!(display && *display)) {
+    const char *wayland_display = boost::nowide::getenv("WAYLAND_DISPLAY");
+    if (! ((display && *display) || (wayland_display && *wayland_display))) {
         // DISPLAY not set.
         boost::nowide::cerr << "DISPLAY not set, GUI mode not available." << std::endl << std::endl;
         print_help(false);
@@ -141,4 +140,4 @@ int start_as_gcode_viewer(GUI::GUI_InitParams& gui_params)
 }
 #else // SLIC3R_GUI
     // If there is no GUI, we shall ignore the parameters. Remove them from the list.
-#endif // SLIC3R_GUI
\ No newline at end of file
+#endif // SLIC3R_GUI
diff --git a/src/CLI/Setup.cpp b/src/CLI/Setup.cpp
index 82e03d466d..95acdf3477 100644
--- a/src/CLI/Setup.cpp
+++ b/src/CLI/Setup.cpp
@@ -212,11 +212,6 @@ static bool setup_common()
     save_main_thread_id();
 
 #ifdef __WXGTK__
-    // On Linux, wxGTK has no support for Wayland, and the app crashes on
-    // startup if gtk3 is used. This env var has to be set explicitly to
-    // instruct the window manager to fall back to X server mode.
-    ::setenv("GDK_BACKEND", "x11", /* replace */ true);
-
     // https://github.com/prusa3d/PrusaSlicer/issues/12969
     ::setenv("WEBKIT_DISABLE_COMPOSITING_MODE", "1", /* replace */ false);
     ::setenv("WEBKIT_DISABLE_DMABUF_RENDERER", "1", /* replace */ false);
@@ -338,4 +333,4 @@ bool setup(Data& cli, int argc, char** argv)
     return true;
 }
 
-}
\ No newline at end of file
+}
+7 −0
Original line number Diff line number Diff line
@@ -70,6 +70,13 @@ stdenv.mkDerivation (finalAttrs: {
    rev = "version_${finalAttrs.version}";
  };

  # only applies to prusa slicer because super-slicer overrides *all* patches
  patches = [
    # https://github.com/NixOS/nixpkgs/issues/415703
    # https://gitlab.archlinux.org/archlinux/packaging/packages/prusa-slicer/-/merge_requests/5
    ./allow_wayland.patch
  ];

  # (not applicable to super-slicer fork)
  postPatch = lib.optionalString (finalAttrs.pname == "prusa-slicer") (
    # Patch required for GCC 14, but breaks on clang