I think it's relatively straightforward? Each mouse should be generating input events, it's "just" a matter of "Mouse1 += (100x, 200y)", "Mouse2 += (-3x, -5y)" and keeping track of a virtual cursor/pointer position that the "real" cursor should jump to depending on which mouse is generating input events.
...and for the use cases, having an extended desktop (eg: airplay to HDTV mounted on the wall) and being able to have your primary "desktop" mouse 100% glued to your main screen, but a secondary "click the play next video button on the tv" mouse is genius!
I'm pretty sure if somebody were sufficiently innovative they could paint a bullseye/target around the virtual cursors with some sort of minor performance penalty (a-la: xNeko - https://github.com/crgimenes/neko).
...and for the use cases, having an extended desktop (eg: airplay to HDTV mounted on the wall) and being able to have your primary "desktop" mouse 100% glued to your main screen, but a secondary "click the play next video button on the tv" mouse is genius!
I'm pretty sure if somebody were sufficiently innovative they could paint a bullseye/target around the virtual cursors with some sort of minor performance penalty (a-la: xNeko - https://github.com/crgimenes/neko).