How to use X-Server on VM with multiple client displays?

Jon Turney jon.turney@dronecode.org.uk
Wed Aug 23 20:15:47 GMT 2023


On 22/08/2023 18:41, Stone, Timothy M via Cygwin wrote:
> 
> Hello,
> 
> I hope I'm using the right list!
> 
> I have an X application that uses the cygwin X Server XWin.  It works fine on Windows:
> 
>    *   When I launch the application, XWin launches, then the X app raises it's window.

This seems to be the root problem.

The application shouldn't really be starting the server.  If you start 
it separately then each instance of the application can connect to the 
same or different X server (as controlled by the DISPLAY value)

(But see below for ways that can be made to work)

> 
> When I install this application (and cygwin and XWin) on a virtual machine, I have a DISPLAY issue:
> 
>    *   If I log into the virtual machine from <machine1>, I can launch and run the app just fine.
>    *   However, if I then try to log into the virtual machine from another computer and launch the app...the app launches on the first machine's display...so I have 2 copies of it running on that display now.
>    *   Typically, I'd set DISPLAY=<machine1>:0.0 for the first machine, and DISPLAY=<machine2>:0.0 for the second machine
>       *   The problem is, the virtual machine is the only machine here, it only has 1 IP address
>       *   I don't know how to set multiple DISPLAY when using the same virtual machine with the same IP address from 2 different machines.

You need to give each instance of the X server a different "display number"

See https://x.cygwin.com/docs/faq/cygwin-x-faq.html#display-and-screen

>       *   I have tried setting the DISPLAY to the IP addresses of the client machines, this does not work (unable to open display).
>    *   I have also tried setting DISPLAY=localhost:0.0 for one machine and DISPLAY=localhost:0.1 for the other machine...this also does not work
>       *   XWin is unable to open display localhost:0.1

If you want to connect to separate server instances running on the same 
machine, you should use separate X display, not X screen numbers (e.g. 
localhost:0 and localhost:1)

> Any help greatly appreciated!
> 
> I'm sure it must be possible to launch the X app on the virtual machine from different clients and have the display on their respective displays?  I just can't see how to set the display.
  The exact configuration you are trying to use is still a little 
unclear to me after reading this.

You might want to look at the '-displayfd' and '-silent-dup-error' 
options to XWin. I suspect one of these might be part of the solution to 
your problem.

This page [1] in the documentation seems to be discussing a related 
problem, although maybe doesn't make it explicit.

[1] https://x.cygwin.com/docs/ug/using-terminal-server.html


More information about the Cygwin mailing list