Stream Deck conditional group control

I'm really VERY pleased with the support you added for the Stream Deck. But not so pleased that I don't have ideas…

I understand why you limit the variables that are polled to control conditional groups..but if you could allow them to enabled/disabled programmatically (i.e. via some trigger) that would enable a Great Many Things

Thanks for your consideration, Andreas!

you can control them using the standard "set_string_variable" scripting call, e.g. via apple script or via java script (Using Java Script (not JXA) · GitBook)

What are you trying to achieve?

I'd like to have small groups of buttons appear/disappear across a number of profiles, triggered by button presses. I could do that with the six custom variables but I am pretty sure that I'll run out of those before I'm done.

Having conditional groups appear when a button is held down is part way there. But I don't want to hold it, and I want the conditional groups to stay active then the profiles change.

Please? It would be very cool.

Wouldn't that work better with just using folders that open on press?

Not really, kind of the same problem when using groups: the groups go away when you change profiles. (Also, holding the button down to press other buttons is an ergonomic challenge). Here is an example use case:

I have a couple of different programs that I use for video conferencing. They each have their own profile. I have another button that can toggle the system microphone. I would like that mic mute button to be visible for as long as I have a video conference running, even if I bring another app/profile to the front.

Another example would be exposing media controls when I have a media playback going on. (I think one of your custom variables could handle that, but I'd prefer a more general solution.) Thanks again

For groups you can check the "Keep Group Open While Switching Apps" option:

Hi Andreas, I appreciate your willingness to keep considering this.

I was not even aware of that setting, so thank you. However, it doesn't help. True, that group stays open but then I cannot even see any other profiles until I close it.

I'm trying enable programmatically (such as with a script) an action group alongside other application groups. Here's a mock-up using my "mute the microphone" example:

  1. I'm in my Safari profile. The three teal-colored buttons on the bottom are from a conditional action group, but the condition is essentially (1=1) so they appear on every page.

  2. I launch a video conference app (not much here, I'm hoping to use the feature I'm asking for to build this out later. But the microphone mute button shows up.

  3. I navigate back to Safari and the mute button is still showing because the video conference is still running. It should stay there indefinitely until I'm no longer in a video conference.

I would be able to do the same with video controls, and I've got some ideas for enable/disabling panels of buttons to get more than 32 buttons on the same screen (just not all at once) like here in Omnifocus:

Thanks again for your consideration, Andreas


ah now I understand what you are trying to do :slight_smile:

Have you already tried whether this works in general with the custom variables? In theory you can do unlimited amount of things with those few variables as they have no limit in length. So you could e.g. set a variable to safai_videoconference_controls and use the "contains" condition to check for specific items.
However with the latest BTT architecture I could probably also add a way to use custom variables. I'll check how complicated that would be.

Hmm..interesting! I'd assumed six customVariables == six conditions, which was my worry. If I can overload the customVariables I could do what I want. But I would need a way to update and test the value of "Item 2 out of 3 Items". Maybe I could do this with Applescript?

Thanks Andreas. I'll look into this. But I do invite you to consider that an API to enable/disable a macro group would be more elegant. And you are almost there with the "When I hold this button down show these other buttons" action. So close!

Thanks again.

You the man, Andreas. Your suggestion worked out beautifully, and I've now got groups of Stream Deck buttons triggering on and off like it's Christmas. All managed using customVariable1. Keyboard Maestro can drive them as well.

This is great!

nice! I will eventually add a better way to achieve this, but this will still take a bit.