Skip to main content

Streamdeck controls

This project is a simple and small framework which simplifies developing and running custom apps for streamdeck devices. It allows using streamdecks without the offical software so you can use it with any major OS.

Currently supported Streamdecks

  • Streamdeck Mk.2

Installing

Prerequisites

Linux:

sudo apt install libhidapi-dev

MacOS:

brew install hidapi

Installing sd-controls

pip install sd-controls

Contributing

If you are interested in this project and have a streamdeck, please consider contributing to it. Adding support for other Streamdecks is greatly appreciated but feel free to propose any other changes too!

Using this software with Linux (Linux udev rules)

Create a /etc/udev/rules.d/50-elgato.rules file with the following content:

SUBSYSTEM=="input", GROUP="input", MODE="0666"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0080", MODE:="666", GROUP="plugdev"
KERNEL=="hidraw*", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0080", MODE:="666", GROUP="plugdev"

Example app

from PIL import Image
from sd_controls.sdsystem import SDSystem, SDUserApp, Sprites


class HelloWorldApp(SDUserApp):
    _KEY_GREET = 1
    _KEY_ROTATE = 2

    def __init__(self) -> None:
        super().__init__("Settings")
        self._icon = SDUserApp.generate_labeled_img(Sprites.CLEAR, "Hello World")
        self._hello = SDUserApp.generate_labeled_img(Sprites.CLEAR, "Hello")
        self._world = SDUserApp.generate_labeled_img(Sprites.CLEAR, "World")
        self._rotate_key = Sprites.GOAT

    def get_icon(self) -> Image:
        return self._icon

    def init(self) -> None:
        self.set_key(self._KEY_GREET, self._hello)
        self.set_key(self._KEY_ROTATE, self._rotate_key)

    def keys_update(self, keys_before: list[bool], keys: list[bool]) -> None:
        if not keys[self._KEY_GREET] and keys_before[self._KEY_GREET]:
            self.set_key(self._KEY_GREET, self._world)
        if not keys[self._KEY_ROTATE] and keys_before[self._KEY_ROTATE]:
            self._rotate_key = self._rotate_key.rotate(90)
            self.set_key(self._KEY_ROTATE, self._rotate_key)
            

system = SDSystem()
system.register_app(HelloWorldApp())
system.start()

Metadata

Release files for sd-controls 0.0.15

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sd-controls 0.0.15
File Size Uploaded
sd_controls-0.0.15.tar.gz 117.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sd-controls 0.0.15
File Interpreter ABI Platform
sd_controls-0.0.15-py3-none-any.whl Python 3 none any Details

Total release size: 233.4 kB

Release files / sd_controls-0.0.15.tar.gz

Download URL sd_controls-0.0.15.tar.gz
Size 117.1 kB
Tags Source
SHA-256 checksum
How to use checksums
fde7b4fb1a0aa5c3412617a0dab0909d28988f8c533f94ad876ba5167fe523c5
BLAKE2b-256 checksum
How to use checksums
e8fd04b75f47f9646842ba1157917137552b2f98cdd5dadcafb97f54010580ff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.6

Release files / sd_controls-0.0.15-py3-none-any.whl

Download URL sd_controls-0.0.15-py3-none-any.whl
Size 116.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f18eab04b5bf8c06985d9e9953db4966621063fff2d0a1daf317290431daed8d
BLAKE2b-256 checksum
How to use checksums
236a26594a4e7418ae44d84f2e26188c1bf6635bc7d6722afb4871ae53a26d35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.6

Release history Release notifications | RSS feed

This release

0.0.15 This release

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page