Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?

The Multi-Pointer X server 115

worufu writes "Some weeks after releasing the MPX (Multi-Pointer X Server), the Linux world slowly seems to draw attention to the project which opens up the limits of simultaneous input devices of the current X server. The future possibities are unlimited and I cannot wait to see some nice applications supporting the advantages of multiple input devices.
From the project description: 'The Multi-Pointer X Server is an enhanced X server to support multiple mice. It provides users with one cursor per device. Each cursor can operate independently. A multicursor windowing system allows two-handed interaction with legacy applications, but also the creation of innovative applications and user interfaces.'"
This discussion has been archived. No new comments can be posted.

The Multi-Pointer X server

Comments Filter:
  • Multi-Mouse (Score:5, Funny)

    by Nation XII ( 933039 ) on Thursday July 13, 2006 @07:36AM (#15711538)
    FINALLY! I can play multi-player xPong at work and never again have to argue who gets the mouse!
  • Didn't Settlers 2 multiplayer (Amiga I think) do this years back. Maybe we can get it to work.
    • Re:Settlers 2 (Score:1, Informative)

      by Anonymous Coward
      You're thinking of Amiga Settlers, Settlers 2 never came out on the Amiga sadly. But yes, it did have support for two mice, as did many other multiplayer games at the time on that platform.
    • I remember playing Settlers 2 on pc with 2 mice on the one screen years ago.
      • Yes, Settlers read the raw mouse data from the COM port. I never used it, but remember the dialog where you could specify a port.
    • Lemmings (Score:3, Informative)

      by bhaak1 ( 219906 )
      Lemmings also had two mice support in the two player levels.

      As did a lot of games back on the Amiga, even PD games.

      I remember an Asteroid PD clone where you moved the character with one joystick and with the other joystick you controlled the fire beam.

      Was quite an immersive feeling.
      • I remember an Asteroid PD clone where you moved the character with one joystick and with the other joystick you controlled the fire beam
        Don't know if this is what you were referring to but gunroar [asahi-net.or.jp] does this, and it is quite entertaining even if I can't get past the third boss.
    • Didn't Settlers 2 multiplayer (Amiga I think) do this years back. Maybe we can get it to work.

      Didn't they just release a Settlers 2 remake? Coincidence?

  • Window stretching (Score:3, Interesting)

    by glowworm ( 880177 ) on Thursday July 13, 2006 @07:41AM (#15711551) Journal
    I was a little sceptical, but after I RTFA and watched the demo I would definately love to see some of those techniques make their way into window managers. Applying the snippet of the demo with the photo light box to the desktop would be quite nice, resizing windows by pulling the corners apart, flicking them into corners and so on.

    Mind you, how do you keep the screen clean of fingerprints and pizza grease smears.
  • by cerberusss ( 660701 ) on Thursday July 13, 2006 @07:49AM (#15711577) Homepage Journal
    Using two mice reminds me of Anakin Skywalker, with his two lightsabers. And I don't need to remind ANYONE here what happened to HIM.
    • You mean he went on to be the second most powerful person in the universe for 30 years? Call me evil, but... where do I sign up?
      • You mean he went on to be the second most powerful person in the universe for 30 years? Call me evil, but... where do I sign up?

        Well, that's the thing about the Dark Side, isn't it? The #2 spot is actually worse than the #3, because #1 has to constantly crush you under his thumb, to keep you in your place and show you who's boss.

        No, like Robinson Crusoe's father, I believe the middle station is best -- or rather, the middle station of the upper echelon. I'd go for, say #100 on the hit parade. High enoug
        • I'd go for, say #100 on the hit parade. High enough up to be to far too valuable to waste, not high enough to be considered a threat to the established order.

          Won't work. Vader has a tendency to waste people who fail him, no matter where they are.

          Hell, Vader has a tendency to kill anyone, with him or against him, including the person in the #1 spot. The safest ones would be old, familiar Jedi like Luke or Obi-Wan, because Vader will have the decency (stupidity?) to face them head-on, alone, in a lightsab

    • Yeah, George Lucas turned him from evil super-villain to whiny teenage brat in the space of just three films.
      • by hey! ( 33014 )
        Yeah, George Lucas turned him from evil super-villain to whiny teenage brat in the space of just three films.

        Which goes to show you that truth isn't so much stranger than fiction than it is less credible. Evil men aren't the titans they like to portray themselves as. They are typically petty men, puny vindictive characters whose insecurity worms away at their ego, driving them to seek external validation by extravagant displays of power and cruelty.

        When social scientists and political thinkers looked at
        • Wow... Kim Jong Il as Darth Vader... I totally get it.

          I can't believe I didn't make that connection alright... forget Offtopic... should be modded "Insightful".

          Works as well as "Mr. Burns as Goa'uld"...
        • Lucas wants to undermine this glamour, and show that Vader is really a pathetic character. Second baddest bad guy in the universe is not a happy job.

          Actually, Vader is glamorous, while Anakin is a pathetic human being. Remember, int RotJ, when Luke removes Vader's helmet ? He's no longer an inhuman angel of death, but an old bald guy who can't even breath by himself.

          It's the same as Nazi Germany: it was glamorous, but once the glamour was gone, those who had given themselves to it were no different th

    • Yeah, he got to boink Natalie Portman. Thanks for the reminder, I think I'll be getting my second mouse just about now.
    • Are you suggesting this may lead people to the... windows side of the OS?
  • Four hands.. (Score:1, Interesting)

    by Anonymous Coward
    Two hands and two feet.. might be more useful than one thinks!
  • another way (Score:2, Insightful)

    by qwp ( 694253 )
    another way i can be at the computer, and yet someone can come up and steal it away from --
  • by Yeti.SSM ( 869826 )
    This reminds me of "mice fight" we used to do sometimes with my friend.
    We plugged PS/2 and a serial mouse into one Windows 95 or 98 box and then moved both the mice simultaneously. Great fun, you bet! Duh...
    • hehe, I remember plugging a second mouse into my older brother's computer, hiding the cable and then putting the mouse on my desk. He wouldn't notice anything was wrong until I started laughing. It was fun until he caught up with me. Another trick I remember was recalibrating the mouse so that moving it wouldn't move straight up and down. Funny though I can't find the setting for it here in win xp.
  • I wonder... (Score:3, Insightful)

    by durin ( 72931 ) on Thursday July 13, 2006 @08:01AM (#15711630)
    ... when Microsoft will "innovate" this.
    • Re:I wonder... (Score:2, Informative)

      by mr_jrt ( 676485 )
      Windows had this at a low level ages ago, and DirectX supports multiple mice too. In the switch to Win2K+ however, Microsoft deemed it a security issue and made it damn near impossible to query multiple mice easily. Can still be done now, but you have to go much lower level to do so (capturing raw mouse events and decoding them yourself). Annoyed the hell out of me when my multiple mice were only ever being detected by DX9 as a single device trying to play multiplayer air hockey.
    • Re:I wonder... (Score:2, Informative)

      by Anonymous Coward
  • by Clockwurk ( 577966 ) * on Thursday July 13, 2006 @08:05AM (#15711651) Homepage
    if they made X natively support more than 3 mouse buttons. Or if X could automatically detect usable refresh rates/screen resolutions for my monitor.
    • Detecting usable refresh rates and resolutions is a driver thing. The nvidia binary driver supports it just fine.
    • by IBitOBear ( 410965 ) on Thursday July 13, 2006 @10:05AM (#15712275) Homepage Journal
      Um, I have a Logitech G5 mouse and X processesses all the buttions, the wheel works and the thing where you push the wheel left and right to do forward and back (e.g. a fourth axis) works just fine as well. [Note the "Name" option instead of spesifying the "Device" pathname, this lets me plug the mouse in, or not, without having to tweak any settings.]

      See the complicated configuration:

      Section "InputDevice"
                      Identifier "Gaming Mouse"
                      Driver "evdev"
                      Option "Name" "Logitech USB Gaming Mouse"

      Now getting touchpad on my laptop to do all the cool stuff (up and back scroll buttions, iPod-like circular scrolling, etc) was a little more involved. I set a udev rule to make the device name explicit and I had to find the configuration entry on the net and cut-and-paste...

      udev rule created in "new" file /etc/udev/rules.d/10-input.rules:
      BUS="serio", SYSFS{description}="i8042 Aux Port", KERNEL="event?", SYMLINK="input/alps"

      Section "InputDevice"
              Identifier "Alps"
              Driver "synaptics"
              Option "Device" "/dev/input/alps"
              Option "CorePointer"
              Option "Protocol" "auto-dev"
              Option "LeftEdge" "130"
              Option "RightEdge" "840"
              Option "TopEdge" "130"
              Option "BottomEdge" "640"
              Option "FingerLow" "12"
              Option "FingerHigh" "15"
              Option "MaxTapTime" "180"
              Option "MaxTapMove" "200"
              Option "MaxDoubleTapTime" "100"
              Option "EmulateMidButtonTime" "75"
              Option "VertScrollDelta" "20"
              Option "HorizScrollDelta" "20"
              Option "MinSpeed" "0.60"
              Option "MaxSpeed" "1.10"
              Option "AccelFactor" "0.030"
              Option "UpDownScrolling" "1"
              Option "CircularScrolling" "1"
              Option "CircScrollDelta" "0.1"
              Option "CircScrollTrigger" "2"
              Option "SHMConfig" "on"
              Option "Emulate3Buttons" "on"

      This is on ubuntu with the current "stock" 2.6.15 kernel and Xorg packages.
    • by ratboy666 ( 104074 ) <fred_weigel AT hotmail DOT com> on Thursday July 13, 2006 @10:19AM (#15712372) Journal
      X "natively" does support more than three buttons. AFAIR (and, its been a while since I've worked on the X server input section), the limit is 128 buttons.

    • by isj ( 453011 ) on Thursday July 13, 2006 @10:19AM (#15712373) Homepage
      The X protocol directly supports 5 buttons. Additional buttons can be supported by X Input Extension (XIE). The scroll wheel is usually handled via XIE.
      • by Anonymous Coward
        As far as I have seen, so far, just about all scroll-wheel setups i've seen in XF86Config/xorg.conf's have been by mapping 'up' and 'down' to buttonpress 4 and 5 .

        The original X11 docs (rev 5 at least) list that the max number of mouse-buttons supported (according to the mouse_button_press_event docs) was 5. I don't think that there's any reason why one couldnt expand that number by altering the definition of all related structures in the X-protocol.

        However, doing that would most likely break a lot of legac
        • actually i've seen alot of applications (this might be due to gtk handling input) support my 6th and 7th buttons, works rather well, in firefox they are back and forward, and they do work in the gimp as part of the scroll bars allowing me to scroll vertically AND horizontally, that tends to work in just about every gtk app i've tried
      • The scroll wheel is usually handled via XIE

        No it's not. It generally maps to buttons 4 and 5, specified in your X server config file, and causes problems for hardware with more than 5 buttons. XInput is rarely used by most apps (and most X servers), and there're lots of programs out there now that would fail if you mapped the mousewheel to different buttons, since it's a de facto standard to have them on buttons 4 and 5.

        Drives me nuts when people say fundamentally incorrect things with authority, since they

    • Ditto to that. It's been SEVEN years since I first started dabbling in Linux and it *still* won't properly detect one of most basic things ever, the monitor's refresh rates. It's VESA DDC and their friends, folks, they're open standards, what's the big problem?

      And never mind that at least for me, this puts a severe hamper in usability for those who can't bother to use fine-tuning tools and quickly kill the patience of those that do. Having used high resolutions for the past years and not having them properl
  • Race conditions (Score:4, Insightful)

    by Carewolf ( 581105 ) on Thursday July 13, 2006 @08:11AM (#15711671) Homepage
    What an excellent way to make every toolkit vulnerable to thousands of race conditions ;)

    You can probably crash 99% of all X11 applications using two pointers
    • Hah!
      What I'd like to know:
      Does this work as a nested X server? In other words, can I run it in a window, using the native X's mouse as the primary mouse, and then have MPX have exclusive access to additional mice?

      In the FAQ it talks about MPX having to 'guess' which pointer to use for QueryPointer. Looking at the xeyes screenshot, I wonder if it would be possible to extend it so that certain applications could be linked to a certain mouse in various ways (when multiple mice are possibly choices for functi
      • which raises the question: exactly how is focus handled? Can I type in two xterms at once? Are there lots of different complex focus models to choose from now?

        Crisis or opportunity?

        I've been wanting this for years. Unfortunately, not only have I had no time to work on it, but I still don't now that someone has done the basics, But I've thought of it as ways to have one user use two mice, not two users in one session each having his own mouse at the same display, and how to extend the UI to support it.

    • Re:Race conditions (Score:3, Informative)

      by ultranova ( 717540 )

      What an excellent way to make every toolkit vulnerable to thousands of race conditions ;)

      Um, what race conditions ? Here's the basic pseudocode to an X application:

      1. Initialize.
      2. Get next event from X-server.
      3. React to the event if neccessary.
      4. Go to 2.

      I don't really see how having 2, 20 or 200 pointing devices could cause any race conditions here. You just get 2, 20 or 200 times the amount of mouse events (assuming they are all actually used and won't just lie there) than before.

      You can probably cr

      • Crash would be the ultimate reaction. To begin with most applications would just act weird, since every other event would put the pointer a completely different place. Stuff like tooltip, mouseover effects, window focus and even web-based JS would cease to work. Most likely many of the codepath would when experiencing these odd events enter broken code-paths and crash.
        • you could just designate 1 device as the primary device, and only events from that device are sent to the legacy applications, or at your discretion, applications from a list that don't behave properly. Then there wouldn't be any problems at all.
  • whenever I get tired of using the right hand (er, no, I'm not making allusion to that activity thought to be common between ./'ers, you sick bastard!) I can switch to a left-handed mouse immediately.
  • About time! (Score:5, Interesting)

    by MMC Monster ( 602931 ) on Thursday July 13, 2006 @08:13AM (#15711683)
    I always wondered when multiple mice would be supported.

    It's great for when someone remotely logs on to help a user with a problem.

    Gameplay would be very interesting - Use one mouse to point and shoot while using another to move around.

    You can tutor someone else on the same computer. Maybe have the mice look different so there's no confusion.
    • with mice, instead of joysticks....
    • It's great for when someone remotely logs on to help a user with a problem.

      Actually, that shouldn't make any difference. When you log into a remote computer and run an X client, it connects to your computer, and you use your local mouse and keboard because those are the ones your X server is connected.

      Maybe if you were sitting right there, it may help, but remotely connected, it wouldn't make a difference...unless you are talking about something I've never heard of...

      • When you log into a remote computer and run an X client, it connects to your computer

        And that's why X is completely inadequate for remotely helping a user with a problem. He's saying it would be nice to be able to log in in a vnc-like manner but have _your_ mouse pointer in one place, and the user's mouse pointer in another place.
    • I bet it would make maniptulating things in 3D a lot easier, since now you have two 2D input axises.
    • You want to fire up an Amiga then. Im pretty sure you could plug 2 mice/mouses/micee/dodads into and 'boink', a second cursor would appear on screen. Dueling pointers anyone?

      It was great for playing a 2 player dungeon master style game called bloodwych (or something). Happy days indeed.
    • I always wondered when multiple mice would be supported.


      I've wanted two hands "behind the glass" for years. (Like since I got one fingertip/finger-thumb-pincher back there with the current paradigm.)

      It's not VR yet. But two hands is much cloaer than one.
  • The other day. Yay, I guess. Now how long does it take to get into disros.... I refuse to deal with X on a low-level, after what happened last time. SuSE update or bust.
  • I'd be very doubtful of the value of this for conventional mice and single-user computers. Mice are best used for highly position sensitive input with limited input types... drawing lines, selecting groups of items, and other things where the location of the input is important and the limited range of input values (left or right click) isn't a hinderance. Adding multiple mice allows more input of this type, but at the expense input of other types.

    Not many applications are likely to require a lot of mouse
  • This should be part of the default X.org server configuration, I can't see why it shouldn't, so I hope the next time I see this project, I already have it installed ;-)
    I think this is the future, I would love to play a game where I could do first-person bare-fist fighting by moving two moses up and down over my table! (Sword and shield would also be cool!)
    -- We create the future!
  • If you had 2 monitors, 2 mice and 2 keyboards, you could have 2 people using 1 PC, and they could drag windows across to each other.
    • Re:2 person PC (Score:5, Insightful)

      by hey! ( 33014 ) on Thursday July 13, 2006 @09:39AM (#15712125) Homepage Journal
      Well, I think you're on the right track here.

      In user interfaces, we basically assume that the computer interacts with one person at a tim But real world scenarios, two or more people can work on the same thing at the same time, or on different parts of the same thing, or on different things in the same space then put them together. But it's not possible to do this naturally on a single computer.

      The key I think will to be to find the right metaphor, without being excessively literal. In the Desktop metaphor, windows are really like sheets of paper that can be shuffled around. I remember seeing this for the first time, and there was a tremendous sense that this would liberate us from a lot of artificial limitations. But sheets of paper aren't resizable, and don't have scroll bars. Many times in the early years, attempts were made to make the metaphor literal, showing a representation of a desk with file drawers, papers on top, and desk accessories like clocks and calculators. These attempts at literalism turned out to be a waste of space and time, and the metaphor was pared down to its barest essential: a two dimensional surface on which things can be arranged.

      The shared computer is an important evolutionary step, but there are going to be a lot of missteps created by excessive literalism, until the fundamental transformation takes place in peoples' heads.

      Two trends are going to unite in the future: the continued reduction in size and cost of computing hardware, and the continued increase in ubiquity and affordability of wireless networking. I see the end result, some time in the next twenty-five to fifty years, as this: the computer as we know it will no longer be the primary interface of human beings to information processing technology. By this I mean your grand children won't routinely carry laptops and PDAs, any more than you carry a riding crop. Instead, we will have computer enhanced environments in which people work in a natural and shared way. Interfaces will be heterogenous, from large wall sized screens or interactive tabletops, goggles that computer enhance vision (e.g. overlaying an animation on top of the copy machine to show how to unjam it), and countless sensors.

      Naturally these environments will be shared, otherwise they aren't really environments.

      This Multi-Pointer technology doesn't get us there, but it enables some steps in the right direction.
      • Re:2 person PC (Score:3, Insightful)

        by npsimons ( 32752 )

        In user interfaces, we basically assume that the computer interacts with one person at a tim But real world scenarios, two or more people can work on the same thing at the same time, or on different parts of the same thing, or on different things in the same space then put them together. But it's not possible to do this naturally on a single computer.

        Really? I've heard of computers that can be used by more than one person at a time; they're called servers. Also, CVS and other change management systems a

      • Why not run two copies of the X server on different monitors (:0 and :1) using either the same or different graphics cards and two sets of input devices?
      • multi pointer is a huge first leap, and i think it will springboard us into something greater. but htere are some very profound changes in mpx alone. i think mpx will start to shift people into the idea of a distributed computing environment.

        my own case was pretty simple. freshman year of college i built myself a video project. it was pretty damned bright, a not very efficient bulb but 600watts of non-efficiency still adds up to pretty bright. so i had a huge screen (aka, painted sheet). plus, i had tw
    • If you had 2 monitors, 2 mice and 2 keyboards, you could have 2 people using 1 PC, and they could drag windows across to each other.

      Also interesting (I think): Could this have an effect (positive or negative) on the efficiency and/or effectiveness of pair programming [wikipedia.org]?

    • I have a link that will let you use the equipment you mentioned handle two seperate logins. http://blog.chris.tylers.info/index.php?/ar chives/14-Multiseat-X-Under-X11R6.97.0.html [tylers.info]

      I have never tried this solution but from what I have read in the past it seems to be getting easier to handle multiple input devices and displays. I would agree with others that if you wanted the same login to hanle both sets of keyboards mice and monitors you run the risk of confusing the operators or the programs.
    • If you had 2 monitors, 2 mice and 2 keyboards, you could have 2 people using 1 PC

      That bit is easy with a two head nvidia video card (eg. VGA + TVout), ps/2 keyboard + mouse, usb keyboard + mouse and two copies of X running at once. You just need to add another layout with the name of your choice (eg. TVout) to your config file that tells it to use the correct monitor, keyboard and mouse. You then turn the second display on with a script that will contain a single line that looks like:

      startx -- :1 -layo

  • by AnyoneEB ( 574727 ) on Thursday July 13, 2006 @08:52AM (#15711868) Homepage
    Couldn't this cause problems with legacy apps that assume that there is only one mouse pointer? I don't know about you, but I usually that onMouseOut is called when there is no mouse pointer over an object. I usually do not keep track of the number of mouse pointers in that instance. Then again, mouse overs are tend to be used for minor things like highlighting buttons the mouse is over.
    • From the demos, it looks like they just merge events from both mice into a single queue. If you only use one mouse, it acts as a normal single mouse. Once you move the other cursor, it's as though you instantly moved from the previous cursor's position to the other cursor's position. Since mouse events are only fired on movement or button presses, it doesn't matter than the other cursor is still "over" the element until you do something with it.
      • I didn't read the article, but would that be a pretty useless solution? It would be highly compatible of course, but else it would mean that you just recieve events from one mouse that is rapidly jumping around (in case you move both at once)...
        • Well, this is just for legacy apps. It doesn't get you much, but it's probably preferably to having to designate one mouse the "master" and ignoring the other. There are potentionally some uses; in the Gimp example, one cursor is left over the tool palette and the other over the image. The user alternates between using the left mouse to change tools and the right mouse to apply them to the image, without having to constantly move the mouse back and forth. They also create some interesting effects with s
  • ...with a TV remote control?

    Imagine: You and your girl friend get each an RC - you watch Jon Steward and she hears the sound of Gilmore Girls.
  • by Greyfox ( 87712 )
    Hmm... second axis in a 3D UI? I hate the idea of taking another hand off the keyboard though... how about if each mouse had 52 buttons?
  • by Anonymous Coward
    My octopus has been after me for this feature for years.
  • there are already applications that support multiple cursors. Take a software audio mixer for example. With a decent usb mixer controller you have so much input devices available that are mappable to one or two dimensional sliders to control your musique.

    But sure. Multiple input devices in X would be great. The new API could be used to model the above application.

    But don't forget to support my usb mixer input device.

  • This opens up X to the possibility of supporting something like the Tactipad. That's cool.

    But I still think it's going to be awhile before I see the Tactipad at Best Buy...

  • We're now a little bit closer to Star Trek-style touch screens...
  • The Amiga was multi-cursor from the start. I used to play video games with my brother that used both mouse inputs. (Bethesda Softwares Football and Hockey games used it.) And now... after all these years... someone figured out how do to it in X-Windows.

  • ...Didn't Douglas Englebert demonstrate such dual mouse input in his demo [wikipedia.org] in 1968? I know there was dual-handed input (a mouse in one hand and a chorded-keyboard in the other), in addition to footpedals - but I could have sworn there was also a dual-mouse input system to allow two-handed resize and rotation of windows and other widgets.

    Also, dual-input (if not dual cursors) handling by X is available today - I once hooked a serial mouse and a PS/2 mouse up at the same time to one of my Linux boxen, and by t

  • What I would like to see is a way to 2 mice, 2 keyboards and 2 monitors to the same system to allow 2 different people to log in to the same machine with their own desktops. This could be useful in situations where you have multiple terminals sitting right next to each other since you would only have to purchase and maintain one system per two terminals. If you consider that most retail video cards support two independant displays and dual core processors are hitting the mainstream, the hardware is more tha
    • Can't find a link, but this was covered on /. a year or two ago. Some people made a cheap desktop for education in Africa or something, with 2 video cards and dual keyboards and mice (USB presumably). It acted more or less like a machine with two thin clients; you could log in independantly on either of the heads.

      I don't think they had to do anything very special; AFAIK they were using pretty standard x86 hardware and (two seperate) stock Xorg servers (using 2 config files). Dunno how they did it, but I k
  • Douglas Engelbart had this back in the 60's. Take a look at his demo from back then. http://www.archive.org/details/AlanKeyD1987 [archive.org] http://www.archive.org/details/AlanKeyD1987_2 [archive.org] About: smalltalk (what squeak is) http://www.archive.org/details/DanIngal1989 [archive.org] Hopefully Alan Kay and his team will save us again with the squeak system, think of squeak as a whole new OS, but much more. I know that OpenCroquet project within squeak supports multi mouse www.opencroquet.org ~goslackware

Honesty pays, but it doesn't seem to pay enough to suit some people. -- F.M. Hubbard