[X2Go-Dev] improve Xinerama

Ulrich Sibiller uli42 at gmx.de
Thu May 7 00:21:58 CEST 2015


On Wed, May 6, 2015 at 3:45 PM, Mike Gabriel
<mike.gabriel at das-netzwerkteam.de> wrote:
> Hi Ulrich,
> (Re-Cc:ing x2go-dev)

Can't someone add a Reply-To field for the mailing list?

> I tested nxagent now. I tested two things (see below). For both tests I
> modified /usr/bin/x2gostartagent, so that NX_XINERAMA_CONF gets explicitly
> set to auto. I also removed all LD_LIBRARY_PATH related stuff from
> /usr/bin/x2goruncommand.

ok.

>   -> expectexd results:
>      (a) rootless applications in nxagent don't recognize the client-side
> monitor
>          (Xinerama) layout
>      (b) desktop sessions in nxagent don't recognize the client-side monitor
>          (Xinerama) layout
>
>   -> observed results:
>      (a) rootless session were already Xinerama aware... (????)

Regarding window maximizing that's logical, because that is done by
your local window manager that of course knows the xinerama. But I
doubt that the application itself is xinerama aware. Please verify by
opening a rootless xterm and running "xdpyinfo -ext XINERAMA | grep
head" in it. You should not see any output. Compare to same command
run in a local xterm.

>      (b) desktop sessions in nxagent don't recognize client-side monitor
>          (Xinerama) layout

Yes, they cannot know without my code.

> 2.
> I built NX agent from
> https://github.com/sunweaver/nx-libs/commits/feature/new-xinerama-3.6.x (top
> commit hash 15cccc136b6b9740ba558e02da918ad843795995). This build does
> contain your patches.
>
>
>   -> observed results
>      (a) rootless sessions are Xinerama

But not in xdpyinfo because that is disabled in my code. Please verify.

>      (b.1) desktop sessions had no clue about monitor borders (no Xinerama
> layout)
>            -> this was an nxagent built and launched on my notebook (amd64
> system, Debian jessie)

Does xdpyinfo -ext XINERAMA -display :0 report anything on the nodebook?

>      (b.2) desktop session knew about Xinerama and the desktop splitting
> worked fine
>            on resize events (changing the X2Go session window size)
>            -> moving the X2Go desktop session window across the client-side
> desktop
>               should triggering a Xinerama resizing (or rather the end of
> movement)

Hmm, everytime a xdpyinfo request regarding xinerama is sent to the
nxagent the xinerama data gets fetched from the real X server and
therefor must be up-to-date. Moving the nxagent window obviously does
not send any xinerama request to the nxagent. The window manager in
the session seems to cache the previous xinerama results because the
root size has not changed. Can you verify with another window manager
in the session? Which one did you use for that test? Does it work
again if - after moving - you resize the window a bit?

>            -> this was observed on my PC at work (i386 system, Debian
> jessie)

Oh, 32bit, long time no see ;-)

> Well, the more I think things through, every NX'ish speciality in the
> current NX code tree has to be moved into Xserver/hw/nxagent for two
> reasons:
>
>   o propose as few NX-specific patches as possible to X.Org upstream

agreed

>   o every code snippet from NoMachine is licensed as GPLv2 and has to be
>     removed from the xorg-server and lib<Xlib+extension> libraries.

So does that mean the current release has some license issues? Please
tell me more!

> Thus, same for your Xinerama patches, I guess. And if it is possible to
> register an event that informs about Xinerama changes, the better. And if it
> saves us some more roundtrips, again even better.
>
> So, basically, also because of the issue about having to propose this or
> that patch to X.Org upstream: the more of your code that you can move into
> the hw/nxagent dir, the better!!!

agreed.

Uli


More information about the x2go-dev mailing list