Due to chronic RSI, I'm limited in how much I can use a mouse and keyboard. A few accessibility tools have allowed me to continue my programming studies.
The backbone of my assisted computer input (and the topic of this post) is the voice command/dictation software Talon Voice. Talon builds out functionality with user scripts in Talon's command scripting language and python. Practically speaking, you can just clone the community maintained starter repo to get started.
What Talon Looks Like
It's tricky to pick the perfect demonstration of Talon. Personalization is a key feature and everyone's setup is a little different. Some of the best short and sweet video demonstrations are primarily demonstrations of the (amazing, game-changing) auxiliary tool Cursorless. There are some great conference talks about Talon that are years old and therefore partly outdated. I recommend approaching demonstrations with the aim to get an idea of the possibilities. If you choose to dive in, refer to current documentation.
I am not an authority on any of this. I'm just a random programming student with a rudimentary proficiency in these tools, but I wouldn't be able to pursue programming without the tools, their developers and communities, and generous users who have shared their experiences.
Here are some demonstrations:
Josh W Comeau's great post on hands free coding includes some demos and explanations of Talon basics. It is a few years old, written I believe before Cursorless existed.
Short and sweet 1 minute demo of writing some Java with Talon (YouTube).
Here's a 2 minute demo (YouTube) from the creator of Cursorless, using Talon with Cursorless.
Emily Shea's 40 minute conference talk (YouTube) from September 2019 shares her experience transitioning to code by voice using Talon. Includes a demo, discussion of voice coding pros and cons, tips, and what things are and aren't actually problematic. Keep in mind it's over 4 years old now. Some of the technical specifics are outdated, but it's a helpful glimpse into a development career enabled by voice coding.
On that last note, I just want to underscore that there are professional developers whose careers would have ended without these tools. Dictation is a viable alternative to mouse and keyboard. Voice controlled computing has grown tremendously in the last decade, and I expect it will only improve.
Want to give it a go? See Getting Started.
The starter repo is expansive and regularly updated. I continue to discover useful commands I didn't realize exist. Get to know the community repo and tweak things to your liking.
Most of the modifications I've made have been keyword changes or simple commands to insert specific text. I haven't gotten that into the weeds but you certainly could if you want. Here's a typical tweak commit I made to my fork. You can get a lot of mileage out of simple tweaks that don't require understanding more complex concepts.
Expect some feelings of overwhelm. These are powerful tools and there's a lot to figure out. That said, I'll emphasize again you can get a lot of bang for your buck by getting comfortable with the basics and finding personalized solutions to your biggest friction points.
The Talon Slack (linked on the website) is a great place to get help if you are stuck. Standard advice on asking for help applies: do your best to figure things out by yourself first (read the manual!) and explain what you have tried.
Feel free to reach out to me with questions.