Elgato Stream Deck XL

My Stream Deck arrived today. I’m looking forward to seeing what I can do with it (and Keyboard Maestro). This thread is brilliant - please keep the use cases coming!

1 Like

I got this to work with KM the other day, though it probably isn’t as robust as TJ’s approach.

If you are using the “trigger with USB device key” trigger, and the built-in Keyboard Maestro actions, Keyboard Maestro itself offers a “Change Stream Deck Button Icon” action. You target the row and column ID of the stream deck button you want to change.

I used that in combination with a Menu Select button to create a mute/unmute button for Zoom on my Stream Deck. It shows whether I’m currently muted and tapping it toggles mute status.

Ryan, i’m guessing this macro isn’t actually checking mute status. This is a great idea if I had the discipline to only use the stream deck button to mute and unmute, but I am still clicking the icon in the zoom UI. I wonder if there’s anyway to check zoom audio status via AppleScript. I’m guessing not!

You got it. Yes, I occasionally clicked the Zoom UI and mess up the status, too. Over time I got into the new habit though.

I can think of a few ways to make it more robust. A helper macro that regularly checks the menu status (Menu item with "Unmute" is enabled or similar) and switches the icon appropriately would work, for instance.

Some random thoughts after having a Stream Deck Mini now for a few weeks.

It’s very useful for the purpose I bought it for, i.e. controlling my network media player (Logitech Media Server a.k.a. Squeezebox). Quite often I want to stop the music when I get a call or want to quickly see the name of the track that’s playing. Finding the right browser window, even if it’s a pinned one, and clicking the button in the sweb interface is a bit tedious. So my SD Mini now functions as a remote control: Play/Pause. forward, rewind, song info and switching of the (software) player.

But for other things I haven’t quite found a use for it. Since I’m using Alfred opening applications or starting workflows is only a few keystrokes away. There’s very little - that I can think of right now :wink: - that I want to be available on a button on a separate device that’s sitting under my monitor. But maybe someone here wants to share actions that are really useful for them.

Finally, Stream Deck with Hammerspoon works really great. It gives a lot of flexibility.


As Promised…

I have finally had a chance to “renovate” my setup and make it suitable for public consumption.

So, if you’ve ever wanted to have your next meeting info on your Stream Deck, checkout my new post over at GitHub:

Here’s a little example screenshot. The yellow box shows my next meeting information:

But, to me, the cool part is what happens 30, 15, 10, and 5 minutes before my next meeting:


The changing colors help me spot when a meeting is come up, just in case I have forgotten to set a reminder. (You can choose your own colors if you want different ones.)

My favorite part is that when there are no more meetings left for the day, I get to see Fantastipal smiling at me from that same spot on my Stream Deck:


He’s clearly just as happy as I am when there are no more meetings left!

Checkout the Github repo or download the .zip file and you’ll get all of the files needed to get setup:

  • 8 Keyboard Maestro macros
  • ~120 lines of shell script (plus another 170 lines of comments)
  • a version of icalBuddy that works with Keyboard Maestro
  • a detailed explanation of how it all works
  • instructions on how to set it up on your Mac

I hope this helps someone else. Even if you don’t use this exact setup, maybe it will show you something else you’d like to try.



This is awesome!

Just a couple of points I picked up as I worked through your readme, that might get others as well:

  • You will need to go to Security Preferences and allow icalbuddy to run.
  • There is your third file seconds2readable.sh that you don’t mention copying - but it needs to go over as well. I assume it also needs to be chmod 755.
  • I have a smaller Stream Deck, so while I found and replaced all the references within Keyboard Maestro, you also need to find and replace the references to the button in the km-icalbuddy.sh file.
  • Is there a reason your Keyboard Maestro group is named Steam Deck rather than Stream Deck?
  • I use BusyCal so had to change the references in KM away from Fantastical.
  • It seems that perhaps BusyCal doesn’t communicate directly with Apple’s Calendar service, because I had to launch Calendar.app before icalbuddy would see my events.

@tjluoma - this is an amazing piece of work. I have pointed out a few gotcha’s, but there is no way I could have built this.

Thank you for sharing it!

1 Like

Thank you! These are all good points. Always good to have the perspective of someone who has walked through the instructions. It’s hard for me to put myself in that position entirely, so this is very helpful. Will update the README accordingly.

Because I am a terrible typist and never noticed the typo until you mentioned it.

Will fix that too!

I think that BusyCal has a sync schedule, and does not seem to update as often as Fantastical does. But there might be a way to “force” it to sync. I haven’t use BusyCal for awhile so I don’t remember exactly.

1 Like

This is fantastic, thanks TJ!

1 Like

You could probably do something with IFTTT, via Integromat. If it was less than 1000 interactions a month it would be free.

Yup. Per your suggestion, I created a macro group that is only active when the zoom app is running, and then a macro that automatically repeats every 30 seconds. It starts with an AppleScript:

tell application "System Events"
	tell application process "zoom.us"
		if menu item "Unmute Audio" of menu "Meeting" of menu bar 1 exists then
			set isMuted to "true"
			set isMuted to "false"
		end if
	end tell
end tell

return isMuted

I’m passing that variable back to KM, and then doing a conditional set of Streamdeck button actions:

On the actual mute/unmute toggle macro, I am simulating keystroke Shift Command A, and then executing the above macro, so the icon immediately changes (not waiting the 30 seconds).

Edit: Per TJ’s suggestion, here’s the link to this macro in my dropbox account:


If you have a Dropbox account, you could export the macro to Dropbox and then post the shared Dropbox link here.

That’s a great point. I’ve been phasing out Dropbox since they put a 3 device cap on the free tier. (BTW, I would have happily paid for DB if there was a more reasonable $5 a month plan.) But I do have it on my laptop, I’ll have to do that!

I’ve installed the iOS version of SD on my phone to see how it will work for me. Like @vco1, I struggle to see how this is a lot different than just using Alfred to open apps (hands stay on the keyboard), or using keyboard shortcuts to launch KM macros. The one thing I find useful is that Streamdeck gives me visual cues for my KM macros, so I don’t find myself struggling to remember which keyboard shortcut to use.

I don’t code, so writing my own scripts to customize things isn’t an option for me. Can someone explain what I’m missing? (I’m not being sarcastic or negative – I really think I’m probably missing something.)

Before I got the Stream Deck, my imagination for macros and other automation-y custom tools was pretty limited. I was restricted to what I could see myself doing in Alfred or with pretzel-shaped keyboard shortcuts.

For example, as I wrote about recently on the Automators forum, it has been really nice to set up temporary and context-based automations—something I would never do with keyboard shortcuts because it seemed too finicky to try to keep a special set of keypress combinations conflict-free.

Alfred is probably a closer experience, but again, your working memory is only so limited. Plus, your brain really likes context and geography. Laying out visual cues in space has helped me actually use all these ideas a lot more, and to think of new ones more often, too.


Who said anything about “need”? :shushing_face:


I bought Stream Deck but didn’t find it useful until a few months in when I use it solely to help me move and resize windows to the corners of my monitor. One button to move it to the left, one button to center it and the other to move it and maximize to the right side. Now, I don’t know what I’d do without Stream Deck. Memorizing hotkey sounds so barbaric.

Get it. You might not find a use for it initially but it will be indispensable once you found your niche.


Well. When you put it that way, I have saved a lot of money on gasoline the past few weeks. :wink:


So say we all.  


I’ve been using a Stream Deck mostly to fire Keyboard Maestro macros, and that’s been fantastic. And then last week I used it to trigger scenes in OBS Studio (the Stream Deck has built in actions for OBS) for a live stream and that was absolutely magical. I was able to keep my eyes on the camera, and switch scenes just by feel. Before last week, I saw all the live stream offerings in the Stream Deck sidebar, and scoffed at them as being for YouTubers. Now I get it.