This is the third in the series of tools and technologies that I use to deal with the loss of functionality in my hands and arms. Check out this article for the lead up to this series.
Setting the stage
The issue I’m dealing with involves muscle atrophy in my hands and my arms. As a result, I’ve lost a lot of strength in my hands and arms including my fingers. Some of the unintended or unplanned impacts included the inability to successfully type at times or diminished amount of time I can spend typing. I had previously used a Logitech split keyboard which I loved. I considered myself a good typist and used to be able to type and a code very effectively. With the onset of the atrophy, I encountered situations where my hands would stop working. I would be typing and then I couldn’t type anymore. Some of it is related to physical exhaustion or fatigue from the effort required given my condition. I also experience a situation where my fingers curl making it nearly impossible type on a keyboard. The first time this happened was the first time I was concerned about my career. As I noted in a previous article, I am using voice to text for the bulk of my typing including this blog post. However, voice to text does not work that great for coding and frankly I have issues with any multi-key functions that require my hand to stretch across the keyboard.
Discovering a solution
I was watching a show with my wife and daughter when an ad came up that showed the Quick Keys solution from Xencelabs. This was part of a video editing package including a tablet and pens. I was intrigued because I had not seen a solution that allowed me to program keys with text. It also had a wheel on it that could be used for other tasks. I went and looked this up and I was able to buy just a Quick Keys device.
And I started doing some more research and looking into what this tool did, I realized that the space I needed to look more closely at was related to video editing and streaming. They have a series of tools which support macro keys that they use to optimize applications, shortcut keys, and game actions. The variety of these tools is substantial. Shortly thereafter, while at church working with the tech team, I saw a Stream Deck. This was even cooler because each of the buttons have a programmable LCD screen behind it. Now I knew what to look for and started determining what I wanted to do as I move forward.
Xencelabs Quick Keys
I purchased the Xencelabs Quick Keys device first. It has 40 programmable functions and a physical dial that I was able to program.
I programmed some basic functionality that I really liked to have available with the ease in of a pushing a button close to me such as delete, backspace, a shortcut for speech to text, undo, redo, cut, @, and ctrl. This is my generic set of functions that in addition to the copy, paste, double click, and dictation shortcuts I had on my mouse applied to most of the applications that I worked in. I next set up a screen that you can go to by pushing a function button on the device to support specific functionality within Microsoft Word. The big one that I needed to have in there was a shortcut to change case as Microsoft dictation does not have cap capability at this time. I also added home and end along with a couple of other functions to be helpful.
The Quick Keys device has five customizable screens of eight buttons each. So, I used the first one for my generic set as noted above. My second one was for Word. I added a third screen that contained the web addresses of common locations I needed to go to such as the Azure portal and my blog. This allowed me to open a browser, push a button, and go to that site easily. What I quickly discovered was that I was going to need more functionality for this to be effective in the long term. Before I go to the next solution a couple other things I did on this device included using the physical wheel for moving the cursor and for volume control as it too had five settings.
Elgato Stream Deck
Because I had a device already, I wanted to research the Stream Deck before purchasing it. One thing I quickly noticed is that it is a favorite tool among streamers and has not had a significant upgrade because it just works. The device has been a solid device, easily programmable and customizable in a multitude of environment. If you go to YouTube, you will find a number of streamers, gamers, and content creators walking through demos of how to setup and use the Stream Deck. It has a lot of built-in functionality for variety of editing and streaming tools.
To start with, I was unsure if this would be a good solution for me as most of what I needed was not what they were using it for. So, I dug in. What I discovered was that the deck was highly programmable with effectively an unlimited number of options that you could program. I thought I’d give it a try.
I purchased the 15 key Stream Deck pictured here:
Once I got the Stream Deck and uploaded the software to program it, I quickly realize there are number of addons for the Stream Deck to support programming and Windows functionality. These are addons that give you shortcuts to things like locking your computer something that Quick Keys could not do. I added these in as well as some icon sets because icons are cool. Once I had this in place, I programmed my initial set of functionality to enhance what I was doing with Quick Keys. Because I already had Quick Keys, those two screens provided me the generic starting point for most functionality I would need outside a specific programs like Word. This also allows me to keep Quick Keys on the generic set of common functions and use Stream Deck to be more reactive to programs and needs.
I have taken the Stream Deck and programmed it for a couple of specific use cases I really am happy with. Let’s start with the first one which is Word. Stream Deck can detect the application that you’re in and set the keys up with specific profiles that you create. In my case whenever I am in Microsoft Word, it has the editing keys and other functionality that make working with documents easier on the Stream Deck. Because I still have basic keys sitting on the Quick Keys solution I’m able to have a combined set of 23 function keys readily available without switching screens.
I have also set up a similar set of functionality when working with Microsoft Outlook. While I’m still working through which functions make the most sense for me to work with in each scenario and if I need more than one screen, the amount of functionality available at my fingertips as a result of programming these two devices is substantial. It makes it easier for me to work through a variety of commands without struggling with the keyboard. I am using the Word functionality as I edit this blog post after getting the content created via voice to text.
Optimizing functions for code
Now for the more interesting use case. It’s part of my job occasionally I still need to do some coding. In this case, I was working with T-SQL code. I needed to create some tables, add some keys, and work with data. Coding is one of the most typing intensive activities I do where voice to text does not help me. So, how can Stream Deck help me out? It turns out you can actually send keystrokes through both devices. However, the capacity of Stream Deck is substantially larger than that which is available in Quick Keys (500 versus 24). More importantly with the unlimited number of keys that can be programmed combined with folders to allow you to group together commands in Stream Deck, it was a natural choice. I created a folder on my screen for the work called SQL. In there I created a folder for CREATE commands and will likely add more as they go along. In the first folder of SQL, I have commands such as SELECT, FROM, WHERE, INNER JOIN, and similar common commands used when working with data in SQL. While it may seem at first glance these are short commands, I must call out that the goal for me is to reduce the amount of typing I do as much as possible. When I added the CREATE commands, I had the full syntax for creating a table where I just had to fill in the name and field list. I also added a folder that gave me the data types most used so I wouldn’t have to type those either. I also had the syntax for primary and foreign keys and add indexes in the future. My point here is I was able to reduce the amount of typing required by 30 to 50% depending on what I was doing. This reduces strain on my hands and allowed me to be more productive for a longer period of time.
Here are some screenshots from the Stream Deck programming surface to show you how I set it up for SQL so far.
I really enjoy a Stream Deck because some of it is just fun. Part of the fun of this is finding icons that you can use that include gifs on the screen. I’m completely planning to continue to extend what I’m doing with my Stream Deck.
Wrapping it up
Finding these tools have been extremely important to maintaining productivity in my work. What I’m learning so far is the tools that I’m discovering are beneficial for me but also for others who might want to build shortcuts out for things they can’t remember or to make working generally easier. These tools are not without cost, but the increased productivity is seriously worth it. And frankly it makes my setup at work look really cool. Hopefully you find this information helpful, or it could be helpful to someone else. Feel free to pass it on.