Kitze
K
Hi, I'm Kitze! I made Sizzy, Twizzle, JSUI, OK Google, Lucky Retweet etc. I founded React Academy to teach React & GraphQL around the world. I also make YouTube Videos and stream on Twitch.

The best Stream Deck alternative: Make your own!

Stream Deck

First of all: Stream Deck is frickin' awesome! I bought a Stream Deck even before I started streaming because I couldn't even imagine running a stream without having big physical buttons for easily switching scenes, toggling sources, and controlling audio.

 

I can definitely recommend getting a Stream Deck if you're serious about streaming. My only regret is that I didn't get the XXL variant. Don't even think about getting the Mini. If you don't want to spend a lot of money on a physical Stream Deck, Elgato also has a mobile app, and you can pay a subscription to use your phone as a Stream Deck for controlling your stream.

 

Dual PC Streaming Setup pains

When I was working and streaming from the same computer, I could easily combine the buttons for controlling the stream with some window management buttons, so I could do everything from the Stream Deck.

 

Now, I'm working on my Mac, but I'm streaming using my PC, so the Stream Deck is connected to the PC, which means I cannot use the Stream Deck for controlling macOS.

 

For a second I considered purchasing another Stream Deck but I remembered that somebody has mentioned Touch Portal in the past, and I have an old phone lying around.

 

The Solution

Touch Portal (The macro remote control for PC and Mac) is a free app and it works both on Android and iOS. There is a Pro version which is only $12.99 and it's a one-time payment, as opposed to Elgato's subscription, but the free version can do more than enough.

 

After I installed the macOS client, it was time to set up the mobile app.

 

I wanted to set up Touch Portal on my regular phone or tablet, but it would've been a hassle to constantly connect it, make sure that it's nearby, that it's charged, it might get interrupted by phone calls, messages, etc.

 

So I installed the Android app on my trusty old Nexus 5, which was gathering dust anyway, and the app connected immediately. I set up a few test buttons and the execution of the actions was instant. Literally no difference from the Stream Deck which is plugged via USB. You can even get a vibration when pressing a button to make the effect more realistic.

 

Extra Automation

I just want to mention that you don't need anything else except the Touch Portal desktop and mobile app to get this working. The rest of this article is just a bunch of extra automation that I added to make things easier for myself.

 

I mainly wanted to setup buttons for controlling the app windows with Magnet, however, Touch Portal's functionality for simulating keystrokes didn't work correctly. Maybe I misconfigured something, but I couldn't get the simulated keystrokes to work. Then I remembered that I can don't have to use Touch Portal's functionality, but I can only use it for sending a remote message to macOS.

 

Keyboard Mestro

I set up a macro in Keyboard Maestro with a remote trigger. That means, when the unique URL of this macro is called, Keyboard Maestro is gonna execute the macro, and it will get the %TriggerValue% as the variable.

 

CleanShot 2020-09-05 at 07.40.16.png

 

When pressing a button in the Touch Portal app I execute the "HTTP Get" action (because Open URL would actually open the browser) and at the end of the URL I pass the unique identifier as a parameter.

 

CleanShot 2020-09-05 at 07.44.29.png

 

Keyboard Maestro can then get the value of the variable, so with a switch condition, it decides what to do on the press of each button.

 

Note: when doing the Switch (or If/Else) make sure that you're using "Text" with %TriggerValue% as opposed to a variable with TriggerValue because the second one will always be empty.

 

I use Magnet for managing my windows, so I just mapped the shortcuts to the Touch Portal buttons and now I can easily control my windows with Touch Portal, even when the Stream Deck is connected to the PC.

 

09-05-2020-07.47.12.jpg

 

Tasker Automation

The physical Stream Deck locks and dims the brightness when you lock your computer so I wanted to have a similar experience, so I installed Tasker (the best Android app, ever) and Join on my Nexus 5.

 

I set up the following profiles in Tasker:

 
  • Lock the phone after 10 PM
  • Lock the phone if USB power is disconnected
  • Launch Touch Portal if USB power is connected
  • Lock the phone if macOS is locked or went to sleep

cleanshot

 

You can easily send remote commands to an Android phone from any device or IFTTT with Join. So I added it two macros to Keyboard Maestro which are going to send a remote command to the phone:

 
  • When I manually lock the computer (with HyperKey + L)
  • When the computer goes to sleep

I would send remote commands to wake up the phone when macOS is unlocked or comes back from sleep, but unlocking the screen with Tasker requires root access, so I didn't want to bother.

 

CleanShot 2020-09-05 at 08.06.35.png

 

CleanShot 2020-09-05 at 08.07.04.png

 

Conclusion

That's it! Now I have another "Stream Deck" on my desk and I can add as many buttons as pages that I want. I really hope that this was useful to you! I'll make sure to edit the post in a few months if I didn't like the experience.