In this article I’m going to introduce you to a powerful program called AutoHotKey. Please take a moment and go to their site at http://www.autohotkey.com/ and view its capabilities. We’re going to focus on the simpler, but very powerful things it can do. But first, proper introductions are in order.
My journey to AutoHotKey started with a simple desire. “I wish I could remap the keyboard the way I want it to be.” In my case I thought it would be neat to make F3 and F4 the same as Ctrl+C and Ctrl+V, copy and paste. I ended up not using this, but it opened me up to a program that I don’t want to be without. The possibilities are incredible.
If you checked out the site, you see this:
- Expand abbreviations as you type them. For example, typing “btw” can automatically produce “by the way”.
- Remap keys and buttons on your keyboard, joystick, and mouse.
Those are the two things I want to focus on and share with you. At my day job, I have to do a whole lot of typing every day. Much of it is repetitive. I had originally planned on using a text file that it would be easy to copy and paste common elements from, but AutoHotKey (also known as AHK) presented a solution to my needs that was beyond what I expected.
Doing tech support via email, I write the same things over and over again. With AutoHotKey, I no longer have to type out each individual sentence. I use its extended abbreviations to replace small keywords like “hello1” with “Hello, I hope you are well today. I’ll be glad to assist you with your problem”. Notice I put a 1 after hello, so that I don’t get that whole sentence every time I write “hello”. In AutoHotKey, that is simply expressed as
hello1::Hello, I hope you are well today. I’ll be glad to assist you with your problem.
See how easy that was? I have over a dozen of them that I use. I also use it to correct ‘teh’ with ‘the’ and others of my own common typos. But, there’s another use that is wonderful. Do you have something that you have to copy/paste a lot like I did? Rather than copy/pasting it, create a replacement for it. For example, in my job I use shell scripts that aren’t necessarily on the server I’m using. I don’t want to have to refer to documentation to locate the URL, then download it, etc. Instead, for the most common ones, I type something like “fixmystuff1” and there typed in my terminal is “curl -s http://url.to.script/scriptname.sh | sh” and I am off to the races. I no have to remember or go find the URL or the script name. I just need to remember my ‘fixmystuff1’ keyword and AHK does the rest.
The more typing and mousing it can save me in a day, the better. I have a bad shoulder that is made worse the more I type and mostly the more I use the mouse. Saving me from the whole highlight/copy/paste routine is very helpful and my shoulder loves it.
But now lets get into the main reason I decided to write this article.
Assisting the Elderly and Disabled using AutoHotKey
Now, I’m not going to lie to you. I don’t expect anything I’ve written thus far to help the elderly. I suppose some of it could apply if circumstances are similar, but there’s something I’ve been able to do that surpasses it. Allow me to explain.
I have worked with the elderly for many years doing computer work. They have unique needs and fulfilling them can be a challenge. The one that AutoHotKey can help with is input. Using the mouse can be very difficult for those who are very old, and yet their computer is a much needed lifeline to their family and often the outside world in general.
More than once I have seen folks who, due to various circumstances, unable to differentiate between clicking the left mouse button and the right. One gentleman in his mid 90’s was plagued with clicking both buttons at once. My own grandfather (and the inspiration for this article) has trouble with clicking the correct button because he can’t feel his hands very much. Another issue is that of moving the mouse while clicking. It can be challenging for those with limited dexterity to hold the mouse still while they click. One of my clients has severe rheumatoid arthritis, and must use two hands to use the mouse, hold it still and click.
Would you believe that AutoHotKey can solve these usability problems? It can. Would you believe me when I told you it can be done in just a few lines of AutoHotKey code and is 100% customizable for each individual case? It’s true.
In my grandfathers case, he asked for help with getting his mouse to only right click when he wanted to right click. The solution was to make both mouse buttons be the same as a left button click. But then how could he right click? The solution was equally simple: Move the right button to the keyboard. We found a key he never uses (the + key on the number pad) and mapped it there. The AutoHotKey script was this:
Rbutton::LButton
NumPadAdd::Rbutton
That’s it. If I wanted to use a different key for the Rbutton (right button) then I could refer to Keylist and modify the script accordingly. This was a huge leap forward for my grandfather as it will allow him to be more productive. He doesn’t have a lot of energy to be at the computer as much as he used to, so every little bit of assistance really makes a difference.
In the case of the woman with rheumatoid arthritis, I still need to set it up for her, but I’m going to use AutoHotKey to map her mouse buttons to the keyboard so she doesn’t have to hold the mouse still to click. To use the Number Pad + as left and – as right click:
NumPadAdd::Lbutton
NumPadSub::Rbutton
That’s really it. If I needed to disable the mouse buttons altogether, that would not be difficult either. Now she’ll just move the cursor where she wants, press + once or twice (to double click) and she can use one hand rather than constantly missing the target with two.
As you can see AutoHotKey offers the flexibility to make a computer do what you need it to do. Its a great tool for power users, but its also simple enough that anyone can benefit from it. I hope you’ve found this useful. If you have any suggestions or questions, please feel free to use the comments below.