Is it possible to start pcbnew, eeschema etc. from separate terminals on separate X screen (on the same machine), and allow them still to be linked, e.g. pcbnew <> eeschema still interact? For instance, on :0.0, i launch eeschema, then go to another X screen :0.1 to launch pcbnew?
My xserver is set up such that each monitor is a separate X screen. :0.0, :0.1, :0.2 etc… No window can be dragged from one screen to another. This is a deliberate choice due to various reasons. The feature I am asking above would allow me to do design using multiple screens in this particular setup.
Looks like an unusual and over complicated method, but you probably have your reasons for doing so.
Maybe you can combine the best of both worlds.
Why not switch your monitor outputs between different X-sessions and the same session with a dual-monitor setup?
No, it’s not possible. Pcbnew and eeschema interact only when launched from same process and one process can only interact with one X server unless it’s specifically coded to support multiple display servers and I don’t know a single application that does that because it’s very unusual requirement.
When you start eeschema and pcbnew separately they are distinct processes so won’t be able to transfer data back and forth. You can see when you start eeschema and pcbnew from the top level kicad launcher that there is only one process: kicad.
Now a question is whether it’s possible to move a window to another display. That isn’t possible, as each X server has its own stream. There are some posts on the Internet that say it’s possible using xpra with shifter, which implements virtual displays that can be disconnected and reconnected to, analogous to VNC, or screen, for text terminals. This is another example of the aphorism attributed to David Wheeler: All problems in computer science can be solved by another level of indirection.
Is there a reason you don’t want to run a multi-head X server?
I run emacs this way. 1 window is launched in :0.0. Then in :0.1, I could run emacsclient -c to create a new window. The two are connected and share all buffers.
No, it is a single process. emacsclient simply asks the main process to create a new window in a different X screen. In the end it is the same main process that handles output on two different X screens.