Stream Deck with example button images

First of all, there does exist various community efforts for using the Elgato Stream Deck under Linux, the USB protocol has been reverse engineered and it is quite simple to get key presses. There are various userland libraries and some UI applications. They are mostly written in Python or some other obscure language like Go.

Not acceptable!

The obvious, and most Linux way in my opinion, would be a kernel input driver, as then it could work with just about any application. I actually find it strange that nobody has done one yet as it looks relatively easy. I've done some tiny driver coding from time to time so I might even do it one day. But for now, userland.

I've done a proof-of-concept cli app, using libusb hidapi/evdev, in C obviously, that can change the button images (from jpg files, keep it simple), change brightness and inject button presses into the system using the uinput device. It still needs a bit of work before public publishing but should be available on github soon.

We started a new project a while back, a ATEM switcher remote control application for Linux. It started first as just a proof of concept and is now slowly evolving to something actually usable. The basic switching operations are there, preview/program cut and streaming/recording control. At first we only had access to the ATEM switcher at work so development was a bit slow, but now we can locally work with a ATEM Mini Pro. We are already some nice extra ideas, for example tally information over MQTT or CAN bus, animated lower thirds with QtQuick, video/music/effect playback. But more details about those later.

The application uses Qt and QtQuick, the ATEM network protocol is handled by libqatemcontrol (customized with better QtQuick integration and adding new features), the UI is QtQuick based. It should run on desktop Linux and has successfully been used on a Raspberry Pi with the official touch screen.

64-bit ARMv8 CPU on Raspberry Pi 4

The Qt 5.15.2 build guide has now been updated with details about building for the 64-bit variant of Raspberry Pi OS.

There are some small differences, you must use the Mesa VC4 driver for EGLFS and build with the correct Qt platform build setting. Details are now explained in the updated build tutorial.

Raspberry Pi 4 closeup

Sorry for the long delay, life came in the way and all kinds of non-geek stuff. Anyway, a new Qt 5.15.2 LTS specific tutorial has now been released and also a separate guide on how to build QtWebEngine. The older 5.12.10 tutorial was also cleaned up in case you would like to stay on that version. The new QtWebEngine tutorial can also be used with 5.12.10.