prusa-slicer: allow wayland (#417751)

This commit is contained in:
Arne Keller
2025-06-18 15:18:50 +02:00
committed by GitHub
2 changed files with 61 additions and 0 deletions
@@ -0,0 +1,54 @@
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
+}
@@ -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