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.

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.

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'?