The Citrix X1 Mouse


Like I’ve written many times before, my iPad is my main personal computer. But both the kind of work I do and the hobbies I engage in force me to remote to various machines on a daily basis and I’ve grown tired of Apple‘s take on what “professional” use of their hardware is like, so when I caught a whiff of the X1, I fished around until I could order one in Europe.

A Mouse? On an iPad?

Yes. The X1 is companion hardware for the Citrix Receiver, their iOS client. Citrix has had brilliant, high-performing remote desktop technology for years, and I notably used it ten years ago to close my laptop in Portugal, re-open a few hours later in Italy and just keep on going on a Word document (an RFP for DSL equipment, if I remember correctly) on top of GPRS. Yes, less (average) bits per second than dial-up. And it worked.

These days things have changed tremendously, and RDP delivers an excellent desktop experience with moderate bandwidth use – so I regularly use that to connect to my machines on Azure, and fall back to VNC on Linux (largely because X11rdp is still a pain to set up and keep secure). Jump Desktop supports both just fine (including tunneling both inside SSH), so that’s what I’ve been using for years now.

Even though Jump Desktop supports a “trackpad” mode that goes a long way toward making a remote mouse pointer usable on an iPad, it’s not as immediate as a mouse – I’ve grown used to it and compensated by using keyboard shortcuts extensively on Linux, but using Windows machines remotely is a pain, especially when you’re dealing with single-purpose VMs that are not worth the time to configure the way you prefer (and believe me, I’ve looked for ways to script the configuration of various keyboard shortcuts and never found anything that fit me).

The interesting thing is that I have no trouble whatsoever with using the touchscreen itself – in fact, I’ve become somewhat of a fan of Windows 10 Tablet Mode, which translates beautifully over Remote Desktop. It’s having to constantly toggling between touch and trackpad modes that has been getting to me, especially since the iPad mini’s small size makes it a little too hard to position the caret and do precision dragging in touch mode – now there’s no need to toggle anything anymore.

Incidentally, the keyboard I use is the Logitech Keys-to-Go, which I got during my recent trip to Seattle. I like its portability and the fact that (unlike some of Logitech’s other offerings) it has a Ctrl key. It doesn’t have Esc, though, which is a constant pain, but it sort of makes up for it by being close enough in key size and spacing to make it possible for me to touch-type at speed without any hiccups.

I’ve been using it to write just about everything here for the past eight months, and love it:

My little mobile office.

Yep, again, that’s an iPad mini. I prefer that form factor for portability and general-purpose use (and freely grant it can feel a little cramped at times), but with a full-screen editor going and the font set to a sensible size it is just right.

The whole setup (plus a power adapter and the requisite dongles) fits into a small messenger bag.

The X1

Physically there’s nothing much to it: It’s your average nondescript plastic mouse, suitable for both left-handed and right-handed use. Here it is alongside my battered Apple Magic Mouse:

The little nub is actually a button that lights up with a blue LED when the mouse wakes up, but strangely enough it's completely undocumented.

The electronics seem to be thrifty, taking a single AA battery:

With the cover removed. Note the apparent re-use of a mould that would take a wireless transceiver.

It’s not the best built mouse ever, but it’s ergonomic enough. I’m a bit concerned that the bottom cover retainers appear quite fragile, but I don’t plan on opening it very often.

These look flimsy and breakable.

Compatibility

So far, it works perfectly with Jump Desktop, regardless of the display protocol in use or the kind of machine I’m accessing. No lag, no trouble using the mouse wheel, no trouble on any of the surfaces I’ve used (but no glass tables yet, which are often a problem).

But since the mouse support is baked in to Jump Desktop, the X1 doesn’t work with the official Microsoft Remote Desktop client for iOS, nor with any other applications like Prompt or Coda which provide SSH access. Those would also benefit greatly from mouse input, for even text-based terminals these days support mouse events when appropriately configured.

Or even without any configuration at all – On Ubuntu, I regularly use a mouse with vim without even thinking about it, and got it to work many times with tmux when SSHing to various other distributions.

But until Panic and the like catch on, my usual cop-out is to open a VNC session on one of my UNIX boxes and use terminals there – which works, but is hardly ideal on the road.

Getting Natural Scrolling “Back”

The only thing I missed was natural scrolling when connecting to Windows machines, but that’s easy enough to hack through a registry tweak:

  • Run regedit.exe
  • Go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\HID
  • Find the mouse hardware ID (you can fetch it from hardware properties inside the Settings app)
  • Look for DeviceParameters and change FlipFlopWheel to 1

In Linux/VNC, it’s much easier (but a tad obscure, I’ll grant):

echo "pointer = 1 2 3 5 4 7 6 8 9 10 11 12" > ~/.Xmodmap && xmodmap ~/.Xmodmap

What About Full iOS Support?

The mouse does pair with iOS, but obviously nothing happens since Apple doesn’t believe a mouse is useful in iOS and has built no support for it (which dovetails nicely with the discussion about touch screens on laptops I alluded to a couple of days ago).

And, like I mentioned above, it will only happen at all if developers do it themselves – which is kind of a shame, really, since when Apple implemented two-finger cursor movement in iOS 9 they could have extended that to some kind of mouse support1.

But alas, that is likely not to be. The iOS+touch vs Mac+trackpad split is unlikely to change, and “Pro” users who need access to remote machines and legacy apps are likely to have to put up with this situation forever.

Nevertheless, I now have a pretty nice way to work remotely – I’ve even plugged in an aging external monitor via VGA on one occasion (but at 1024x768 resolution, which is ridiculous these days). I know this smacks of Continuum, but if iOS devices had consistent hardware (and software) support for full HD display output, I’d be a happier camper.


  1. I know using a standard Bluetooth mouse has been possible for years if you jailbreak your device, but I have no interest in doing that. ↩︎