Files
2026-10-19 23:22:28 +02:00

696 lines
17 KiB
JSON

{
"$schema": "https://schemas.elgato.com/streamdeck/plugins/manifest.json",
"UUID": "de.felitendo.obs-tools",
"Name": "OBS Tools",
"Version": "0.2.1",
"Author": "Felitendo",
"Description": "Advanced OBS tools for OpenDeck on Linux: smart scene switching with previews, source animations, instant replay, video player, dropped frame alarm and more.",
"URL": "https://github.com/FeloDeck/obs-tools",
"Icon": "images/plugin",
"Category": "OBS Tools",
"CategoryIcon": "images/category",
"CodePath": "bin/x86_64-unknown-linux-gnu/obs-tools",
"CodePaths": {
"x86_64-unknown-linux-gnu": "bin/x86_64-unknown-linux-gnu/obs-tools",
"aarch64-unknown-linux-gnu": "bin/aarch64-unknown-linux-gnu/obs-tools"
},
"PropertyInspectorPath": "pi/index.html",
"SDKVersion": 2,
"OS": [
{
"Platform": "linux"
}
],
"Actions": [
{
"UUID": "de.felitendo.obs-tools.recordtoggle",
"Name": "Recording Toggle",
"Icon": "images/actions/record",
"Tooltip": "Start, stop or pause recording, on this PC or on another OBS in your network.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/record",
"TitleAlignment": "bottom",
"FontSize": 11
},
{
"Image": "images/keys/record-on",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.streamtoggle",
"Name": "Streaming Toggle",
"Icon": "images/actions/stream",
"Tooltip": "Start or stop streaming, on this PC or on another OBS in your network.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/stream",
"TitleAlignment": "bottom",
"FontSize": 11
},
{
"Image": "images/keys/stream-on",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.smartscene",
"Name": "Smart Scene Switcher",
"Icon": "images/actions/scene",
"Tooltip": "Switch scenes. In studio mode: first press to preview, second press to go live. Shows a live picture with a red (live) or green (preview) frame.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/scene",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.mutetoggle",
"Name": "Source Mute Toggle",
"Icon": "images/actions/mute",
"Tooltip": "Mute or unmute an audio source.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/unmuted",
"TitleAlignment": "bottom",
"FontSize": 11
},
{
"Image": "images/keys/muted",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.sourcevisibility",
"Name": "Source Visibility",
"Icon": "images/actions/eye",
"Tooltip": "Show or hide a source in a scene.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/visibility",
"TitleAlignment": "bottom",
"FontSize": 11
},
{
"Image": "images/keys/visibility-on",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.instantreplay",
"Name": "Instant Replay",
"Icon": "images/actions/replay",
"Tooltip": "Press to save the replay buffer, play it on stream and clip it on Twitch. Hold to turn the replay buffer on or off.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/replay",
"TitleAlignment": "bottom",
"FontSize": 11
},
{
"Image": "images/keys/replay-on",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.sourcevolume",
"Name": "Source Volume",
"Icon": "images/actions/volume",
"Tooltip": "Turn the volume of an audio source up, down or to a set value, with a live level meter. Hold the key to keep going.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/volume",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.inputvolume",
"Name": "Volume (Dial)",
"Icon": "images/actions/volume",
"Tooltip": "Turn the dial to change the volume of an audio source, with a live level meter. Press or touch to mute.",
"Controllers": [
"Encoder"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/encoder/volume-key"
}
],
"Encoder": {
"layout": "layouts/volume-meter.json",
"Icon": "images/encoder/volume",
"TriggerDescription": {
"Rotate": "Volume",
"Push": "Mute",
"Touch": "Mute"
}
}
},
{
"UUID": "de.felitendo.obs-tools.scenedial",
"Name": "Scene (Dial)",
"Icon": "images/actions/scene",
"Tooltip": "Turn the dial to pick a scene (with a picture of it), press to switch.",
"Controllers": [
"Encoder"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/encoder/scene-key"
}
],
"Encoder": {
"layout": "layouts/scene-dial.json",
"Icon": "images/encoder/scene",
"TriggerDescription": {
"Rotate": "Pick a scene",
"Push": "Switch",
"Touch": "Switch"
}
}
},
{
"UUID": "de.felitendo.obs-tools.studiomode",
"Name": "Studio Mode Toggle",
"Icon": "images/actions/studio",
"Tooltip": "Turn studio mode on or off.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/studio",
"TitleAlignment": "bottom",
"FontSize": 11
},
{
"Image": "images/keys/studio-on",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.previousscene",
"Name": "Last Scene",
"Icon": "images/actions/back",
"Tooltip": "Go back to the scene that was live before. Shows its name.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/back",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.nextscene",
"Name": "Next Scene",
"Icon": "images/actions/next",
"Tooltip": "Go to the next scene in the scene list, or the one above.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/next",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.mediacontrol",
"Name": "Media Control",
"Icon": "images/actions/playPause",
"Tooltip": "Play, pause, stop, restart or skip in a media source. Shows the time left or played.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/media",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.videoplayer",
"Name": "Video Player",
"Icon": "images/actions/video",
"Tooltip": "Play a file in a media source. Many keys can share one source, each with its own file and speed.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/video",
"TitleAlignment": "bottom",
"FontSize": 11
},
{
"Image": "images/keys/video-on",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.imagesource",
"Name": "Image Source",
"Icon": "images/actions/image",
"Tooltip": "Show a picture in an image source. Many keys can share one source, each with its own picture. Can hide it again after some seconds.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/image",
"TitleAlignment": "bottom",
"FontSize": 11
},
{
"Image": "images/keys/image-on",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.settext",
"Name": "Set Text",
"Icon": "images/actions/text",
"Tooltip": "Change the text of a text source: a fixed text, the next line of a list, or a counter that counts up or down.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/text",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.filtertoggle",
"Name": "Filter Toggle",
"Icon": "images/actions/filter",
"Tooltip": "Turn a filter on a source on or off.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/filter",
"TitleAlignment": "bottom",
"FontSize": 11
},
{
"Image": "images/keys/filter-on",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.streamhealth",
"Name": "Stream Health",
"Icon": "images/actions/health",
"Tooltip": "Bitrate, dropped frames and a green, yellow or red light for your stream.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/health",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.virtualcam",
"Name": "Virtual Camera Toggle",
"Icon": "images/actions/virtualcam",
"Tooltip": "Start or stop the OBS virtual camera.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/virtualcam",
"TitleAlignment": "bottom",
"FontSize": 11
},
{
"Image": "images/keys/virtualcam-on",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.recordtools",
"Name": "Recording Marker",
"Icon": "images/actions/chapter",
"Tooltip": "While recording: add a chapter marker or start a new file.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/chapter",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.screenshot",
"Name": "Screenshot",
"Icon": "images/actions/camera",
"Tooltip": "Save a picture of the live scene, or of any scene or source.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/screenshot",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.hotkey",
"Name": "OBS Hotkey",
"Icon": "images/actions/keyboard",
"Tooltip": "Press any OBS hotkey, by its name or by the keys it is set to in OBS.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/hotkey",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.settransition",
"Name": "Set Transition",
"Icon": "images/actions/transition",
"Tooltip": "Set the scene transition and its duration.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/transition",
"TitleAlignment": "bottom",
"FontSize": 11
},
{
"Image": "images/keys/transition-on",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.transitiondial",
"Name": "Transition (Dial)",
"Icon": "images/actions/transition",
"Tooltip": "Turn the dial to change the transition time, press for the next transition.",
"Controllers": [
"Encoder"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/encoder/transition-key"
}
],
"Encoder": {
"layout": "layouts/dial.json",
"Icon": "images/encoder/transition",
"TriggerDescription": {
"Rotate": "Transition time",
"Push": "Next transition",
"Touch": "Next transition"
}
}
},
{
"UUID": "de.felitendo.obs-tools.filterdial",
"Name": "Filter (Dial)",
"Icon": "images/actions/filter",
"Tooltip": "Turn the dial to change a number in a filter, like gain, opacity or blur. Press to turn the filter on or off.",
"Controllers": [
"Encoder"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/encoder/filter-key"
}
],
"Encoder": {
"layout": "layouts/dial.json",
"Icon": "images/encoder/filter",
"TriggerDescription": {
"Rotate": "Change value",
"Push": "Filter on or off",
"Touch": "Filter on or off"
}
}
},
{
"UUID": "de.felitendo.obs-tools.sourceanimation",
"Name": "Source Animation",
"Icon": "images/actions/animation",
"Tooltip": "Move, scale, rotate or crop a source in phases. Record the change in OBS and the plugin fills in the numbers.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/animation",
"TitleAlignment": "bottom",
"FontSize": 11
},
{
"Image": "images/keys/animation-on",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.browsersource",
"Name": "Browser Source",
"Icon": "images/actions/browser",
"Tooltip": "Refresh a browser source, set its URL, cycle through URLs or show and hide it.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/browser",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.droppedframes",
"Name": "Dropped Frames Alarm",
"Icon": "images/actions/dropped",
"Tooltip": "Shows dropped, skipped or missed frames and flashes when the number goes up. Press to stop the alarm.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/dropped",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.cpuusage",
"Name": "OBS CPU Usage",
"Icon": "images/actions/cpu",
"Tooltip": "Shows how much CPU OBS uses.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/cpu",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.monitorset",
"Name": "Source Monitor Set",
"Icon": "images/actions/monitor",
"Tooltip": "Set how an audio source is monitored: off, monitor only, or monitor and output.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/monitor",
"TitleAlignment": "bottom",
"FontSize": 11
},
{
"Image": "images/keys/monitor-on",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.profile",
"Name": "Profile / Scene Collection",
"Icon": "images/actions/collection",
"Tooltip": "Switch to another OBS profile or scene collection.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/profile",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
},
{
"UUID": "de.felitendo.obs-tools.focusedwindow",
"Name": "Focused Window Capture",
"Icon": "images/actions/window",
"Tooltip": "Point a Window Capture (Xcomposite) source at the window that has focus. Needs OBS on X11.",
"Controllers": [
"Keypad"
],
"SupportedInMultiActions": true,
"DisableAutomaticStates": true,
"States": [
{
"Image": "images/keys/window",
"TitleAlignment": "bottom",
"FontSize": 11
}
]
}
]
}