1. 37


I will soon undergo surgery for my dominant arm (shoulder), which means I won’t be able to code properly for a couple of weeks. I have already tried programming with only my left hand. While possible, it is truly painful, as I work at 20-30% efficiency, depending on what I do.

I was wondering whether there are any good free and open source tools that assist programming with hand impairments. I know there is custom hardware for such cases, but that’s not quite worth for a temporary impairment. I already have the tap strap, as I’ve had multiple surgeries and injuries in the past (you could say I am a regular), but it is not very pleasant to work with, especially since I can’t move my fingers in a coordinated enough manner.

The main issue with one is really that most IDE shortcuts aren’t very usable and constantly switching between mouse and keyboard is also quite annoying, making navigation even slower. And I assume it would be useful to have certain snippets that one often writes on some kind of quick shortcut.

I assume in the end a mix of voice input and some kind of IDE plugin or global keyboard remapping would be a good solution? It’s probably hard to find something that is truly cross platform though, as I use both linux and windows as daily drivers.

    1. 19

      Sounds like an opportunity to take a break from it all. You have the perfect excuse both to yourself and to others.

    2. 12

      I think this will be your best bet: https://serenade.ai/

      1. 8

        I wish their website was clearer that it is no longer in active development. Apparently they ran out of funding and open sourced it, which is rad, but they haven’t merged any PRs in a while, which is less rad.

      2. 1

        This one looks interesting, I’ll try it out :)

    3. 6

      I used a single-handed Dvorak layout for some months after my elbow surgeries. It wasn’t too bad, but probably not worth the effort in your case if you’ll recover in a couple of weeks.

      1. 1

        Yea, I won’t be able to learn a new layout fast enough ^^

        1. 7

          You will when it is your only option :). I bought and adjusted to a single handed Maltron after getting elbow surgery and being laid up for some time. It was great! A year later I bought and adjusted to another single handed Maltron when I got my other elbow operated on.

          The best option, though, if your surgeries are related to RSI – is to TAKE A BREAK.

        2. 3

          Another thing I remember from those days is using the Acme editor almost exclusively, the amount of things you can get done via mouse in Acme is amazing.

    4. 5

      I’ve had something similar happen twice in my life. When I was 17 (a few weeks before my A-level exams), I broke my right wrist and had it in a cast for 6 weeks. More recently (February), I broke my right shoulder and had my arm in a sling for a few weeks and then weak (and still not fully recovered).

      The first time, I discovered that I learned to type with one hand pretty quickly. The second time I found that this came back (I probably never lost it entirely, I can’t use split keyboards because I use my left hand for more than half of the keyboard).

      This time, I moved my mouse to the left and typed one handed and didn’t find it significantly impacted my productivity when programming (I spend more time thinking than typing anyway, so typing isn’t the bottleneck). If anything, I found myself spending more time programming because doing anything else was painful and frustrating. Vim seems to work well with one hand (modal editors, in general, don’t require complex chords) and the common UNIX chords (^C, ^Z, and so on) are all close to the bottom-left of the keyboard and so easy to hit with just the left hand.

    5. 4

      There is this talk “Perl Out Loud” by Emily Shea describing her set-up after having RSI and using voice control to program in Perl : https://www.youtube.com/watch?v=Mz3JeYfBTcY&t=6s&pp=ygUbcGVybCBjb25mIHZvaWNlIHByb2dyYW1taW5n

      1. 1

        I saw her at Deconstruct 2019, one of the highlights of the conference https://www.deconstructconf.com/2019/emily-shea-voice-driven-development

    6. 3

      This may be too much for your situation, but there’s Talon (https://talonvoice.com/) for using your voice to type, program, etc. It’s not open source, and it’s got a pretty steep learning curve.

      I haven’t used it other than just trying it out for a bit.

      I had an injury a while back, so I know your situation sucks. For me, I took sick leave and a holiday, and had a good physiotherapist.

      Hang in there!

      1. 2

        I really liked this article by Josh. W. Comeau about Talon :)

      2. 1

        Ah right, I’ve seen that in the past, but wasn’t able to find it again. Thanks anyway, even if it doesn’t fit all criteria :D

        1. 3

          I learned about Talon from this blog post: https://xeiaso.net/blog/voice-control-talon Was quite impressed and tried it out back then.

    7. 3

      I have a friend who uses a heavily customized version of Dragon to program with. They had to spend several months just getting it remotely usable, and their setup wouldn’t be usable to anyone else. Also Dragon only runs on Windows, which is not the OS they would otherwise use, but it was the only voice input software they found remotely viable for programming.

      Hope that helps. Wish I had better news.

    8. 2

      Try modal editing to reduce the need to move hand to mouse. Maybe try also something like roller mouse, trackball, or keyboard with track point. Everything to reduce the horizontal movements of the hand.

      1. 1

        roller mouse looks interesting. But I guess its basically just a weird external touchpad?

        Maybe also a nice excuse to try out something like the https://gaming.tobii.com/product/eye-tracker-5/

        I remember seeing there was an open source linux driver for either this one or an older version.

    9. 2

      Try One-Handed Dvorak keyboard layout. (There is left and right hand version).

    10. 2

      Talon Voice supports voice control and eye control but the learning curve is much longer than two weeks. I suggest you relax, rest, talk to people and go on walks.

    11. 2

      A shoulder dislocation from an ice skating accident took out my shoulder about 13 years ago. It sucked. I couldn’t use the arm for about a week, then could relatively safely take it out of the sling for an hour or two at a time for some computing. A couple of years later, an office accident sealed the deal with a labral tear on that same shoulder, and I had to have surgery. I was in a sling for about four weeks before the surgery, and I could take it out of the sling for about 30 minutes several times per day. After surgery, I was on PTO for a month. It was about two weeks before I could take it out of the sling again to compute a bit. I recognize some privilege in having a job that afforded me time away without worrying about work obligations.

      I didn’t have the variety of voice-to-text software available to me back then. Dragon was always mediocre to me, having used it some in the mid-2000s. Nowadays, I use Google’s GBoard Speech-to-Text constantly. I obviously cannot program with it but it suits nearly 100% of my non-programming needs.

      If you’re going to be unable to take off the sling/restraint for a couple of weeks, and if you can avoid typing, do so. You’ll heal better, and, if you’re anything like me, you could probably use a break. Use the time to consume instead of producing a bit. Watch some conference videos, tutorials, etc. that don’t require much typing. Watch some computer history movies.

      1. 2

        After the dislocation i only wore the sling for like 6 days. Also had the labral tear, so its gonna be mostly the same for me with the sling afterwards.

        I think I already consume too much. I spend too much time on meaningless things. Whenever I am not working, I feel like I should at least code for private projects. I guess I am not all too content with how i spend my time.

    12. 2

      Two cool projects, I would try in that situation:

    13. 1

      I broke my right wrist and had to wear a full wrist cast for a couple of months. I’m not sure how much movement your arm will have but I didn’t really change much - I just pecked at the keyboard with my broken hand every once in a while.

      I was a little slow at typing but that’s never felt like a bottleneck to me.

      1. 2

        I won’t be able to reach the keyboard with my right hand for at least 2 weeks I assume

        1. 2

          Oof, that sucks. If it’s less than a month it might not be worth messing with keyboard layouts though. Hope you heal up soon!

        2. 1

          So you are able to use your right hand then? Have you considered using one of those miniature handheld Bluetooth keyboards? I had shoulder surgery too one time, and that’s what I used.

          1. 1

            Uh. Not sure if wearing something on the hand is a good idea, as its exrra weight.

            1. 1

              I’m not talking about something to wear, I mean something like this. When I had my arm in the special sling, I could slide my hand out of the holder and use the keyboard at my side. I don’t know if it works for your situation though.

    14. 1