Skip to content

TheBeachLab/stream-deck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

stream-deck

A free and open source alternative to elgato streamdeck using an old keyboard, python and Linux.

Disclaimer 1: This is not a universal solution. I am just sharing my set-up, designs and scripts. You still will need knowledge in the mentioned topics to adapt it to your needs.
Disclaimer 2: This is unfinished/ongoing work

What you need

  • Linux (Apple victims and Windows loosers users see below). I use Arch Linux but should work in any distribution..
  • Python 3 and a bunch of python libs (check the import section of the script)
  • An old keyboard, I am using an Apple one but any one will do.

To print and cut the stickers you also need these: (warning, sponsored links. Amazon will give me money if you buy from here):

Sticker designs

I downloaded most of the icons from https://www.flaticon.com credit goes to each one of the authors ❤️ I created an svg template to place the icons (still WIP).

svg template

The script

The script is a python program that grabs the keyboard an then launches programs, emulate keystokes and soon will also send MIDI messages. Modify your keyboard by-id value.

Check the key events with evtest and select the device keyboard to monitor.

Hotplug

To execute the script when I plug the keyboard I created a udev rule /etc/udev/rules.d/99-apple-keyboard.rules with this content:

SUBSYSTEM=="input", SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="05ac", ATTRS{idProduct}=="0221", ENV{DISPLAY}=":0", ENV{XAUTHORITY}="/home/unix/.Xauthority", RUN+="~/autohotkey.py"

You need to modify your ATTRS{idVendor} and ATTRS{idProduct}. Use lsusb to fin out yours. And finally reload the rules sudo udevadm control --reload-rules. The script should now run every time you plug the keyboard.

Note: Hotplug does not work if I use notify2. However it works if I start it manually. I wonder why...

Mac and Windows users

Releases

No releases published

Packages

No packages published

Languages