JoyToKey; or, Accessibility Through Coolability

I’ve been having on-and-off issues with my right hand for over a year now. There is no way we could ever know how this could happen, especially with such a healthy daily schedule like:

  1. Wake up and scroll my phone one-handed.
  2. Go to work for eight hours using a mouse intensely for GIS work.
  3. Go home and play click-heavy video games for four hours.
  4. Go to bed and scroll my phone one-handed.

However, while the truth of this injury conspiracy may remain hidden (thanks to the deep state) I started looking at ways to reduce the pain I was having. This boils down to the following:

  1. Mouse left handed where appropriate.
  2. Reduce phone use.
  3. Use my Saitek X52 HOTAS as a replacement mouse through JoyToKey.

Left Handed Mouse

Last year I swapped to using my mouse with my left hand while at work. I didn’t rebind or swap the left/right mouse buttons because I wanted to be able to throw the mouse on either side of the desk without changing configurations. Some people say this setup is cursed but to them I say: “the blood god will rise regardless of our actions”.

Honestly I think this is a fantastic thing that all developers/designers/product managers who are involved with UI construction should be forced to do in small amounts. Using your non-dominant mousing hand is a pain in the arse. It’s slow because of the lack of muscle memory and you quickly realise how terrible small fiddly UI elements or fiddly interactions are for usability. A quick moment of introspection should follow for anyone building minute elements and now having difficulty trying to click them when they realise this is how people who are new to computers or have limited mobility (motor conditions, medication side effects) experience your page/application/game all the time.

Reduce Phone Use

My original idea was “change how I hold my phone” but that was surprisingly hard. Left-handed-only phone use is horrendous due to a number of problems:

  • Most phones are too large to easily reach everything with one hand.
  • Most apps are designed to use all screen real estate.
  • Typing one handed is slow and “swipe” keyboards and limited phone dictionaries are frustrating (curse my eccentric typing style and hobbies I want to infodump about).

I have also been unable to find other comfortable ways of holding my phone to prevent pain.

However; reducing phone usage has a side benefit of me not spending as much time staring into a cursed black mirror that continuously feeds me a stream of fucked up shit like that Russian guy who injects his semen into chicken eggs to create hormunculi. Not learning stuff like “frodo milkshake ducked buying klansman nfts” right as I wake up or before I go to bed has definitely improved my mental health.

Use A Joystick

We know I love my Saitek X52 HOTAS. I realised that using a joystick as a control system for a PC is cyberpunk af and also helps make my personal computer more personal. So I took a look at accessibility software that allows you to use a gamepad or other device to control your computer. Google search is filled with AI-generated, SEO-spam bullshit these days but I managed to find a few software options, including JoyToKey. I ended up buying a license for it straight out because I had been in a lot of hand-pain lately and set to configuring it.

Holding the joystick was so much nicer on my hand then the clawing and contorting required for mouse use. I want to tweak my config further but my initial thought is that it’s slower and less precise but definitely usable and quick to get to grips with (see what I did there?).

End result is pretty cool:

Az’s hand holding a silver and black joystick with glowing highlights and the words Saitek X52 printed on the side.

So far I’ve set up the following:

  • Joystick movement (X/Y) controls the mouse, further inclination causes it to move faster.
  • First stage trigger is left click.
  • Pinky trigger is middle click. This is incredibly useful for web browsers.
  • C button as right click.
  • Fire button (under the flip cover) as Alt+F4
  • Mode selector as scroll up/down/neutral.

There’s a heap more stuff I want to add to it later, JoyToKey seems to have a bunch of other excellent functionality too.

I am tempted to explore ergonomic mice or trackballs but some seem to require the same grips that would cause pain in my hand (it’s not usually my horizontal wrist causing problems) and I wanted to avoid just buying new equipment without testing it first.

Blender With X52

As a final note, after spending well over four months in total building support for the X52 HOTAS first as a mod and then compiling support directly into Blender and slowly building out the featureset, I opened up Blender with JoTo2Key active and it just… Did everything the way I expected.

Which I guess once again proves my definition:

developer (noun): A person who will spend months building something themselves with less features and more bugs rather than pay for something that already does what they want.