StefanZoerner / streamdeck-squeezebox

A simple Streamdeck plugin with actions to control your local Squeezebox server
Apache License 2.0
2 stars 0 forks source link

streamdeck-squeezebox

A simple Stream Deck plugin with actions to control your Squeezebox music players via your local Logitech Media Server (LMS).

Overview

The following image shows all actions of this plugin in a profile. Most of the actions used more than once, especially the one for album art.

All actions in a profile

Features

How to use

Requirements

Theoretically, the plugin should work with Steamdeck both on Mac OS and Windows. However, I do not have a Windows 10 machine to test it. Feedback is therefore welcome.

Installation

Download the current ...streamDeckPlugin file from the releases. You install it by a double click on your Windows or macOS machine hosting the STream Deck application.

The plugin and its action appear in the toolbar in the "Squeezbox" group, see image below.

All actions in the toolbar

Configuration

Configure action icon

The configuration is done via the corresponding action. Simply drag one into a profile. In the property inspector for the action can be set:

The settings can be tested in the UI with a button. Later on, pressing the action key on the streamdeck also triggers the test and displays the result directly on the device.

If the connection works you can configure a default player. This makes it easier to configure individual actions later.

The settings are saved globally for all actions. In particular, the plugin does not support multiple LMS (yet).

Other Actions

Play/Pause Toggle

play toggle action icon

Toggle play mode for a player

Album Art

play toggle action icon

Show the cover art of an album in a tile (1x1, 2x2 or 3x3 Streamdeck keys)

Volume Control

play toggle action icon

Change the volume of a player up or down

Change Track

play toggle action icon

Previous or next track in the playlist of a player

Implementation details

The plugin is written in Go and uses the StreamDeck Plugin API bindings for Go by Sam Who. Due to a missing feature for global settings, I use a copy in the vendoring directory.