X-Mouse Button Control, Web Navigation, Tilt Wheel and Remote Desktop

I recently decided to buy the X-keys L-Trac Red Trackball because I just like track balls and this was one of the best reviewed trackballs I could find. Over all I’m happy with my purchase but I have had some issues and I wanted to explain in this article how I solved them. My hope is that others with similar issues can find this article and save themselves some time.

The challenge with the L-Trac is that it only comes with three buttons (you can buy more though but other than the foot peddles that would take up more room than I want to use and don’t appear terribly easy to use). This left me a bit in the lurch because I really liked being able to navigate back in web browsers when I’m just using the Trackball and for some apps I use (like Balsamiq and Excel) the ability to left/right tilt is a requirement for a good experience.

My online research pointed to X-Mouse Button Control as the solution. This is a free piece of non-open source software that lets you remap mouse buttons in a dizzying variety of ways. The good new is that it solved my missing button problems. The bad news is that it took me a while to figure out how to make it work right. So I thought I would share what I learned to hopefully save others time in the future.

For Web Navigation the easiest solution appeared to be using chording. That is, to combine one button (I choose the left trackball button) to change the trackball scroll wheel into a navigation wheel (e.g. scroll up goes forward, scroll down goes back). This absolutely works but it’s kind of a pain because the super smooth scroll wheel has no clicks or other indications when it has incremented so it’s easy to over or under scroll and end up way more pages away than I intended. A much nicer solution was to chord the left button with the middle button as back and the right button as forward. To do this you have to:

  1. Go to Left button and set it to "Button Chording"
  2. Go to the Right Button in the chording menu and set it to Forward
  3. Go to the Middle Button in the chording menu and set it to Back
  4. I unchecked "Block" in the chording menu because I often hold down the left button and use it with the track ball to do selections so I didn’t want chording to interfere with dragging.

For simulating the tilt wheel left/right the obvious solution would be to use "Change Movement to Scroll" feature which turns the track ball into a huge mouse up/mouse down, left tilt/right tilt sphere. But in practice I found the feature to be clunky. How far it scrolled depended on how far I moved the cursor and regardless of the sensitivity setting the scrolling always felt jumpy and hard to control. In the end I took a different route. I set up chording, this time with my right button and I programmed wheel up and wheel down to map to tilt left and tilt right. This proved to work really well and gave a really nice scroll experience. Setting this up requires:

  1. Go to Right Button and set to "Button Chording"
  2. Go to Wheel Up and set to Mouse Wheel Tilt Left in the chording menu
  3. Go to Wheel Down and set to Mouse Wheel Tilt Right in the chording menu
  4. In this case I did activate "Block" in the chording because otherwise I accidentally trigger the right click menu which is annoying.

One last problem I ran into is that I use Remote Desktop a lot and I wanted my trackball to work properly there. To get this to work right I had to:

  1. On the machine I’m Remote Desktoping from go to "Add" on the Application / Windows Profiles menu
  2. Select "mstsc.exe" as the app (this is easiest if you have Remote Desktop running so you can select it from the Process Menu)
  3. Then set everything to "No Change" for the remote desktop profile on the machine I’m remote desktoping from The idea is to completely disable X-Mouse Button Control on the machine I’m Remote Desktoping from when I’m using Remote Desktop.

Then on the machine I’m Remote Desktoping to:

  1. Install X-Mouse Button Control
  2. Configure all the chording on the machine I’m remote desktoping to as given at the start of this post

Now my trackball behaves itself just fine both on my primary box and my remote desktop box and I have a nice forward/back navigation experience as well as a nice left/right tilt experience. It took me quite a bit of experimentation to figure this all out so I’m hoping that this post will help save other folks some time if they if they have similar problems.

Sharing sparse disk image bundles across OS X machines

Normally using my Mac is a simple joy. But recently I created a sparse disk image bundle on my main OS X box and wanted to share it with other OS X boxes. This is quite possible but requires some very arcane commands to make work. I explore those commands below.

Continue reading Sharing sparse disk image bundles across OS X machines

A mac fail? Please Help me with remote desktop

I want to get a mac laptop for my wife but I want to be able to use it as a remote terminal for my iMac upstairs.

There doesn’t appear to be a decent solution for this problem on the mac. VNC is a joke. It will just take my 24 inch iMac screen and shrink it down to the laptop’s screen size. And yes I have played around with smart zoom but it’s really painful.

Isn’t there an equivalent for the mac to Microsoft’s outstanding Remote Desktop Connection application and RDP protocol?

For what it’s worth I signed up to be notified when AquaConnect releases their mac remote desktop product which is based on RDP but they aren’t even announcing dates.

Any ideas or am I just out of luck?

Apple Machine Support Sucks

The minimum system requirements for iLife '08 requires either a Power Mac G5 dual 2.0Ghz or iMac G5 1.9 Ghz. My machine is a Power Mac G5 dual 1.8Ghz and my wife's iMac is a G5 1.8 Ghz. I bought my machine in 4/2004 so after just 3 years and 4 months the machine is, in so far as Apple is concerned, obsolete. We bought my wife her iMac in 6/2005 so in her case it only took 2 years and 2 months for her machine to be declared obsolete by Apple. I think that is insane. Apple takes thousands of dollars and gives us just over 2 years before declaring our machines obsolete? I am not a happy Apple customer.

And yes, I know, it is possible to run iLife '08 on these machines but we wouldn't have any official support and if there is a problem we can't even return the software since, it is my understanding, that Apple won't take back open software boxes. So we're screwed. I typically upgrade my computers every four years or so, so I was planning on upgrading my box in 2008 but even then I can't move to iLive '08 because we won't be upgrading my wife's machine until 2009 and we share iPhoto by file synching (as in, my wife's machine is the 'master' and I synch off her drive). And no, terminal serving in to my machine from her machine won't work. The whole reason we got my wife a Mac is to make her life simpler, not more complex. Besides, she downloads the pictures to her machine, not mine.

Normally Apple makes me really happy but I feel seriously screwed by iLive '08. Obsoleting a main line machine in under 3 years is just wrong.

Making LY X Produce Decent Hyperlinked HTML & PDF Files

As someone who writes for a living I have used a whole slew of word processors and generally haven't been all that happy with any of them. When I write I want to focus on the content, not the presentation. So the whole WYSIWYG generation of word processors left me cold. In fact, I spend most of my time in outline mode in Word. LyX takes a different approach. It focuses on What You See Is What You Mean (WYSIWYM). In other words, it doesn't worry about formating, just content.

When I first reviewed LY X a year ago I decided it was good enough to use (and have done so regularly since) but still painful. With the 1.5.1 release I can revise that review to say that it's only minorly irritating to use LY X but it's good points are so numerous that it's more than worth the pain if you need to deal with large documents, with math formulas or with large bibliographies. And thanks to the efforts of folks like Dr. Richard G. Heck (who has my undying gratitude for fixing HTML generation in LY X) LY X is substantially better at generating HTML.

LY X does have a learning curve and one is well advised to at least read the tutorial (Help->Tutorial). But I believe that the modern versions of LY X have vastly improved over their predecessors and the learning curve is well worth the effort.

Continue reading Making LY X Produce Decent Hyperlinked
HTML & PDF Files

Running a J2SE 1.5/J2SE 5.0/Java 5.0/whatever Program From Command Line Under OS X

The good news is that J2SE 1.5 is available for OS X. Last I checked it was available here. For whatever reason Apple decided to keep the default version of Java on OS X as 1.4.2. So when I try to run Java programs directly from Terminal using "Java -Jar X.Jar" the program will be run under 1.4.2. But the goodies in J2SE 1.5 (like generics and enums and iterators) are just too yummy to give up so all my Java code is in 1.5 which means it won't run on Terminal. To fix this problem I found a script (details available here). Once I downloaded the script and saved it as java_functions_bashrc, I then opened terminal, navigated to the directory with the file and executed "source java_functions_bashrc". This changes the command prompt to indicate that the file is running and I then ran "setJava 1.5". At this point any Jar files I run will be run under J2SE 1.5. I tend now to write little scripts that wrap my Jar files to load up Java 1.5.

Creating Executable Jar Files That Contain Jar Files

Naive Java user that I am when I built a Java program that contains Jar files for Xerces and MySQL and such I assumed that Eclipse would be able to create a Jar file for my program that contains these other Jar files. That part was right, Eclipse can do that, what Eclipse can't do is set up the class paths correctly so my custom generated Jar file can't find the classes it needs. Thankfully, One-Jar came to the rescue.

Continue reading Creating Executable Jar Files That Contain Jar Files

Does Anyone Know of a Good Quality USB KVM?

And now, dear readers, I ask a favor. I have a PC (for work) and a Mac (for life) in my home and they share the same keyboard, mouse and monitor. I have an old PS/2 KVM box that works really well so when I bought the Mac I wanted to hook it in to the KVM. The problem is that the Mac only uses USB peripherals. So I made the mistake of buying the Y-Mouse, an adapter that converts PS/2 connections into USB connections. As I explain here, the Y-Mouse does not work very well for me. So what I'd really like to do is buy a USB KVM. I actually don't care about the "M" (e.g. Monitor) part, I have a HP 2335 and use its built in monitor switch (which guarantees me the absolute best image possible). So what I really need is a USB Keyboard/Mouse switch.

I did some research and all I could find were complaints about USB KVMs, the main issue being switching time. It seems that switching between machines can take several seconds. Does anyone know of a good quality USB KVM that can switch really fast? If so please drop a comment on this article. Thanks!

N.B. I am aware of Synergy. But Synergy has never worked very well on Mac's and my PC is actually running a VPN which ends up meaning that the keyboard and mouse commands would have to be routed over the open Internet, this is both a security and a performance nightmare.

Sharing Printers Between OS X Boxes in a Screwed Up Local Network

One of the reasons I bought a Mac for myself and my wife is that I could never get printer sharing working between Linux and Windows. I figured if Marina and I both had Macs then the problem would be solved. Unfortunately, I was wrong. While Apple has mostly embraced Bonjour technology there is still one major area that is left out – Apple's Printer Server (e.g. the open source CUPS) which uses its own multicast based discovery solution. When I hooked my USB printer to my OS X box and turned on printer sharing I couldn't get my wife's Mac to see the printer! The problem turned out to be that both my wife and I's computers have unique IP addresses that we get from our ISP's DHCP server. Unfortunately the ISP's DHCP server gave us addresses in different subnets! CUPS default configuration does not allow printer sharing between machines that are not on the same subnet. The CUPS configuration can be overridden fairly trivially but I don't want to because it would either mean hard coding in my wife's IP address (which changes) or allowing the whole world to print on my printer (which I'd rather not). Thankfully there was a really trivial solution to the problem that was pointed out to me by Stuart Cheshire, the father of Bonjour.

Continue reading Sharing Printers Between OS X Boxes in a Screwed Up Local
Network