Solving the issue of persistent TouchBar Buttons: Priority Levels

Persistent TouchBar buttons are a common feature in many presets, but are only made possible by having a duplicate of ALL the buttons in EVERY group. This implementation can greatly bloat the preset, drain battery (as widgets need to reload) and can be a pain to copy into every single group of your preset.

This issue has also been expressed in these suggestions:

@GoldenChaos's take on the issue focused on efficiency, while @liamb wants to easily reuse / copy-paste his persistent TouchBar Buttons.

I've just come up with an idea that I see could solve all sides of the issue: Priority.

Show Original Idea

An Additional dropdown positioned near the 'Stick to Left/Right/scrollable container' can set the positioning priority of the edited button. It's options include:

When the trigger is in an app or conditional activation group:

  • Priority: Always show in this app, Position Before other triggers
  • Priority: Always show in this app, Position After other triggers
  • Default Priority. (current behaviour)

When the trigger is in global:

  • Priority: Always show everywhere, Position Before other triggers
  • Priority: Always show everywhere, Position After other triggers
  • Default Priority. (current behaviour)

If set a priority, the trigger will always show even if a group is open.

Position Before/after other triggers describes how it is added if another group is open.
e.g: PriorityTrigger is [stuck to left] and a group that contains stuck-to-left triggers is opened. Will the priority trigger be added after those left triggers or before? You can set this using the position value.

If priority is set for a global trigger, it will always show in all apps, all groups, everything. If you only want it to show everywhere within a certain app or conditional activation group, move it inside those groups and set the setting accordingly. It will change to 'Always show in this app' instead of 'Always show everywhere'.

An additional box labelled 'exceptions' provides a place where you can type in group names where this trigger will not appear. e.g. if this priority button opens a group and you want to change the look of this button, you can exclude it from the group it opens.

I'm not sure If I communicated this properly, so if you have any questions or would like to discuss elements of how this will work then feel free to post a reply.

EDIT: since BTT alpha 2.667, a 'Display Order' number box appeared. Though it takes a bit of trail and error to figure out how it really behaves, it's a much simpler implementation than my initial idea.
The only thing left to do is make that exclusion box! :wink:

Also a side note for @Andreas_Hegenberg, It's not really important but maybe the 'advanced' vs 'normal' configurations should be redone. As you can probably tell this feature would be 'truly advanced', while stuff like corner radius and colours aren't that advanced. Maybe these should be seperated, say into 'aesthetic config, advanced config'?

Feature added in BTT 2.667 alpha!

You can now set 'display order' in every BTT trigger to prevent the triggers from mixing up if they're mixed in from CAgroups.

@Andreas_Hegenberg, Could you maybe add something like this?

I'd also like if we could set display order to negative (-1), etc and decimals (1.2).

i'd use -1 to set the hierarchy for left side widgets, and + for right side widgets.
and the decimals to differentiate levels, e.g. 2 will be the Control strip, 2.1 will be any dynamic elements related to the control strip, 1 would be notification widgets, etc.