Pybiosis - Python Automation and Device Integration

Okay, so I got one of these:
 
 
which is a StreamDeck. This lets you add in custom buttons with icons to execute specific actions - typically for streaming so you can switch things like camera views etc really easily. Many people also take advantage of this for productivity, which is what I like to use it for. But I needed more out of it, using the GUI and the provided features is great for most people, but I wanted to see how far I could take it! So, I hooked it up to python which I used to manipulate the StreamDeck data files. This now allows me to use physical buttons to call Python code:
 
Pybiosis code to run btd6 via voice command or stream deck button.
 
The special line here is: @deck(location='Games/2,0', image='default0.png'). When this code runs, it will recompile the Stream Deck files to place a button in the desired location so that a button press will execute the associated python function. The line: Games.play_with_laptop("Bloons", 'hdmi') hides some magic. It will:
  • Launch the game Bloons Tower Defence 6 from Steam,
  • Switch my right monitor to the HDMI setting so that it displays a connected laptop, and
  • Stop extending my primary computer to that screen
This way I can play local co-op bloons instantly and I can forget about all of the menus and settings!! To do all of that monitor management I had to create python wrappers for several existing applications like: The keen-eyed will have also noticed the line: @google(voice=multi_phrase(...)). This hooks up my Google Assistant to recognize the programmed voice commands and execute the python function. I have to say a huge thank you to Rob Latour for implementing the updates to Push2Run that I requested - within a day of asking, I highly recommend you check it out! Below is a video of me running this python function through a voice command, along with a project description:
.
.

So even though I showed how it can be used to launch a game, it can be used for any python function you can think of! This isn't in a state where I feel like I can share the code, but hopefully in the future!