Describe the bug
I have several Shell Script Widgets configured on my Stream Deck's touch screen for viewing the brightnesses of my displays. I want to set up separate Touch Screen Configuration Groups (TSCG) so that I can have more actions for the touch screen. However, when I activate a different TSCG, the widgets render on top of it, no matter what I try.
I've attempted to disable the widgets in their configs with the "Advanced Conditions..." menu, as well as prevent the shell script from sending any output by gating them with if conditions. It seems that as long as the script runs (which I have set to every 0.5 seconds), the widget will render, even if it's just the widget background.
Affected input device (e.g. MacBook Trackpad, Magic Mouse/Trackpad, Touch Bar, etc.):
Stream Deck +
Screenshots
Device information:
- Type of Mac: 14" M1 Pro MacBook Pro (2021)
- macOS version: Tahoe 26.5.2
- BetterTouchTool version: 6.726 (2026081403)
Andreas is in the process of building a new system for configuring Stream Decks and other macro pads. This is based on using the floating menu configuration system. My advice is that you change over to using that system instead of using TSCG's. Andreas has been very responsive to questions and requests about the new system.
See for instance here:
https://community.folivora.ai/t/stream-deck-configuration-using-the-new-floating-menu-macro-pad-components/47495
Andreas does say in that thread (2nd message):
Widgets are a bigger topic because of their dynamic nature and limitations on how often I can push a new image to the Macro Pads. I'll work on that soon to make at least some possible.
Depending on what kind of updates you need, you can update "menu" items (including both button items and touch screen items) from JavaScript instead of using regularly updating widget scripts.
I have a continually running shell script that uses the "integrated webserver" to fire events back to btt that trigger state changes on my Stream Deck. You could also use the bttcli interface to do something similar.
For what it is worth, I did some experimentation with TSCG's a while ago, and I was never fully able to get dynamic paging to work the way I wanted it to. I haven't ported my BTT Stream Deck setup to the new config system yet, but I'm pretty sure it will be better than the older config system.
I agree the Floating Menu stuff seems to be the right way forward. However, at the moment, I don't really want to port all of my Stream Deck config to a new system — I just want widgets to only render when their specific TSCG is selected.
I get not wanting to change over.
If it is of any help to you, back when I last looked at using multiple TSCG's, I was doing it in javascript using the "Activate Stream Deck+ Touch Screen Configuration Group" action. At the time, it appeared that
- There was no corresponding way to close a TSCG.
- Using the Activate TSCG action closed any open Stream Deck Group, so that I found I needed to first change the TSCG if I was going to do so, then to close/open any Stream Deck Group(s) that needed to change.
Out of curiosity, I would have thought that a widget script would only be active (that is, would only run every 0.5 sec or whatever) when the TSCG was active/enabled, and that disabling the widget using the advanced conditions would also disable the widget script. Is this not the case?
Also, when you say "shell script", do you mean a shell script invoked by the widget script? Is this a long running shell script, or does it run to completion quickly and return data once to render? Is the rendering when the widget is disabled for a short time after the disable condition (which I can see as something like a race condition where the disable happens but there is already a script invocation in progress), or does it happen continuously/many times long after the disable condition?
And all that said, I'm not sure that I can be of any help here, but I'd be interested to see what you are doing if you feel like sharing a preset, as I learn a lot from seeing how others are using BTT.
Can you check whether 6.727 alpha (uploading now) helps with the Touch Screen Group issue?