So I'm using my special keyboard again, after finally getting around to mounting it. It's great-- I can lean back in my chair and hack comfortably, wrists naturally positioned at my sides.
But I have no scrollwheel, and no middle mouse button. But I have two trackpads, one per hand, each with two mouse buttons. And I never use the left one!
So......
Linux 2.6 has a really nice input layer. I'm thinking I write a daemon (or you tell me of one!) that reads the mouse input events from the left touchpad (they show up as seperate devices) and translates all upwards motion into "scroll up" mouse clicks, and all downwards into "scroll down" mouse clicks. (scroll up/down are just mouse buttons, as far as the computer is concerned). SImilarly, I'll convert my left two trackpad buttons into "double click" and "middle click". Then this daemon will reinject its events into the kernel layer, where they'll get merged into /dev/input/mice or whatever for X to read.
Tell me where this already exists so I can use it. :-)
I've been followed up already, but my understanding is that Synaptics basically own the applicable patents on touchpads sufficently to pretty much own the market - most touchpads are (apparently, take with a pinch of salt, research before retransmission, etc.) either rebranded Synaptics pads or licensed from Synaptics and sufficiently close to their API that they may as well be Synaptics. The driver I've referenced allows you to hook arbitrary button events to "scroll wheel" motion (i.e. running your finger along one side of the pad) so you could (in theory; I don't have the hardware to experiment with) set up the first pad as buttons 1-3 for the actual buttons, 4/5 for vert, 6/7 for horiz, and then set up 8/9 and 10/11 on the second pad. Some assembly may be required to make this sucker fly, but I believe you should at least be able to use the existing code as a basis if nothing else.
Just to add, in case it's not obvious, I do actually have one Synaptics device, and I have used - in fact, am currently using - the driver. I'm not just, you know, paraphrasing the page or some equally dumb-ass thing.
No can do. /dev/input/mice is a synthetic device providing all of the events from /dev/input/mouse*. What you want would require creating a FIFO that you point X to, then having a daemon feed the FIFO while reading /dev/input/mouse[01].
Is the Aeron chair really as good as the hype? I'm planning on ordering a chair at work soon and like Herman Miller for their sustainable business practices, but wouldn't compromise on comfort. Having the right chair may finally keep my from pulling my knee up to my chest and letting my leg fall out while typing. Not the best posture I know :(