On Thu, May 17, 2018 at 2:13 PM, Oleksandr Shneyder <o.shney...@phoca-gmbh.de> wrote: > Nope, it looks for me, that nxproxy window get information about screens > from WM. If WM is not started, nxproxy get just the window geometry. > With started WM we have correct display information on server side. > Xinerama starts to work with WM even if X2Go Session already running. I > made some experiments like: > > 1. Starting tce without WM. > 2. Connect to TC with ssh. > 3. Open X2Go Session. At this moment Xinerama in X2Go session not > working. I have one big screen over two monitors.
What exactly do you mean by "open x2go session"? > 4. Starting WM on the TC. At this moment Xinerama starts to work in the > running X2Go session immediately. > > It worked in TCE for me in 100% of cases. Independent when I'm starting > WM - before X2Go Client, after X2Go Client or even when X2Go Session > already running. I'll implement this solution in classic TCE and will > let my customers test it. I'd prefer understanding what's going on first. nxagent is running if (nxagentGrabServerInfo.grabstate == SERVER_GRABBED && nxagentGrabServerInfo.client != NULL) { /* * If any client grabbed the server it won't expect screen * configuration changes until it releases the grab. That could * lead to an X error because available modes are changed * in the meantime. */ #ifdef TEST fprintf(stderr, "nxagentChangeScreenConfig: Cancel with grabbed server (grab held by [%p]).\n", (void *) nxagentGrabServerInfo.client); #endif return 0; } pScreen = screenInfo.screens[screen] -> root -> drawable.pScreen; #ifdef TEST fprintf(stderr, "nxagentChangeScreenConfig: Changing config to %d x %d (%dmm x %dmm).\n", width, height, mmWidth, mmHeight); #endif r = nxagentResizeScreen(pScreen, width, height, mmWidth, mmHeight); if (r != 0) { if (nxagentOption(Xinerama) && (noRRXineramaExtension == FALSE)) { nxagentAdjustRandRXinerama(pScreen); } else { #ifdef DEBUG fprintf(stderr, "%s: Xinerama is disabled\n", __func__); #endif nxagentAdjustCustomMode(pScreen); } } And XineramaQueryScreens ins finally called in nxagentAdjustRandRXinerama. BUT: If nxagentAdjustRandRXinerama FAILS to get that data it will NOT fall back to the version you see but to reporting ONE screen (called NX1, IIRC). So all this fails somewhere else. Can you run an nxagent that has #define TEST and #define DEBUG enabledin in Screen.c? Uli _______________________________________________ x2go-dev mailing list x2go-dev@lists.x2go.org https://lists.x2go.org/listinfo/x2go-dev