Six Colors
Six Colors

by Jason Snell & Dan Moren

This Week's Sponsor

Kolide can help you nail third-party audits and internal compliance goals with endpoint security for your entire fleet. Learn more here. 

By Jason Snell

A year with the Elgato Stream Deck

Stream Deck and surprise guest

I’ve been using an Elgato Stream Deck for more than a year now. It’s a USB peripheral that offers a grid of buttons with a display underneath, so each button can be labeled with an icon and/or text that you specify. The goal of the Stream Deck is to make esoteric actions on your computer easier by letting you place them on dedicated keys with custom artwork, so you’ll always know to press the blue button instead of typing Command-Shift-Option-3.

I was initially quite skeptical about the Stream Deck. I’ve got a perfectly nice keyboard, full of keys on which to map commands. Why not just memorize those keyboard shortcuts?

And yet, after using a Stream Deck Mini that I bought at Target on a whim for a few months, I decided to upgrade to the full-sized Stream Deck. It turns out that, yes, the concept of wiring up commands I could never recall from the keyboard shortcuts, of placing front and center all the macros and shortcuts and scripts I spent hours building and then promptly forgot existed, made it all worthwhile. I had gone from a skeptic to a convert, and it only took a few months—and a bunch of lessons learned.

Ergonomics matter

It may not look like it, but the Stream Deck is essentially a tiny, weird keyboard. And it shares a few essential characteristics with a keyboard: ergonomics are vitally important, and everyone’s ergonomics will be different. I have a lot of friends who place their Stream Decks on their desks, front and center, under their monitor. That would make it easier to see, but I’d need to reach up my keyboard tray to press any of the buttons.

Instead, my Stream Deck lives on my keyboard tray, just to the left of my keyboard. It’s easy to reach with my left hand to press any of the buttons, and it’s a quick glance down. Even better, it makes the Stream Deck feel almost like an extension of my keyboard, eliminating some amount of mental friction when I stop typing and press a button.

Designing interfaces is hard

The Stream Deck doesn’t program itself. You have to place an item on every button and decide what goes where, and if you want to use more than the allotted number of buttons, you’ll need to deal with the added complexity of programming buttons that take you to other profiles (and back).

In some ways, it’s great to be given a blank canvas! You decide what the keys do! You decide what they look like! On the other hand… you have to make all those decisions, and if they don’t work well, you’re the one who needs to fix them.

The Stream Deck companion app is… adequate? It does the job, but that’s all I can really say about it. I wish it was easier to do things like choosing a button color and a simple icon. (The app really should offer all of Apple’s SF Symbols as icon options, but it doesn’t do much on that front.) Instead, I need to turn to an app like Icon Creator, which lets me set a custom color, choose an icon, and even overlay text in a font of my choosing. Text generated in the Stream Deck apps is extremely ugly, with a limited font selection.

If you’re someone who cares even a little bit about how the Stream Deck looks—and you probably should, since the customized buttons are its primary appeal—you will find yourself art-directing buttons and button sets, which is fine if you’re into that sort of thing. You can get things just the way you want them, with some work. But I wish it all was easier and looked better.

Keep it simple

While I was working on my Podcast Notes script, my initial concept was that I’d press a button to kick off the script, then type a little note to myself. It turned out that was a mistake — that it was just too much mental overhead to press a button and type a note while I was also supposedly having a conversation on a podcast. In general, I discovered that workflows that require me to push more than one button or push a button and then type on the keyboard are just too complicated. The entire concept is: push a button, and the magic happens. Any more, and the trick falls apart.

For my Podcast Notes script, I started experimenting with different button placements, eventually settling on a whole strip of buttons that would run the script with pre-filled text. It took a decent amount of time and effort to do that user-interface experimentation. It’s not a task that’s for everyone. But the beauty of it is that I was able to come up with an approach that’s designed just for me and works the way my brain works.

Keeping it simple also means reducing the number of buttons a task needs to use. I’ve ended up building a lot of my automations as a single shortcut that senses the current state of affairs and toggles accordingly, so instead of two or three different buttons that need to be pressed in the right order, I can place the entire task on a single button and know that my automation will intuit what I need and do the right thing.

There are many paths to take

When I started using the Stream Deck I honestly wasn’t sure what I’d put on the buttons, whether it would be keyboard equivalents or scripts or what, exactly. The answer has turned out to be delightfully eclectic.

I use Stream Deck’s “Website” type to do a lot of things that don’t involve opening a Website, like turning HomeKit devices on and off using the HomeControl app, opening remote servers in Terminal, and screen sharing my local server using Screens. All of those apps can be controlled via URL, and all Stream Deck’s Website type does is pass URLs to the system.

But for the most part, I’m automating with Keyboard Maestro or Shortcuts. These automations can be very simple or devilishly complicated, but using the KMLink plug-in makes connecting button presses to Keyboard Maestro easy. And Keyboard Maestro’s own plug-in allows a lot of complexity if you want to go down that route.

Layers and ambient information

A couple of final lessons I’ve learned. While Stream Deck can automatically switch between button sets when you are using a particular app, I’ve yet to find an instance when I want an entirely different set of buttons in an app. Instead, I’ve built a series of button layers based on broader contexts. I’ve got one for podcasting, one for streaming video, and one for use with my Podcast Notes automation. Since I’m constantly switching between apps, this approach just feels better—and when I look at my Stream Deck, I’m never surprised at what I see there.

I’ve also experimented by placing ambient information in the button art itself. For example, I wrote a Keyboard Maestro macro that displays the number of current listeners to a live stream, and I installed TJ Luoma’s amazing calendar macro that displays my meeting status in a Stream Deck button.

But you know what? I prefer to see ambient information like this in my Mac’s menu bar rather than down on the Stream Deck. The only exception I’ve found so far is a macro that writes the number of minutes I’ve been recording a podcast to a clock icon on the same row of buttons as my Podcast Note script. I think it has something to do with grouping that information with buttons that I’m looking at only when I’m recording. Maybe because they go together? Your mileage may vary.

Is it worth it?

Is using something like the Stream Deck worth it? It depends on what you want to do with your Mac, but a lot of people could benefit from getting some of their favorite app shortcuts out of a nested menu or a complicated keyboard shortcut and into a colorful button. Do you find yourself searching for a command via the Help menu because you can never remember where it is? Or having to try three or four different keyboard shortcut combinations before you find the right one? It’s a lot easier to press a button with an icon or text or color swatch and get your desired result.

For years I’ve had a macro that pastes HTML as Markdown inside BBEdit; for the life of me, I could never remember what keyboard shortcut I assigned that command. I didn’t use the command often enough to internalize it, so every time I used it, I had to remember if it was shift-option or command-shift or command-shift-option. Now I have a button with an arrow and the letters “md” on the top level of my Stream Deck, and it’s actually a little exciting when I realize I get to press it.

It’s funny—Apple sort of went down the path of Stream Deck when it came up with the Touch Bar. Unfortunately, the Touch Bar lacks two key features of the Stream Deck: tactile buttons and customizability. If Apple had swapped out some of the function keys on its keyboards with Stream Deck-style keys, it might really have been on to something.

If you appreciate articles like this one, support us by becoming a Six Colors subscriber. Subscribers get access to an exclusive podcast, members-only stories, and a special community.


Search Six Colors