Two Mouse Pointers And One Display? 52
metasynth asks: "I've been looking around a bit for information on this, but haven't had much luck. What I would like to do is to get two mice running, each with its own pointer. And be able to distinguish between the two in programs, e.g. something like mouse1.button1 as an event so I can tell which mouse did what. I have found references to getting two mice working with one pointer, which I've been playing around with but have yet to get it working, but I really would like two pointers." I don't know about you all, but I would get a bit confused by the presence of two mouse pointers. Do you all see this as a neat idea, or would it be a tough thing to implement?
spaceball (Score:1)
Back when I was doing a lot of CAD stuff, I saw a few guys running spaceballs. Basically, a spaceball is something you run in combination with your mouse. Your mouse does most of the selecting and drawing, but the spaceball does all the movement of the part selected.
Another way of moving parts on screen was to click on an icon (for translating & turning). A slight improvement involved a few hotkeys that are held while the mouse is moved, letting the mouse do the work.
I think that the spaceball I used ran on an HP (hpux) box, but I know for sure it was a UNIX flavor.
I would investigate what exactly you're trying to do. Is it really necessary to run 2 mouse pointers, or would a second input device such as a spaceball help you do what you're trying to do.
Re:Oddly enough, this is in TMMM (Score:1)
You'd be surprised how little software engineering has changed ;-) - I joined this game professionally a year ago, and when (6 months ago) someone clued me into MMM, I found it spookily accurate. Sure, the projects have different scope - but they're still run the same. The first project I worked on, it was looking like running late. Management response? "You've got as much money as you like to hire new people". I regard my project manager as a god for replying "Adding new people now would make us later". No-one new joined and we shipped on time and under budget :-)
Re:But where would keyboard focus go? (Score:1)
Improved User Interface (CAD & VR design) (Score:1)
The issue of using two mice came up while I was taking my User Interfaces course at the University of Waterloo.
Basically the idea is that with two mice you have many more degrees of freedom to work with. If you look at a standard mouse, you have 2 + number of buttons degress of freedom. When working with CAD programs and VR design, you need to have at least 3 degrees of freedom (one for each dimension, obviously). The problem comes in when trying to work with a 3D object on a 2D screen with a 2D instrument (mouse). In order to get the third dimension, many programs will do the "natural" thing and project 2D mappings of the 3D object. You manipulate these 2 dimensions, while the third remains fixed. However, when getting into operations like rotations and scaling, which are no longer natural movements done in a 2D plane (ie. moving something on a 2D vector), things get even more interesting.
Such things require the user to turn the operation on (click an option, hold a key on the keyboard, etc.) Using the keyboard with one hand and the mouse in the other is actually quite effective, but there is still a transition where we are no longer translating; we are transforming. Hence the second mouse. One mouse is useful for translations, and the other is useful for transformations. The buttons on the transformation mouse allow to switch between the transformations, and the motions allows you to perform continuous scaling/rotations while all the time maintaining the ability to translate the object as well.
Two mice would be killer in Quake! :-)
Re:You'd break virtually all apps and the WM. (Score:1)
Re:You'd break virtually all apps and the WM. (Score:1)
Rather than:
mouse1.button1
mouse2.button1
Why not:
mice.button1
etc...
mice.button7
Then you wouldn't have to rewrite apps to poll two mice.
Re:You'd break virtually all apps and the WM. (Score:1)
Re:You'd break virtually all apps and the WM. (Score:1)
Re:other virtual desktop applications (Score:1)
Re:You'd break virtually all apps and the WM. (Score:1)
Well, as a universally accepted n-mice configuration, you are correct that this would require a considerable amount of work and verification. But to be honest, it wouldn't be impossible to implement in a specific application such as a CAD package. But it would have to be specific to the application.
Personally, I imagine teleoperated n-mice systems such that a CAD supervisor could direct or go over designs with home working CAD layout people. A phone/teleconferencing call could allow for more CAD people to work at/out of their homes.
In my job, I take a webcam with me to email pictures of components off of assembly lines to show the designers at the home office - often saves a FedEx shipment or worse, a designer shipment. Because we all know "A picture is worth a thousand words or so depending on what compression ratio you use."
Seriously though - yeah, universally, it would be hard to do, but on the application level, it would be quite cool.
Multiple Devices currently in use. (Score:1)
Also I've worked with enough people that use graphics tablets (that act sort of like mice) for their fine drawing, but use mice for general moving around the machine.
Either of these cases is simple, the software knows how to deal with mouseovers, click1, click2, doubleclick etc... When Microsoft came out with their mouse with the wheel, and immediately supported it with IE, there are still programs that I use that don't support the wheel. How much support are you really going to get for Mouse2 and Button4?
VR and other apps? (Score:2)
I first imagined a drawing program - one hand controls the rotation of the paper, the other controls the brush or pen (could make some wacky designs)...
Then (of course) my thoughts turned to VR apps - imagine one hand controlling a "virtual" hand pointer in space (left button to control left/right/zoom, right to control "grabbing" - no buttons for X/Y positioning). The other hand could control (in a similar manner) avatar positioning in the world - so one could move around, and grab things.
A similar scheme could be done for games - it is a little awkward, but it might be something fun to play with...
Worldcom [worldcom.com] - Generation Duh!
Re:You'd break virtually all apps and the WM. (Score:1)
Anyway, I can't imagine that it would take much work to make the X server add another pointer to the screen getting input from the nth-mouse. It might be difficult to have most applications do anything different with it though. (However, it is amazing what you can do with your
Re:Lemmings on the Amiga (Score:1)
Too tempting? If you didn't pay attention to what the other person was doing, you were likely to find all of your lemmings falling down a new hole that was not originally part of the map. :)
OpenVerse Visual Chat: http://openverse.org [openverse.org]
I'm using two mice/one pointer (Score:1)
I haven't looked into the X source code, but I'd imagine that the only real problem would be with focus. Maybe one pointer keeps the focus, and the other has it only while clicking? Hm.
Maybe I'll look at the source code of gpm and see if it can be done in the console.
-lf
Two hand IBM Trackpoint Keyboard (Score:2)
Re:You'd break virtually all apps and the WM. (Score:2)
What's the point of having two pointers if you can only click on things with one?
Re:Lemmings on the Amiga (Score:1)
The Atari ST also has this support. On could use two mice, two joysticks, a mouse and a joystick...
Perhaps it's because the Atari ST (and Amiga) were systems designed in part for gaming. (?)
Interesting related schtuff (Score:1)
The idea, I think, is it's a bit like driving in nails - your off hand does the work that uses less coordination, positioning and holding the nail in place, while your good hand does the accurate work of pounding it in without smashing your thumb.
Here's a link to what if I'm not mistaken is an influential paper [xerox.com] on the subject, some work done at Xerox PARC.
Re:You'd break virtually all apps and the WM. (Score:2)
XFree4 (Score:1)
XF4 has this utility that lets you configure multiple devices:
xf86cfg
and it seems to work with multiple monitors and video card. it has a icon to "add mouse" but it crashed
Re:Like in 007 for Nintend0 64? (Score:1)
Almost no serious Quake/GenericFPS players nowadays play any other way --- the mouse is your head, the keyboard is your feet. Once you've learnt to do it, you never go back --- in fact, nowadays I find I physically cannot control the game any other way! Of course like any good rule there are exceptions - the guys who can speedrun Quake levels on keyboard only are too scary for words.
Re:You'd break virtually all apps and the WM. (Score:1)
Re:Lemmings on the Amiga (Score:1)
(Check the chain of comments again.)
Re:You'd break virtually all apps and the WM. (Score:1)
actually with the new macs you can have two mice control one pointer with usb - try it yourself, go grab two hockeypuck mice and an imac, plug em in and see
Re:You'd break virtually all apps and the WM. (Score:1)
So if you clicked button1 on mouse1 the event would be something like: mouse.button1.buttondown
And if you clicked button1 on mouse2 it would be: mouse.button1.buttondown
This way it wouldn't matter if you used the wrong mouse.
Re:Like in 007 for Nintend0 64? (Score:1)
I'm going to have to give it a go when I get home.
Re:You'd break virtually all apps and the WM. (Score:1)
Actually, isn't this how scroll mice are supported (by treating the scrolling up/down as button 4/5)? And, as a related question, how much does the functionality of the second pointer depend on being able to actually see it? If the problem is hardware sprites, etc., could you use the second pointer to, i.e., spin your 3d model, without needing to see a little arrow moving around on the screen?
I have tried it and it was great... (Score:1)
Re:er, (Score:1)
Re:er, (Score:1)
I guess this could work. It's one of those things where it's a nice novelty but no real future.
- Jasirus
Good for a multi-player game? (Score:1)
The game in question was a two-player variant of Pipeline. If the truth be told, I never actually finished the game properly, but the two-players/two-pointers thing worked brilliantly.
Unfortunately, the method I used won't translate to another platform; I used a third-party extension to an existing language, which offered the commands to access a second mouse (and various other good stuff).
My point is that I've proved it can be done, and that it works well when it is done properly.
I've also seen an art package demonstrated that used a second mouse, with the second mouse being used to move palettes. Interesting concept, though maybe a little hard to get used to.
I'm not sure, though, how useful it would be on a general desktop. If one pointer does something that occuldes the screen space the other pointer is using (maybe it opens a new window, or something), it could cause problems.
Three mice (Score:3)
It is on a W2K machine, but it works just as well in Win98. Since it is USB dependant, I have never been able to make it work in *nix.
With USB mice you can plug in a mouse in the USB slot and one in the PS/2 hole. I don't know if there is a limit, barring the 127(?) device limit on a USB chain. They all move the same pointer, however.
This can still be useful when the mice can have different sensitivity settings. One of my mice is the Razer Boomslang 2000 (order from ThinkGeek [thinkgeek.com]) that can be set to absurdly high responsiveness, which makes it unwieldy for graphics work, but great for gaming. The PS/2 mouse and the castrated mouse are both a lot easier to use for fine work, or when someone that can't handle the Razer sits at my desk.
I have long looked for a utility that would enable mutiple pointers so I would be able to use whichever hand wasn't typing to mouse with, but have never found anything that makes it look possible.
Re:er, (Score:1)
--
Re:er, (Score:1)
If this was implemeted correctly, and with left and right pointers like in MS Word, you could have a hit. Think of chess games.
Lemmings on the Amiga (Score:1)
Did the PC version of this allow the same?
Of course none of that helps you with X much...
Oddly enough, this is in TMMM (Score:2)
This is mentioned in the "20 years after" section of The Mythical Man Month, under user interfaces. There he (Brooks) gives references to research done into doing this. I don't have my copy handy or else I'd post them here.
--
Re:Good idea... but... (Score:1)
For programs which have no need for two mice, have them do nothing and let the window manager keep track. For example, if you have two versions of netscape open, you can have one window be focused by mouse 1 and one window focused by mouse 2. Moving mouse 2 over window 1 would do one of several things (I'm thinking the first would obey the principle of least asstonishment better, but perhaps it could be user configurable):
a. Mouse 2 turns to a different cursor indicating it doesn't have focus anywhere. Life goes on.
b. Mouse 2 steals Mouse 1's focus, Mouse 1 changes as above.
c. Mouse 2 bounces off the window region or else warps through it.
For programs which want to use two mice simulataneously (games, graphics programs, whatever...), let them register with the window manager.
This would probably be more work than it's worth, but I don't think the overhead would be significant, and if there are cases where two mice would be useful, the overhead could probably be justified. Besides, that way, Mac users could now mock windows users for only having one mouse.
Re:Lemmings on the Amiga (Score:2)
I think it supported two mice by having a driver for serial mice built in, so that it would use the installed driver for one mouse, and the internal driver for the other.
Over all, I think I would have liked network or modem multiplayer support better than the two mouse method. It was too tempting to peek at that the other player was doing.
--
One real pointer, one pseudo? (Score:2)
Is there anything to stop another app reading
FP.
-- Real Men Don't Use Porn. -- Morality In Media Billboards
Mutiple Mice (Score:3)
Re:Multiple Devices currently in use. (Score:2)
Microsoft has been able to use multiple mice to drive one pointer since Win 3.1. I don't know when they first implemented this, but it was a feature of the MS EasyBall [kidsdomain.com]. It plugged into one serial port and an conventional mouse plugged into the other. When the normal mouse was used, the mouse pointer was like ..er.. well..normal. When the EasyBall was used, the pointer would change shape. This was so a parent and a child could interact with the computer. I doubt very many geeks would use it: it had only one button, and the trackball was yellow and about the size of a softball. Given that the base of white, it looked like a mutant fried egg.
You'd break virtually all apps and the WM. (Score:5)
Quite a bit more is going to be the software itself. Particularly on a system which was never designed to handle multiple mice, do you think that code like the X server is necessarily able to handle multiple mice doing things simultaneously? Also, if I remember correctly (but it's been some time since I did raw Xlib programming), the X protocol assumes ONE mouse. Which means that there's no way for the X server to talk to the applications and tell them that it was the second mouse that did something (i.e. no differentiation possible). You'd have to rewrite portions of X to get the second mouse active. Even if the X server and/or hardware was able to distinguish between the two types of mouse interrupts, AND show two different pointers, what about the applications?
I know that most of the software which is happening on the front end is built to be single-threaded (for example, almost all of KDE is based on Qt, and one of the major problems I have with Qt is the crazy way it handles simultaneous events in a single-threaded model). Let's start assuming that it's possible for your application to start receiving two simultaneous mouse events. Will every bit of software be able to handle it? Not necessarily.
And then let's say that you get to the point where all the hardware, X Servers, widget toolkits and window managers are able to handle it by queueing the requests. Mouse events happen MUCH more quickly than keyboard events, so even if your application is designed to be fast enough to handle a keyboard event with reasonable speed, is it fast enough to handle multiple clicks simultaneously? What about mouseover events?
So you're looking to rewrite the X protocol, your X Server, and then spend about 6 months debugging every application you use. And that's assuming that you get the hardware to handle multiple pointers.
Still seem worth it?
Like in 007 for Nintend0 64? (Score:1)
I always thought it would be useful to do this on a computer, but I doubt that X will support multiple mouse pointers or keyboards anytime soon.
TMMM: sparse refs, but read it anyway! (Score:1)
What, you're ever at a computer without access to TMMM!? :-)
Brooks does mention two mice, but has no pointers to further info. In Chapter 19 (pp. 261--262 in my A-W softcover edition), the section ``Command utterances and the two-cursor problem'' discusses how most commands consist of a verb and a noun---action and object---and how convenient it would be to use two cursors to simultaneously select each. The notes for that chapter are prefaced with ``Material quoted without citation is from personal communications.'' The note from that subsection, says in its entirety:
His thoughts on the human-machine interface are well worth considering, including ways around the need for two mice.If you haven't read this book, do so now. If you wonder why, you might check some reviews:
But where would keyboard focus go? (Score:1)
you can have one window be focused by mouse 1 and one window focused by mouse 2
And to which text editor window would keyboard input go? Mouse 1 focus or mouse 2 focus?
Tetris on drugs, NES music, and GNOME vs. KDE Bingo [pineight.com].
other virtual desktop applications (Score:1)
Re:Interesting related schtuff (Score:1)
-Golden Eagle
Re:Lemmings on the Amiga (Score:1)
Never tried to use it though.
Laptops (Score:1)
Re:er, (Score:1)
Re:Oddly enough, this is in TMMM (Score:1)
I have a 1982 reprint of the (original?) 1975 edition, with lots of descriptions of his experiences with the IBM OS/360 project.
I'm guessing the later editions were radically revised/had extra chapters with more up-to-date experience of software engineering.
Still, i've managed to ref. lots of pertinent chapters in recent essays.