Buli Brush Switch

One more thing. There seems to be a little discrepancy in the icon display.


Here I’m painting right now, yet your icon shows the eraser. Shouldn’t they be the same? Also what’s the purpose of the button of you plugin being blue once I click it?

There are a few confusing things still.

When I start Krita, icon configuration is like this.

When I start Krita, the brush is active (the one closed Krita with). Now, when I hit “B”, nothing should happen as I’m already using a brush. Instead the brush of the plugin gets selected, which is the originally selected brush (this one should now also hold the last used brush that I closed Krita with). When I hit “B” again, I’m back to the “Krita” brush.

When I hit “E”, it switches to the default eraser of your plugin (Eraser Circle). I then select a different eraser (e.g. a soft one) and hit “B” again. I’m back in the plugin brush (not in the Krita start brush any more). When I know hit “E” again, I’m back in the default plugin eraser (Eraser Circle) and not the soft one, which I chose earlier.

As you can see, this is very confusing and it’s even hard to reconstruct mentally what’s going on.

So here are my suggestions.

*) Have a “trigger” eraser slot and a “trigger” brush slot by default - the ones I could assign my “E” and “B” to by default. They will always hold the last selected brush and eraser, and when I close Krita, the last selected ones will be saved there as well. On the initialization of the plugin those slots need to be filled with either the actual eraser or brush (if the tool is active) or some default brushes that come with Krita.

*) When I hit “E” now and a “non-eraser” is active, the “Trigger Eraser” is selected with whatever eraser is in there right now. When I hit “E” and and eraser is active the “Trigger Brush” is selected - as I mentioned above, I like this flip-shortcut-function.

*) Analogue the brush selecting should work.

*) On top of the two default slots, you can add other slots like you have it now. Basically improving on the Ten Brushes addon, by doing so.

I hope this makes sense.

1 Like

Probably possible… but as I already tweaked a bit the shortcut system, I don’t feel comfortable to override an existing shortcut…
I’m adding this to the TODO list, at least to test if it’s possible and check results…

That’s clearly a regression.
I need to check that.

I have to test on windows, on Linux I don’t have the problem

Yes, current toolbar button is a cosmetic improvement I have in the todo list; currently not a big issue to use the plugin, so I keep that for later

Icon is showing brush according to defined Button selection mode option

When it’s blue, it means the current brush has been selected from plugin, and plugin is currently active to manage brush
When it’s not blue, it means the plugin is not active and Krita manage the brush

More information on Brush selection
But maybe I’ve to rewrite it :thinking:
I wrote documentation quickly :sweat_smile:

The plugin works in a simple way.

Select a brush from plugin: plugin is active (button is highlighted in blue)
Select a brush from Krita: plugin is inactive (button is not highlighted in blue anymore)

So, to activate plugin you can:

  • Use shortcut
  • Click on brush in brush list
  • Click on icon in toolbar

So, to deactivate plugin you can:

  • Use general shortcut (if it has been defined)
  • Use the same shortcut than current plugin active brush
  • Click on active brush in brush list
  • Click on icon in toolbar

When plugin is active, brush properties defined by plugin are applied.
When plugin is deactivated, all change made on brushes are discarded:

  • Krita’s last brush values (size, opacity, color, …) are restored with their values
  • Plugin’s brush values are reset to the default one defined in brush setting (modulo some exception defined by options)

So once plugin is inactive (for example, you’ve selected another eraser from Krita’s presets) that’s normal that hitting shortcut “E” activate the default eraser from plugin again (if shortcut “E” has been affected to plugin default eraser brush)

The plugin is not aimed to memorize the last used brush.
I’m telling it’s not possible to implement, as it’s possible through option to keep in memory for a brush changes made for color/tool/size/opacity/… it’s possible to add an option to tell “for this brush definition, when user change Brush from Krita, keep it in memory and don’t deactivate plugin”
=> I put it on my TODO list (but clearly that’s something I’ll probably never use - too complicated to my brain to change brushes all the time, I need fixed things to not be lost :sweat_smile:)

Just for now, I already spent too much time for this plugin, I already promised few weeks ago -before starting to work on this plugin- to improve JPEG Export plugin.
I also have other plugins on which I stopped everything :frowning:

So I’ll work on another stuff and come back on this one in one week or two.
Need also more feedback from users, maybe there’s some other bugs to fix, things to improve, or different point of view to take in account.
And it will be better and easier (for me) to spent few days of work on one plugin than working on many plugins at the same time :slight_smile:


1 Like

I think it can include gradient, fill and colorize mask tools. Although it doesn’t make sense in most cases, there are also situations where erasing is necessary.

Don’t worry. It works once you click all the buttons in the right order. You just have to get used to that routine before starting to work. There’s only the little risk, that people might shy back from using it, because it’s just too confusing as it is now.


I just took a quick look.

The problem is clearly from the database resource file, I can get errors too :sweat_smile:

Resources name in your old database were stored with underscores, and for what I understood, it’s not normal.

(from this post on which weird things occurred with BuliNote due to invalid resources from database, Buli Notes - #66 by tiar)

Underscores has been replaced by spaces at a moment.

For what I can see, your database has been created with a Krita 5.0.0-prealpha; so for what I can tell and understood, your database has been built with a version of Krita, and now using a krita version that is not “totally compatible” anymore (at least, plugin is clearly not compatible :woozy_face:)

So I won’t spent too much time on this case: reset database fix the problem, and it’s recommended for whom use “very old” Krita 5 database to reset it:


I already have to check what @dweller asked me:

Is it related?

Could you be more precise?
I really have difficulties to understand relation ship between brushes, gradient fill, fill, mask tools…


I have to write better documentation
Myself I’m not really satisfied with what I wrote, but writing good documentation takes times and english is not my native language, so sometimes it’s very hard to explain things :sweat_smile:

But in my logic, plugin is simple to use :slight_smile:
After between what I’ve implemented and what you was expecting about how user interface would be, it can be harder to understand what I’ve implemented…


1 Like

Let’s say the complexity fits Krita very well :wink: And the easier the plugin is to understand, the less time you have to spend on documentation. Maybe also something to consider. I’d rather use a plugin than to dig through a documentation to understand it.

Why not make a short video showing how it works?

Sometimes seeing is better than reading.

These tools inherit the blending mode of the brush

In other words?
Your explanation is not understandable for someone like me that don’t understand what we are talking about.

Please even if I’m used to help people here I don’t have an absolute knowledge of Krita, and especially brushes are one thing that for miscellaneous reason I usually don’t look at…

Is it so difficult to provide some detailed explanation? :woozy_face:
An example of what a “mask tools” is?
What is the “fill”? the fill tool?
How to use it with brush?

Which brushes I can use and what situation I can reproduce to modify this “mask tool” or “fill”?
Screenshots are always welcome too :slight_smile:

I’m open to try to improve plugin, but I can’t guess what people have in their mind.
A minimum explanation and example is needed :slight_smile:

Also, I didn’t really had time to took a look on examples provided from @dweller so maybe it’s the same thing, I don’t know.
But here I don’t have the time to search to understand what is asked to implement…

Short story about relationship between developers and users

At the office, few days ago, business users weren’t happy to see that in new the Excel file produced by accounting software, there was only 3 worksheets.

  • “Where is the 4th worksheet!?” they’ve asked
  • “Which 4th worksheet are you talking about?”
  • “We should have 4th worksheets in the excel file! One is missing!”
  • (Looking business requirement document -BRD- provided by business to developers)
    “In BRD, it’s asked for 3 worksheets only”
  • “Yes, and what? you should have understood that we need 4 worksheets”



1 Like

I think @TheTwo is talking about tools of krita. In my earlier post, I talked about the option for the brush to use gradients for its color. When a brush uses gradient, it cannot be used like the gradient tool, just use the colors in the gradient. I think this explains a lot better than my words :sweat_smile:

you can try this brush

I made it because I use my mouse. :smiley:
you can choose a gradient here and try out different colors. you can ask me more questions too if you have any.

1 Like

Many thanks! :slight_smile:

I’ve downloaded it, and saved it with my TODO document for this plugin.
I’ll take a look on it to understand how it works and what can be done to take this in account.


1 Like

That’s an idea.

Need to take time for that…


1 Like

Sorry, I always simplify statements because I am not good at English.I also thought that the following words were not asking me…… :sleepy:

I was suggesting adding more tools to “use speciic paint tool”.
For “gradient fill” and “fill”, attributes such as brush strokes are no longer important. But these two tools will use the blending mode of the selected brush. For example: you select an “eraser” brush, “gradient fill” and “fill” will become erased pixels. There are also some other combination methods, such as a radial gradient plus a brightening blending mode to form a luminous preset

For the colorize mask tool, it simply clicks to create a corresponding mask layer. Then use the brush of your choice

My understanding is that “brush” is a sub-tool of “tool”. The tool for drawing pixels has been using various settings of the brush (even when you want to draw a rectangle, you need to choose a suitable brush)
I think there may be an integrated resource in the future, integrating tool opinions and brushes (gradient should be integrated inside the brush, for tip and source)

I’m not really good with english too, often need to be helped with google :wink:

No worries :sweat_smile:

Basically, when a brush is selected, the plugin just:

  • Select brush from presets
  • Update some properties like size, opacity, color (according to what is defined on brush settings)
  • Activate the tool if one is defined

In tool list, I only defined tools that directly use current selected brush to draw.

Gradient tool, Colorize mask tool, Fill tool depend of color or gradient color, but are not really related to current brush.

I think adding it to this plugin would be more confusing.

I mean, does it make sense to select fill tool when choosing a brush?


This merge request is interesting.

I understand the idea of quick access to some predefined tools settings.

So, does it make sense to select fill tool when choosing a brush?
→ No

Do it make sense to have some tools like fill tool or selection tool with some predefined preset
→ Yes

But for me it’s more another plugin, or an extension of current plugin:

  • having a dedicated button for tools
  • having a dedicates window settings for tools

But if there’s a WIP for an integrated user interface in Krita about that, it’s better to wait for it :slight_smile:
Especially if the docker allows to define presets for tools and these preset could be accessible through API, maybe plugin can add something more, I don’t know.


Colorize mask tool can correspond to different brushes. It does not only support round pens.
I don’t think there will be confusion, it just has three more options. People don’t understand that it is not the reason for the plug-in, but the way krita works. At best, they avoid options that they don’t understand.
Conversely, it can also be understood as “choose a brush when selecting fill tool”.As mentioned earlier: “brush” is a sub-tool of “tool”. It is the same whether you choose a brush or a tool first. They are not separated.
For gradient, there can be radial light effects and linear erasure. For fill, it is mainly erasure, especially the upcoming improvements in version 5.1

I have never used it. My guess is that it only contains tool opinions and does not bind the brush.
It may be possible to bind through plug-ins, (some off-topic) but my final idea is to use it as a resource type. It includes tools, tool opinions and brushes (brushes contain gradients). In this way, we can share things like “line brushes with different anti-shake”, “circles formed by petals”, “gradients erased from the outside to the inside” and so on. Krita has the ability to combine freely, but lacks the means to group them and share them.

I was wondering if it is possible to assign multiple brushes per hotkey (it would behave as cyclic list - where each tap at hotkey. goes to next item).
This way we could eg have something like this:

  • ‘1’ key → cycles through one or more pencil brushes
  • ‘2’ key - we cycle through paint brushes
  • ‘3’ - we cycle through FX brushes (or texture brushes) etc.
    This way if user assigns one brush per hotkey it would behave ‘old’ way, but if you assign more than one then we could have cyclic brush list behavior.

Love this, hope they implement it in the official program