Git Product home page Git Product logo

stream-deck's Introduction

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

stream-deck's People

Contributors

thebeachlab avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.