Ability to link brush settings to layers

Apology in advance if this feature is already implemented or if the request already exists. I did a search and could not find anything.

Maybe this is just my workflow, but when working, I usually jump between sketching on one layer, inking on a second one, and shading on a third one. As a result, going from one “stage” to the other always end up being a two-step process where I switch layer first, then tweak my brush settings before I can start drawing. I would find it super useful if brush tool settings could optionally be “stored” by layer in such a way that when I switch active layer it would also switch my brush tool settings to what they were for that layer.

I did not go as far as trying to figure the UX for such a feature, but first I would like to know what you guys think about the problem this is trying to solve. Am I the only person working this way, or do you feel you could also leverage such a feature?

Hi @douglaslassance

No, currently there’s nothing like this.

The closest feature for this is currently provided by plugin Buli Notes, available only for Krita 5.
It allows (among others) to store brushes in notes, with quick access to brushes.

Notes are stored inside kra document, but it’s possible to export/import them, so possible to reuse same notes through different documents.

Being able to link brush to a layer is interesting, but unfortunately that’s currently not possible to implement through plugin: API doesn’t provide a way to be informed when active node is changed; you can only ask which node is active.
And even if it’s possible to ask which node is currently active, I don’t like the idea to poll every X milliseconds for this.
So currently, it’s not possible to implement.

Grum999

1 Like

Note: I started few month ago to write a list of API improvement, that is not yet published due to lack of time; I add to it the idea of having a signal to be notified when active layer change because that’s something that could be very useful :slight_smile:

Grum999

Maybe just make a Phabricator task with that list? You (I think) will be able to change the task description so it’s possible to edit it later, but in case someone wanted to work on that, we will have the list ready. What do you think?

I have to create it here?

Even if it’s not finalized?

Grum999

Thanks for your answer @Grum999. I guess my story ends there if it’s not possible to detect active layer change. If that was available I guess a plugin could correlate brush settings stored in notes to a layer id. I feel UX-wise you would also want a little button to activate or deactivate the layer saved brush.

This is already possible to implement.
The thing that is currently not (properly) possible to implement is to switch brush automatically when layer is changed…

What I see is:

  • One layer = 0 to 1 brush
  • One brush = 0 to N possibles layers

And need to keep in mind that 0 to N notes can be defined for a document.

So the little button won’t be easy to implement…
If signal about changed layer exists, a serious analysis of how to add this functionality in plugin have to be made :slight_smile:

But that’s not for now for sure, but maybe in few month, who knows…

I’ve added this idea in my todo list for this plugin; can’t guarantee when it will be possible to implement, but if it’s one day possible, it’s in my todo :slight_smile:

Grum999

If by “not finalized” you mean “if it’s not the full list yet, I will probably have more things to add”, then yes (let’s say, if the list is bigger than one or two items :stuck_out_tongue: ). Unless you mean something else?

It may not be that thing completely, but if you switch the layer, you can also toggle the last two active brushes with / on the Numpad. At least you won’t have to “search” for the last brush and can switch this way. Or use the Ten Brushes script and set your brushes up to Ctrl+Shift+1 (Pencil), Ctrl+Shift+2 (Ink) and Ctrl+Shift+3 (Paint) and toggle them that way for example. Hope it helps at all.

Yes :slight_smile:

Currently I’ve 9 idea to improve API, but I think I have to add other features in this list because many thing could be improved on this part I think.
Just no time to work on it (in low priority even on my side :cry:)

But I think I can already create a phabricator with this list.
And when I’ll have time, maybe create another one.

Created:
https://phabricator.kde.org/T14613

Grum999

1 Like

That’s a descent workaround. Do the brush shortcuts remember color and size?

Color is global, so no. But the indiviual brush size will stay within the brush you have selected, so it should at least help you save some time. :slight_smile:

1 Like

Would it not be best to press a button to spawn layers with name protected identifications and have them set to each layer? This idea sounds like it will clutter the layer stack immensely.

1 Like

I would like to use .notifier() to create various auxiliary scripts, but I found it inconvenient that the current .notifier() function can only receive a limited number of signals.
If .notifier() can receive signals for layer operations, I think it will be very flexible.