diff --git a/app/src/main.cpp b/app/src/main.cpp index 4266bfd..1e3bb83 100644 --- a/app/src/main.cpp +++ b/app/src/main.cpp @@ -16,6 +16,7 @@ auto run(int const argc, char const* const* argv) -> int { klib::args::named_option(engineCI.assetsDir, "a,assets", "override assets directory"), klib::args::named_option(engineCI.prefsPath, "p,prefs", "path to custom prefs JSON"), klib::args::named_flag(engineCI.noLibdecor, "no-libdecor", "disable libdecor (ignored unless Wayland)"), + klib::args::named_flag(engineCI.forceX11, "force-x11", "force X11"), }; auto const parseResult = klib::args::parse_main(parseInfo, args, argc, argv); if (parseResult.early_return()) { diff --git a/lib/include/chomper/engine.hpp b/lib/include/chomper/engine.hpp index 509339c..f38fb52 100644 --- a/lib/include/chomper/engine.hpp +++ b/lib/include/chomper/engine.hpp @@ -18,6 +18,7 @@ class Engine : public IDebugInspector, public klib::Pinned { std::string_view assetsDir{}; std::string_view prefsPath{}; bool noLibdecor{}; + bool forceX11{}; }; using CreateRuntime = std::move_only_function(Engine&)>; diff --git a/lib/src/engine.cpp b/lib/src/engine.cpp index 93ba873..de52ee2 100644 --- a/lib/src/engine.cpp +++ b/lib/src/engine.cpp @@ -111,6 +111,9 @@ void Engine::createContext(CreateInfo const& createInfo) { if (createInfo.noLibdecor) { ret |= le::PlatformFlag::NoLibdecor; } + if (createInfo.forceX11) { + ret |= le::PlatformFlag::ForceX11; + } return ret; }(); auto const windowTitle = std::format("chomper {}", buildVersionStr);