streamdeck

package module
v0.0.0-...-cdaf123 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 17, 2020 License: MIT Imports: 7 Imported by: 3

README

streamdeck

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.9 or higher is required). See the install instructions.

To install streamdeck, simply run:

go get github.com/muesli/streamdeck/cmd/...

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"

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

Development

GoDoc Build Status Go ReportCard

Documentation

Index

Constants

View Source
const (
	VID_ELGATO          = 0x0fd9
	PID_STREAMDECK      = 0x0060
	PID_STREAMDECK_V2   = 0x006d
	PID_STREAMDECK_MINI = 0x0063
	PID_STREAMDECK_XL   = 0x006c
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Device

type Device struct {
	ID     string
	Serial string

	Columns uint8
	Rows    uint8
	Pixels  uint
	// contains filtered or unexported fields
}

Device represents a single Stream Deck device

func Devices

func Devices() ([]Device, error)

Devices returns all attached Stream Decks

func (Device) Clear

func (d Device) Clear() error

Clears the Stream Deck, setting a black image on all buttons

func (Device) Close

func (d Device) Close() error

Close the connection with the device

func (Device) FirmwareVersion

func (d Device) FirmwareVersion() (string, error)

FirmwareVersion returns the firmware version of the device

func (*Device) Open

func (d *Device) Open() error

Open the device for input/output. This must be called before trying to communicate with the device

func (Device) ReadKeys

func (d Device) ReadKeys() (chan Key, error)

ReadKeys returns a channel, which it will use to emit key presses/releases

func (Device) Reset

func (d Device) Reset() error

Resets the Stream Deck, clears all button images and shows the standby image

func (Device) SetBrightness

func (d Device) SetBrightness(percent uint8) error

SetBrightness sets the background lighting brightness from 0 to 100 percent

func (Device) SetImage

func (d Device) SetImage(index uint8, img image.Image) error

SetImage sets the image of a button on the Stream Deck. The provided image needs to be in the correct resolution for the device. The index starts with 0 being the top-left button.

type Key

type Key struct {
	Index   uint8
	Pressed bool
}

Key holds the current status of a key on the device

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL