Files
2026-10-20 09:21:58 +02:00

242 lines
5.1 KiB
JSON

{
"$schema": "https://schemas.elgato.com/streamdeck/plugins/manifest.json",
"UUID": "de.felitendo.feishin",
"Name": "Feishin",
"Version": "2.1.0.0",
"Author": "Felitendo",
"Description": "Control Feishin, a modern self-hosted music player",
"URL": "https://github.com/FeloDeck/Feishin-Plugin",
"SupportURL": "https://github.com/FeloDeck/Feishin-Plugin/issues",
"Icon": "imgs/plugin/marketplace",
"Category": "Feishin",
"CategoryIcon": "imgs/plugin/category-icon",
"CodePath": "bin/plugin.js",
"PropertyInspectorPath": "ui/property-inspector.html",
"SDKVersion": 3,
"Software": {
"MinimumVersion": "7.1"
},
"OS": [
{
"Platform": "mac",
"MinimumVersion": "12"
},
{
"Platform": "windows",
"MinimumVersion": "10"
}
],
"Nodejs": {
"Version": "24"
},
"Actions": [
{
"UUID": "de.felitendo.feishin.playpause",
"Name": "Play/Pause",
"Tooltip": "Play or pause the current track",
"Icon": "imgs/actions/play-pause/icon",
"Controllers": [
"Keypad"
],
"DisableAutomaticStates": true,
"States": [
{
"Name": "Paused",
"Image": "imgs/actions/play-pause/play"
},
{
"Name": "Playing",
"Image": "imgs/actions/play-pause/pause"
}
]
},
{
"UUID": "de.felitendo.feishin.next",
"Name": "Next",
"Tooltip": "Play the next track",
"Icon": "imgs/actions/next/icon",
"Controllers": [
"Keypad"
],
"States": [
{
"Image": "imgs/actions/next/key"
}
]
},
{
"UUID": "de.felitendo.feishin.previous",
"Name": "Previous",
"Tooltip": "Play the previous track",
"Icon": "imgs/actions/previous/icon",
"Controllers": [
"Keypad"
],
"States": [
{
"Image": "imgs/actions/previous/key"
}
]
},
{
"UUID": "de.felitendo.feishin.shuffle",
"Name": "Shuffle",
"Tooltip": "Toggle shuffle mode",
"Icon": "imgs/actions/shuffle/icon",
"Controllers": [
"Keypad"
],
"DisableAutomaticStates": true,
"States": [
{
"Name": "Off",
"Image": "imgs/actions/shuffle/off"
},
{
"Name": "On",
"Image": "imgs/actions/shuffle/on"
}
]
},
{
"UUID": "de.felitendo.feishin.repeat",
"Name": "Repeat",
"Tooltip": "Switch between repeat off, repeat all and repeat one",
"Icon": "imgs/actions/repeat/icon",
"Controllers": [
"Keypad"
],
"States": [
{
"Image": "imgs/actions/repeat/none"
}
]
},
{
"UUID": "de.felitendo.feishin.volumeup",
"Name": "Volume Up",
"Tooltip": "Turn the volume up (hold to keep going)",
"Icon": "imgs/actions/volume/up-icon",
"Controllers": [
"Keypad"
],
"States": [
{
"Image": "imgs/actions/volume/up",
"TitleAlignment": "bottom"
}
]
},
{
"UUID": "de.felitendo.feishin.volumedown",
"Name": "Volume Down",
"Tooltip": "Turn the volume down (hold to keep going)",
"Icon": "imgs/actions/volume/down-icon",
"Controllers": [
"Keypad"
],
"States": [
{
"Image": "imgs/actions/volume/down",
"TitleAlignment": "bottom"
}
]
},
{
"UUID": "de.felitendo.feishin.mute",
"Name": "Mute",
"Tooltip": "Mute or unmute Feishin",
"Icon": "imgs/actions/volume/mute-icon",
"Controllers": [
"Keypad"
],
"DisableAutomaticStates": true,
"States": [
{
"Name": "Sound on",
"Image": "imgs/actions/volume/unmuted",
"TitleAlignment": "bottom"
},
{
"Name": "Muted",
"Image": "imgs/actions/volume/muted",
"TitleAlignment": "bottom"
}
]
},
{
"UUID": "de.felitendo.feishin.forward",
"Name": "Fast Forward",
"Tooltip": "Jump forward in the current track (hold to keep going)",
"Icon": "imgs/actions/seek/forward-icon",
"Controllers": [
"Keypad"
],
"States": [
{
"Image": "imgs/actions/seek/forward"
}
]
},
{
"UUID": "de.felitendo.feishin.rewind",
"Name": "Rewind",
"Tooltip": "Jump back in the current track (hold to keep going)",
"Icon": "imgs/actions/seek/rewind-icon",
"Controllers": [
"Keypad"
],
"States": [
{
"Image": "imgs/actions/seek/rewind"
}
]
},
{
"UUID": "de.felitendo.feishin.volumedial",
"Name": "Volume Dial (Stream Deck +)",
"Tooltip": "Rotate to change the volume, press to mute",
"Icon": "imgs/actions/volume/dial-icon",
"Controllers": [
"Encoder"
],
"Encoder": {
"layout": "$B1",
"Icon": "imgs/actions/volume/dial",
"TriggerDescription": {
"Rotate": "Adjust volume",
"Push": "Mute / unmute",
"Touch": "Mute / unmute"
}
},
"States": [
{
"Image": "imgs/actions/volume/dial-key"
}
]
},
{
"UUID": "de.felitendo.feishin.seekdial",
"Name": "Seek Dial (Stream Deck +)",
"Tooltip": "Shows the current track; rotate to seek, press to play or pause",
"Icon": "imgs/actions/seek/dial-icon",
"Controllers": [
"Encoder"
],
"Encoder": {
"layout": "layouts/seek-dial.json",
"Icon": "imgs/actions/seek/dial",
"TriggerDescription": {
"Rotate": "Seek",
"Push": "Play / pause",
"Touch": "Play / pause"
}
},
"States": [
{
"Image": "imgs/actions/seek/dial-key"
}
]
}
]
}