Xdmx is (rather) broken.
Nov. 29th, 2012 01:21 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Xdmx
Xdmx is an X11 tool that lets you treat two or more* X11 servers as two or more monitors. I tried to use it to make an old laptop be an external monitor (connecting over Ethernet). The old laptop would run an X server, and Xdmx would connect to that X server and to the one on my regular laptop. Then X11 applications would connect to Xdmx (which itself provides an X-server API), and I could move them between screens at will. Theoretically.
*actually, one or more.
So, first I tested with just a single machine Xdmx of a local X.
I can get the graphics to look right, but the mouse and keyboard input are screwed up — e.g. left clicking moved the cursor to the top-left of the screen, and right-clicking crashed Xdmx. I think there were also keyboard input problems. They were harder to debug without working mouse.
Xdmx is broken in various different ways for various different people on the Web. Xdmx isn't very well maintained. It doesn't support XInput2 [1], it relies on Xinerama which is somewhat maintained but whose architecture needs improvement [2], it may be incompatible with Composite [3], it just plain segfaults for a lot of people [4], and is generally unloved [5].
Of course, it's possible to use X11 forwarding instead of Xdmx. The cost: whenever you launch a GUI program, you have to decide which display to put it on. The program will stay firmly on that display until it exits. I might do that.
Intermission
Security seatbelt facts when playing with X servers
To prevent remote attackers from hijacking your X:es to steal your passwords, always remember the option `-nolisten tcp` (for any X, Xnest, Xephyr, Xdmx, etc.) and that `xhost` offers so little security that it's better to look into `xauth` or ssh X11 forwarding.
You also must trust all interconnected X servers and clients as a unit: any one of them can steal keystrokes from any other, for example. X security (ssh -X) mitigates this somewhat, but restricted programs can still steal keyboard focus.
Wayland?
I get the impression that Wayland is where people's hopes lie. Once Wayland is usable (maybe in a year? plus or minus a lot.), people will do various multi monitor things with it because Wayland's architecture is simpler than X's. Until then, I probably just won't be able to move windows between one of my laptop-screens and the other, though I can still use X remoting to start programs on either one screen or the other. Oh well.
Or different hardware?
Or, look: for the low, low price of $1600, I could get a VGA-to-ethernet adaptor, plug the ethernet into my secondary laptop and the VGA into my primary laptop's graphics card. LOL. I'd use Xinerama on my primary laptop and perhaps VLC on my secondary laptop. Be wary that there are "HDMI-over-Ethernet" and many similar products that use ethernet cables (CAT-5/CAT-5e/CAT-6) but not the ethernet protocol, so plugging their "Ethernet" into a laptop's port would probably be useless and perchance be damaging. A quick browse of Hack A Day's VGA, DVI and HDMI tags didn't find me any easy ways to turn video data into a computer-readable format (it mainly found the inverse). I tried adding a "pirate" term to my web searches since what I want can also be used as an obtuse way to record videos. I didn't find anything more that way. LOL.
Footnotes
[1] A to-do: "Extend Xdmx to use the XI2 model of input devices." http://www.x.org/wiki/ToDo
[2] see X multi-screen summary: http://nouveau.freedesktop.org/wiki/MultiMonitorDesktop
[3] somewhere I saw a changelog saying that since this post the theoretical Xinerama + Composite incompatibility was solved but it was not at all tested/debugged, and since Xdmx is getting no attention[5], it is double unlikely to work in Xdmx https://gentoohaven.com/2010/04/13/xinerama-composite/
[4] http://mitros.org/p/xdmx-setup.html
[5] see last comment (2011) "Not sure anyone really cares about this... you're probably best off trying to find the cause of the BadAlloc and fixing it yourself... =/" https://bugs.freedesktop.org/show_bug.cgi?id=26562