Is there yet a solution that affords collaboration with two users, two cursors, one monitor?
I am looking for a solution that is similar in some ways to multiseat, but with one important difference:
I want two (or perhaps n) users to be able to sit at the same monitor, sharing the same desktop environment, but be able to use their own keyboard and mouse, with their own cursor.
The basic use case is that I want my wife and I to be able to collaborate, mostly working on our own things, but occasionally directly collaborating. I want to be able to say, "hey, do you think this is right?" ...and for her to be able to jump over with her cursor, making corrections or copying-and-pasting.
Ideally, I want this to be a linux environment.
It seems that X11 provides for this possibility with a configuration called "Multi-pointer X," or "MPX." Here's the article about it on the X-wiki.
However, I'm surprised to find that, apparently, this solution hasn't been implemented by any window managers, at least in a documented way. Instead, they seem regard "the user" as owning all HIDs, and all working on a single cursor and focal point.
Here's a SuperUser question that contains an answer, but it is unsatisfying as it does not allow keyboard input to different window at the same time.
Since the architecture of GNU / Linux / X11 doesn't seem to preclude this configuration, so I'm surprised to see that it hasn't come of age, as it strikes me as of great use in a number of cases, personal and professional.
Or am I wrong and there's something right in front of me? :-)
Solution 1:
This does not work with bare Windows, but might be possible with third-party software.
TeamPlayer (shareware, $49.95) is described as :
It allows multiple users to simultaneously utilize the operating system, applications and files.
- Multiple cursors on screen with multiple attached mice/keyboards
- Remote connecting users from anywhere using the free TeamCONNECT app
- Cursor-colors and on-the-fly editable cursor labels
- Area restrictions of cursors, confining them to any resizeable area on screen
- Limited free LITE version available (for non commercial uses only)
TeamPlayer LITE is the free version, limited to a maximum of two users, which seems to be the version you need.
Comment : I have no experience with this product.
Solution 2:
Looks like you still can't - not perfectly anyway. WM support is actually a pretty minor thing, tho having separate themes per cursor would be nice. Getting single session/multi seat is oddly trivial, with each keyboard and mouse paired, though you can't pick two different spots on a file and start typing at once - I suspect this is a limitation of whatever software you run rather than the system. I got this running on ubuntu 16.10, though xinput2 should be supported on most modern linuxes.
Many of the moving parts you need exist - multi pointer X is built into modern versions of X, though the closest thing to a working window manager hasn't been updated to close to a decade -and the documentation seems require x2x for some odd reason. You can totally get two cursors with their own keyboards working
Now, here's what works perfectly
I'm testing this with lubuntu - I've gotten two pointers (which look the same) with their own keyboard and mouse support.
You'll want to install xinput - apt has this.
xinput list gives you a list of devices. Now, you'd want to create a second (or third, or forth) set of pointers
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ TPPS/2 IBM TrackPoint id=11 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=10 [slave pointer (13)]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Sleep Button id=8 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)]
↳ ThinkPad Extra Buttons id=12 [slave keyboard (3)]
↳ Chicony USB Keyboard id=17 [slave keyboard (3)]
Create the second set of inputs with and add the two devices with
xinput create-master pointer2
xinput reattach 10 "pointer2 pointer"
xinput reattach 17 "pointer2 keyboard"
This attaches the SynPS/2 Synaptics TouchPad and Chicony USB Keyboard to the secondary inputs. I suspect you can use the names of the devices as well.
Now comes the part where I'm stuck - your software has to be aware that there's two cursors with seperate inputs - and I don't mean sublime text style. There's nothing out there, and it isn't really a window manager issue.
So yeah, you can get 90% of what you want, but not all the way. You can't simultaniously type, but you can move your cursors independantly, and 'hotseat' between your keyboards.
You'd also need to run these commands as needed, there's no documentation on X for this from what I can tell.