Tuesday, April 13, 2021

Elgato Stream Deck: Useful for Programmers?

I thought I'd make a quick blog post about using a Stream Deck as a programmer, for anybody who's on the fence about picking one up.

What The Hell Is A Stream Deck?

Regardless of what it's meant to be (some kind of DJ Deck for streamers? idk I've never streamed), the Stream Deck is a small programmable keyboard with OLED screens for each button. Buttons can be configured to display arbitrary content (including animated images), perform arbitary actions on an attached PC (including reconfiguring the Stream Deck itself, so for example a button can display a set of sub buttons), or respond to arbitary events on an attached PC (for example, opening a program can switch to a set of sub buttons).

So, is a Stream Deck useful for programmers? Absolutely! But figuring out how takes a little bit of time. Here are my own use cases, hopefully they will inspire others:

1. Binders Full Of Shortcuts

Sure, you can move your mouse to navigate folders of bookmarks to frequently used shortcuts, but it's tedious hovering the mouse in exactly the right place and clicking. Being able to fat-finger punch a nice, binary on/off button is much quicker.

With the Stream Deck, I can configure buttons that open sub-screens of other buttons, and categorise all my front-end and back-end systems.

2. Handy Apps

Sometimes you want a little app and your main screen is already full of Web browsers, IDE windows and debugging consoles. For me, I often need a quick calculator.

With the Stream Deck, I can write a simple JavaScript app that turns my buttons into a calculator. This is better than a separate, physical desk calculator because a) it takes up no space when not using it; b) I can cut and paste values to/from my PC.

Another handy app lets you turn every button into a separate copy/paste clipboard, so you can (finally!) have multiple cut and paste buffers.

3. Mini Status Windows

Sometimes I want to check on an external system just at a glance, without having to open a Web browser.

With the Stream Deck, I can write a JavaScript app to poll a web service and animate a button. For example, I can show my Jenkins build status and, if one's in progress, how long it's got to go.

4. Shortcuts For The Forgetful

I use a lot of different programs, and haven't committed to memory the keyboard shortcuts for all of them. For example, I will occasionally fire up After Effects. Whenever I do, I have to Google how to trim the video composition, because I can never press the right keyboard key or find the damn option in the menus.

With the Stream Deck, I can configure it to display a set of After Effects-specific buttons whenever After Effects has the focus. And these buttons can be named after what they actually do (for example, 'In Point' presses the 'B' key). It's like a modern-day version of one of these bad boys:

5. A Second Screen

Some apps, like Zoom when sharing somebody else's screen, need all the screen space they can get. They fill the display and have no visible toolbars.

With the Stream Deck, I can configure it to have icons that don't fit on my primary display, whenever that app has focus. For example, to mute my microphone.


I've had the Stream Deck about a month. I bought the XL version (has more keys) and although I wasn't sure if it was overkill, I'm gradually filling up the buttons. Plus I have about 10 sub-screens of buttons. I've found it an immensely useful little gadget. The ability to quickly check on things, and quickly invoke actions without using the mouse, is great for programmers!