May 16, 2008:
My trackball finally died a couple of days ago.
('died' might be a slight exaggeration. It still works. For about fifteen seconds out of every minute; the rest of the time is spent deciding that it's a new USB device.)
Being a cheap bastard, and at any rate wondering if perhaps there's something out there better than a trackball (I hate mice. Can't use a mouse on a desk that you've piled every flat surface on with random objects. Can't use a mouse on your lap without some sort of stiff pad.), I decided that it was bloody well time I made some of the many joysticks lurking in the garage actually earn their keep.

Despite having several of them show up every time I went looking for a power supply in the past, now they are all hiding. It took maybe fifteen minutes to find a pair (why a pair? Somewhere I've got one with a hat that I was thinking would be niftier.).

Okay, joysticks here. Now it's time to bend over the computer and plug them in to the...
Er, the...
... There isn't a game port connected. Fine, I'll find one and plug it in.
After much looking, I find the Box Of Things That Plug Into Motherboards (Organization is helpful, really.) after being distracted thrice by the similar-looking but unrelated Box Of Old Floppy Disks. Also after coiling up a few kilometers (... slight exaggeration...) worth of unsorted cables.

And, of course, there are no game ports in it. Fine. I'll check the bag of cables and such in the garage.

Which also doesn't have them. However, I find one in Yarm's old case and bring that up and shut down Transfinity to plug it in to the sixteen-pin spike that... isn't there. Oops, I'd been looking at the wrong motherboard manual before shutting down. There is no game port spike anywhere on the motherboard; there is, however, an amount of dust so large that it has been ordained lurking in the CPU fan. Which would be a good idea to clean out, the weather having recently wandered past 'too hot' and into 'melting lead flows through the streets, not even marked with the reproductive-harm-and-cancer warning that california regulations require on all lead-containing objects. Such as mugs, keyboards, and mice, to name the last three places where I noticed the warning labels.

Shoving an extra sound card in has no particular hitches - all the PCI cards that do not explode when plugged into things are in a box over by the eyeball tree.

Using the joystick also has no real hitches. It works great in the joystick tester after I reboot into a kernel that actually has joystick drivers. (Well, not quite 'great'. Button 1 doesn't do anything. But the other three buttons detect, and it does notice when I move the joystick.)
I seem to recall GPM had an option to use it with a joystick - unfortunately, while it handles button presses fine, it doesn't seem to notice my joystick _MOVING_. Which is kind of what I wanted it for.

Okay, now let's see what happens in X...

X proceeds to whine that the driver version numbers in the nvidia 3D driver do not match the driver version numbers, and I eye closed-source kernel-mode code with Suspicion and Grumpiness.

It turns out that the proprietary nvidia installer had clobbered Xorg's nvidia driver when I installed it. (Why? Well, I had been trying to use a kernel rather more recent than the one in Debian, and someone had decided that some functions should be reserved only for use by GPL drivers...).

Okay, that fixed, I start up X, with the joystick lines added to the config file like everyone says that they have to be to use the joystick as a mouse, wiggle the joystick, and...


Poking the server logs discloses that the joystick driver that debian stable ships on xorg doesn't actually WORK. So I go look in the bug database, and oh look, it's fixed!

Except the fix is in experimental. And by 'is' we mean 'was, several months ago.'. And it never actually got added to stable - instead, they just kept working on it in unstable, and the current version wants me to upgrade all of X. And somehow I suspect that moving over to unstable/testing will mean moving _EVERYTHING_ over because of dependencies, just enough of which will matter to be annoying.

Okay, fine. Debian must have a spot I can download old versions of things.

... well, it has a source repository. Using something called git.

Okay. So I will install git and learn how to use it enough to retrieve the old version, right?

... I mean, I'll install git-*core*, as 'git' is a transition package for a file manager.

... and now to look at the help for it. Okay, lots of commands, which have their own help and can also be invoked as git-whatever...

Okay, I'll look at their help. git-[tab][tab]

Display all 124 possibilities? (y or n)

Maybe git-reverse or git-rebase does what I want?

git-rerere doesn't seem relevant. git-blame is cute, but also not relevant to the problem.
... Okay, I'll do this the way I'm SUPPOSED to and look at the docs.

Tutorials for new users. Maybe reading the docs like people are supposed to won't be so bad.



... Except that the tutorial seems to imply that what you want to do is move all your source to git. No, I do not. I do not want my source in an RCS that I do not yet understand, I want to get SOMEONE ELSE'S source OUT of an RCS that I do not yet understand. I do not want to commit changes. I do not want to update the latest branch. I do not want to merge-octopus or to set up cronjobs to repack things or to checkout an individual file a second time.

Eventually, I give up on it and go looking to see if there are any saner pieces of documentation. Finding same, I roll the joystick input driver back to 1.1.1-1 and try to compile...

And find that it breaks partway through because the x development packages aren't installed. So I install them and run it again. And it breaks partway through because the X development packages aren't installed.

A bit of headbanging later, I determine that what it ACTUALLY wants is a file containing the server's ABI version (or possibly the minimum ABI version supported). Changing the check makes it willing to build, and now I have a joystick driver in X! Yay!
(Anyone want me to put it up for download?)

So I start X, wiggle the joystick, and... nothing happens.


I poke at various options. No effect.

I start a Ren'Py project I've been working on and look in the prefs. Joystick's enabled. It notices buttonpushes. It lets me move the cursor. I'd just made the mistake of thinking that when people post 'This is what I did to make the joystick work as a mouse' that they actually meant that.

Sigh. Well, there's a few people posting about js2mouse, which is supposed to let them use the joystick as a mouse...

And lo and behold, THAT takes FIVE MINUTES to install and JUST WORKS.

... Now I have a new pointing device!

... but it doesn't do curves or diagonal well. Sigh.

At least it's better than the bloody trackball.


Maik on 0x7D8 June 0xB:
I was hoping on finding some help / relevant information about js2mouse when I accidentally stumbled upon your post. Excellent writing style! You made me chuckle since many of the things you wrote about I have dealt with in the last few days: the molten lead, the kilometers of wiring and the 'non-exploding PCI cards' box... all because I can't use a mouse when I am in my bed.

Message ID: 'comment-0x7D8_June_0xB-0x0'; spamfilter sequence: {%turing_match%}-{%turing_response%}


{ Add Comment }