How to create new Brushes to Toolbar with the Builtin_Brushes but with custom settings/different brush data?

bforartists_oKLc6aF4lX

I’m currently doing experiments to try create new brushes to expose some to the top level - ej, more brushes in the toolbar in Weight Paint, Texture Paint, Grease Pencil, etc.

But I can’t seem to figure it out.

Experiments

I have found some options, all failures:

  1. A button that create a widget, another operator runs a watchdog of that widget and it, and when detected, it can run a set of operators to “set brush settings”, but it gets stuck in that mode as it’s a modal operator and won’t switch back to the brush and it’s brush-data I would like to use. I can’t trigger a toggle to go back to former eg. draw brush to use those settings I just set from the toolbar.
  2. A script that sets the active brush-data to pre-sets, but I can’t trigger scripts from the toolbar, only from another panel and act once custom buttons - still not in toolbar.
  3. A duplicate of the builtin_brush ID, all good, but the settings and active brush data is identical and useless (double entry of the same). I can’t customize which index the builtin brushes will use from the toolbar
  4. I dug the code to compile duplicates, new libraries, new brushes - but the code for the brush library is spread out very thinly accross multiple documents. This is hard to maintain and near impossible to figure out.

Goal

A duplicate of the eg. draw brush and brush data library, but that toolbar button triggers a different brush data from the library with it’s own settings.

Eg. Weight Paint has mix, subtract, add. I would like a brush that has mix, subtract, add with their own icons and on the top level of the toolbar for ease of use (instead of using a drop down to toggle brushes). I would like to then compile builds with this.

Question

Is there a way to create a brush that accesses the builtin brush libraries but with a custom index or filter or settings toggles so that I activate the tool, it activates a different brush from the same library - directly from the toolbar?

Or, How can I make a new (similar to builtin) brush with different settings at the top level?