[X2Go-Dev] improve Xinerama

Mihai Moldovan ionic at ionic.de
Sat May 2 17:52:56 CEST 2015


On 02.05.2015 03:08 AM, Ulrich Sibiller wrote:
> Well, nxproxy isn't doing anything but calling some nx-library functions.
> Most of the stuff is done by the nxagent. You can see that by
> calling nxagent without nxproxy. I now have everything that's needed
> in the nxagent code (in only one file: randr/rrxinerama.c) except
> periodical updates (they are currently done only on demand). But even
> that could be added to the agent.

What I don't understand here is how this functionality could be moved to nxagent
only. As nxagent is running remotely, it cannot possibly know the client's
screen dimensions. This information must be passed to nxagent somehow --
currently x2goclient is doing it, but nxproxy is more predestined for this task
as you already mentioned.

Maybe I'm misunderstanding something, though.


>>> I think in rootless mode the nxagent should always cover the whole
>>> desktop. I am not sure if this is valid currently, but it really
>>> should.
>>
>> I think, it does this.
> 
> It does not. Running nxagent -R :77 opens up an invisible window with
> a strange geometry. However, that does not matter because my code does
> not provide xinerama in rootless mode simply because it is not needed.
> In rootless mode the client side X server has xinerama and the client
> side window manager should handle that.

Yeah, but need client side resolution and server side resolution not match?


>>> Yes, that case is tricky as it needs intersection. And here I have the
>>> mentioned problem: I need to know the position of the nxproxy window
>>> on the client-side X server
> 
> solved, intersection is implemented and working fine.

Btw, why do you need to know the position of nxproxy's window? I would have
thought it doesn't really matter?


>> Let me check that later. It would mean that we can drop libNX_Xrandr
>> immediately and that we only have to update the Xserver code itself.
> 
> Yeah, i'd like that!
> 
>>> I think until that problem with the client window position is solved I
>>> will implement the halfway solution that still refers to
>>> $NX_XINERAMA_CONFIG but will work without the LD_LIBRARY_PATH hack.
>>
>> Maybe it would be good to keep both approaches in place for legacy support.
>>
>> If a xinerama.conf file is present use that. If not, try out your new code.
> 
> My current version (attached) does this:
> 
> - if env is not set use auto_xinerama
> - if env is set to "auto" use auto_xinerama
> - if env points to existing file use file_xinerama
> - else use original code
> 
> We can work out something better if you like.

Good approach.



Mihai


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 884 bytes
Desc: OpenPGP digital signature
URL: <http://lists.x2go.org/pipermail/x2go-dev/attachments/20150502/877dfc1b/attachment.pgp>


More information about the x2go-dev mailing list