diff --git a/src/main.cpp b/src/main.cpp index b21f190..fff2117 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -216,6 +216,11 @@ int main(int argc, char **argv) wlserver_init(argc, argv, g_bIsNested == true ); + setenv("DISPLAY", wlserver_get_nested_display_name(), 1); + setenv("GAMESCOPE_WAYLAND_DISPLAY", wlserver_get_wl_display_name(), 1); + + startSteamCompMgr(); + wlserver_run(); } diff --git a/src/wlserver.cpp b/src/wlserver.cpp index b3fcd9c..78fe3e4 100644 --- a/src/wlserver.cpp +++ b/src/wlserver.cpp @@ -113,17 +113,6 @@ const struct wlr_surface_role xwayland_surface_role = { static void xwayland_ready(struct wl_listener *listener, void *data) { bXwaylandReady = true; - - setenv("DISPLAY", wlserver.wlr.xwayland_server->display_name, true); - - g_XWLDpy = XOpenDisplay( wlserver.wlr.xwayland_server->display_name ); - if ( g_XWLDpy == nullptr ) - { - wlr_log( WLR_ERROR, "wlserver: failed to connect to X11 server\n" ); - exit ( 1 ); - } - - startSteamCompMgr(); } struct wl_listener xwayland_ready_listener = { .notify = xwayland_ready }; @@ -583,8 +572,6 @@ int wlserver_init(int argc, char **argv, bool bIsNested) { wlr_log(WLR_INFO, "Running compositor on wayland display '%s'", wlserver.wl_display_name); - setenv("GAMESCOPE_WAYLAND_DISPLAY", wlserver.wl_display_name, 1); - if (!wlr_backend_start( wlserver.wlr.multi_backend )) { wlr_log(WLR_ERROR, "Failed to start backend"); @@ -601,6 +588,13 @@ int wlserver_init(int argc, char **argv, bool bIsNested) { } } + g_XWLDpy = XOpenDisplay( wlserver.wlr.xwayland_server->display_name ); + if ( g_XWLDpy == nullptr ) + { + wlr_log( WLR_ERROR, "wlserver: failed to connect to X11 server\n" ); + return 1; + } + wlr_output_enable( wlserver.wlr.output, true ); wlr_output_set_custom_mode( wlserver.wlr.output, g_nNestedWidth, g_nNestedHeight, g_nOutputRefresh * 1000 ); wlr_output_commit( wlserver.wlr.output );