Slashdot Mirror


The Multi-Pointer X server

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.'"

6 of 115 comments (clear)

  1. Window stretching by glowworm · · Score: 2, Interesting

    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.

    --
    Orationem pulchram non habens, scribo ista linea in lingua Latina
  2. Four hands.. by Anonymous Coward · · Score: 1, Interesting

    Two hands and two feet.. might be more useful than one thinks!

  3. About time! by MMC+Monster · · Score: 5, Interesting

    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.

    --
    Help! I'm a slashdot refugee.
  4. Re:Reminds me of Anakin by hey! · · Score: 2, Interesting
    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 what had gone wrong with Germany after the Second World War, they were shocked, not by the party laders' excesses of cruelty, which they were prepared for, but by their dreary, commonplace character. Hannah Arendt coined a phrase for this: "The Banality of Evil".

    Think Kim Jong Il. You wouldn't hire him to run a hot dog stand, much less a country. He is very obviously a clown. But he's a ruthless clown with a talent for spreading fear.

    The problem with the episode one to three movies was that Lucas, freed from any artistic or financial limitations, produced a series of ponderous and excessive movies, like an over the hill prize fighter carrying fifty pounds of excess fat. But Anakin's annoying character was right on the money. Folks, he's supposed to be contemptible. In the original trilogy Darth Vader had a kind of evil glamour, like Satan in Paradise Lost:


    So farewell, hope; and with hope farewell, fear;
    Farewell, remorse! all good to me is lost;
    Evil, be thou my good; by thee at least
    Divided empire with Heaven's King I hold,
    By thee, and more than half perhaps will reign;


    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. Lucas obviously wants to make a philosophical point, and it's a good point. The problem is that he's not as entertaining doing it as when he's just hoping to be able to get the movie made.
    --
    Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
  5. It's called the evdev interface... by IBitOBear · · Score: 4, Interesting
    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"
    EndSection

    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"
    EndSection


    This is on ubuntu with the current "stock" 2.6.15 kernel and Xorg packages.
    --
    Innocent people shouldn't be forced to pay for inferior software development.
    --"Code Complete" Microsoft Press
  6. Re:I would be a lot more impressed by Anonymous Coward · · Score: 1, Interesting

    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 legacy stuff that'd behave unpredictably on any 'button 6' presses.
    To bypass the whole problem, the X Input Extension (XIE) was devised; allowing an application to 'ask' what a particular device supported and then choose how to handle them. In effect, it allows the device-driver within X to provide any number of possible 'controls' that can be read out and what names they should have. That could be anything from X/Y/Z axis, buttons, rotational sliders, etc. It doesnt really matter. I'm sure that, if one would wish, one could make a driver that would map all 101/103 keys on a typical keyboard to XIE events and read those out.

    But, currently, scroll-wheel events are done using the line
    Option "ZAxisMapping" "4 5"
    in the x-config. That'll map the "z-axis" (meaning, the scrollwheel) to button 4 and 5; something any application can read out just using mouse-button events. Be aware that XIE isnt supported by any applications apart from those really needing it (Gimp, etc, since they'd want support for a Wacom tablet, etc). I'm sure there'd be a way to 'catch' XIE events and make sythetic 'normal pointer events' for any non-supporting apps.... but YMMV.