Code Monkey home page Code Monkey logo

streamdeck's Introduction

streamdeck

Latest Release Software License Build Status Go ReportCard Go Doc

A CLI application and Go library to control your Elgato Stream Deck on Linux.

If you're looking for a complete Linux service to control your StreamDeck, check out Deckmaster, which is based on this library.

Installation

Make sure you have a working Go environment (Go 1.12 or higher is required). See the install instructions.

To install streamdeck, simply run:

go get github.com/muesli/streamdeck

Configuration

On Linux you need to set up some udev rules to be able to access the device as a regular user. Edit /etc/udev/rules.d/99-streamdeck.rules and add these lines:

SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0060", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0063", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006c", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="006d", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0080", MODE:="666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0fd9", ATTRS{idProduct}=="0090", MODE:="666", GROUP="plugdev"

Make sure your user is part of the plugdev group and reload the rules with sudo udevadm control --reload-rules. Unplug and replug the device and you should be good to go.

Usage

Control the brightness, in percent between 0 and 100:

streamdeck-cli brightness 50

Set an image on the first key (from the top-left):

streamdeck-cli image 0 image.png

Clear all images:

streamdeck-cli clear

Reset the device:

streamdeck-cli reset

Feedback

Got some feedback or suggestions? Please open an issue or drop me a note!

streamdeck's People

Contributors

demontpx avatar dependabot[bot] avatar ftl avatar lnqs avatar muesli avatar xdevla avatar zmoooooritz 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

streamdeck's Issues

streamdeck-cli fails to find device in macOS 11.1

I am guessing that this is likely just due to the Linux focus with development and testing. I am happy to try and dig into this a bit as time allows but wanted to start by documenting it here:

$ brew install hidapi

$ streamdeck-cli brightness 50

panic: hidapi: failed to open device

goroutine 1 [running]:
main.main()
	/Users/spkane/dev/go/path/src/github.com/muesli/streamdeck/cmd/streamdeck-cli/main.go:36 +0x495

Some data for the record:

$ hidtest

Device Found
  type: 0fd9 006d
  path: IOService:/AppleACPIPlatformExpert/PCI0@0/AppleACPIPCI/XHC1@14/XHC1@14000000/HS01@14100000/USB2.1 Hub@14100000/AppleUSB20Hub@14100000/AppleUSB20HubPort@14120000/Stream Deck@14120000/IOUSBHostInterface@0/AppleUserUSBHostHIDDevice
  serial_number: AL28J2C04876
  Manufacturer: Elgato
  Product:      Stream Deck
  Release:      200
  Interface:    0
  Usage (page): 0x1 (0xc)

Need for buttons to blank when device is "asleep"

Following on the discussion in muesli/deckmaster#72, my Streamdeck XL doesn't dim to blank when brightness is set to 0. This leaves the buttons in a dim state when the device is "asleep". In that pull request, @muesli indicates that this should be dealt with in this repository. I'm willing to work on a pull request, but I need some architectural guidance since my ideas in the past relative to this feature have not passed muster and blanking the buttons would seem (to me) to require some rendering and button management code to be pulled up from deckmaster or for some event passing mechanism between the library and the app to be added.

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.