Coding without typing (part 2)
- By
- Zachary Watkins
- Published on
- ; updated on
- .
- Published in
- development,
- accessibility,
- and productivity.
In February I found out my hands are wearing down. I searched for ways to keep up my productivity while typing less. I'll tell you about the tools and workflow I've adopted that has helped relieve some work and pain from my hands.
Nothing in this article is medical advice. I am not a medical professional. If you're experiencing pain or discomfort, please consult a medical professional.
Daily Routine
Most mornings, I take a 15 minute walk while swinging my arms and opening and closing my hands. This relieves a lot of the stiffness and pain in my hands for most of the work day. I take Tylenol, fish oil, turmeric, and chondroitin supplements. My arthritis specialist said I must monitor my blood pressure and have blood tests done every 6 months to check whether the Tylenol is causing organ damage.
Nothing in this article is medical advice. I am not a medical professional. If you're experiencing pain or discomfort, please consult a medical professional.
Software
I use Visual Studio Code with GitHub Copilot, and I use workspace configuration features to start up a project's local dev environment when I open the workspace. I also use extensions to automate as much typing as I can, like code formatting and snippets. To save time I've learned some of the VSCode keyboard shortcuts that let me navigate a project's files and manipulate text.
I use Talon Voice as my voice recognition software. It's popular among programmers who use assistive technology for computer use. One nice feature is that I have my own configuration for its commands and settings which I keep in GitHub and sync between computers. I also use the Cursorless extension for Talon Voice and Visual Studio Code which gives me additional voice commands to interact with the IDE.
My most used voice commands are:
switch
to switch between applications.cut
,copy
, andpaste
to cut, copy, and paste text.dictation mode
to dictate every word as I speak it, with exceptions for certain punctuation words which are interpreted as commands.command mode
to issue commands to the computer. I can dictate text by saying a command word first likesentence
orsay
without switching modes.- I make a popping noise to trigger the eye tracking camera to move the mouse cursor based on where my eye is looking.
- I say
touch
,duke
, orrighty
to left click, double click, or right click without using the mouse.
I keep my Talon commands in a GitHub repository here: https://github.com/ZachWatkins/user-talon
Hardware
I use a Macbook Pro with a wireless split keyboard I built from a kit. I chose Kailh Choc Pink linear mechanical switches with low profiles for the lightest pressure and range of movement needed to press the keys. I also have 3 foot pedals at work that replace the tab, enter, and page down keys.
For microphones, it's important to have good quality when using voice command and dictation software. This saves time and makes it easier for the software to understand what you want it to do. A budget option I use at the office is a $16 BOYA-II lapel microphone on an ear hook for better accuracy than it would have clipped to my shirt. At home I use a Blue Yeti Nano microphone and I haven't noticed a difference yet between the two as far as how well Talon Voice understands what I'm saying.
I use a Logitech Lift mouse at the office and an eye tracking camera as my mouse at home. The eye tracking camera wasn't reliable enough for full time use at first but I've had good experience lately so I'll start using it there too. In my browser I have a bookmark toolbar with all of the links I visit for work so I don't have to rely on a keyboard for those.
Practices
I confirm the details of work before starting if I think a request overlooked something or could be accomplished more easily and quickly if they're happy with a certain tradeoff we could make. I also use things like screenshots, diagrams, demos, and staging environments to make it easier to build shared understanding with my clients and coworkers. I try my best to only use my keyboard to write code and use voice software for everything else, but it's a practice that I'm still developing. I take frequent breaks if I need to type a lot for a particular task.