Zero to Shipped

- Master Fullstack Development and finally ship a product

4 years ago

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.




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



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



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.


Thanks for reading! Subscribe to the newsletter?

More posts

How to use the src directory and absolute imports in Next.js

The saddest "Just Ship It" story ever

You're either a Zero or a One

How I tricked my brain into working out 24 times in 30 days

GitHub stars won't pay your rent

An underrated way to keep up with web development

GPT-3 is the beginning of the end

How to magically free up gigabytes of disk space

Fastest way to thoroughly uninstall apps on macOS

A better way to manage multiple monitors on macOS

From Hello World to a production app: The magic of Blitz

Introducing Fungarzione: The app for keeping your users in the loop

Generating social media images by screenshotting React components

Pomodoro with accountability