streamdeck

package module
v0.4.0 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2023 License: MIT Imports: 11 Imported by: 6

README

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!

Documentation

Index

Constants

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

Stream Deck Vendor & Product IDs.

Variables

This section is empty.

Functions

This section is empty.

Types

type Device

type Device struct {
	ID     string
	Serial string

	Columns uint8
	Rows    uint8
	Keys    uint8
	Pixels  uint
	DPI     uint
	Padding 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) Asleep added in v0.3.0

func (d Device) Asleep() bool

Asleep returns true if the device is asleep.

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) Fade added in v0.3.0

func (d *Device) Fade(start uint8, end uint8, duration time.Duration) error

Fade fades the brightness in or out.

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.

func (*Device) SetSleepFadeDuration added in v0.3.0

func (d *Device) SetSleepFadeDuration(t time.Duration)

SetSleepFadeDuration sets the duration of the fading animation when the device is put to sleep or wakes up.

func (*Device) SetSleepTimeout added in v0.3.0

func (d *Device) SetSleepTimeout(t time.Duration)

SetSleepTimeout sets the time after which the device will sleep if no key events are received.

func (*Device) Sleep added in v0.3.0

func (d *Device) Sleep() error

Sleep puts the device asleep, waiting for a key event to wake it up.

func (*Device) Wake added in v0.3.0

func (d *Device) Wake() error

Wake wakes the device from sleep.

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