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.
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.
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.
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.
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.
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.
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.
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.
I set up the following profiles in Tasker:
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:
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.
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.
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