CONTEXT: My main usecase for Krita is seamless texture painting for 3D game assets and as such I needed a fast way to basically palettize my creations, to get more variety out of my textures with the least amount of overhead. So I use fill layers almost exclusively for most of my work. I add a new fill layer in for each color I need, hit delete to clear out it's contents and start painting on it with white to get my detail and I rely solely on opacity for blending colors together. Here is an example of a practice project I was working on just yesterday made exclusively with fill layers: https://mega.nz/#!cddVDQSR!BR3tKKiUSJ4LSEI65N0IoQXrp6yZK8ul9UHeixIlM8I PROBLEM: This works really well for my needs with one exception - changing fill color takes a minimum of 5 clicks and several seconds in the current setup. Making it the major bottleneck in my workflow. PROPOSED SOLUTION: I basically only ever use white (and maybe sometimes black, using x, instead of switching to eraser mode) with my brushes when painting this way, making the color selector dockers kinda useless in the current setup. But if they were switched to display and set the fill color when a fill layer is selected, that would speed up my workflow substantially and breath new life into some useful dockers that are otherwise going to waste for me currently. POTENTIAL PROBLEMS: 1. There could be some users out there who insist on painting with a mouse, and they may actually get some use out of the current grayscale color selectors for the brushes that are currently presented while working on fill layers. Because of this I would propose making the color selector behavior a user preference setting, so each user can decide if they prefer using those dockers for grayscale brush color or for fill color. The current behavior can even be left as the default, since I am sure I am in the minority I would be fine being the one who has to go into the preferences and enabled this preferred behavior. 2. Regular brush color choices should still be maintained in the background for use when switching to just about any other layer type to avoid inconveniencing those who work in a more mixed layer type environment. But should switch to white and black when a fill layer is selected if the user has chosen to use the color selector dockers for fill color. I would suggest having two sets of brush colors for this setup - one for paint layers and the like and one for fill layers and switch between them to fit which layer type is currently selected to work on. ALTERNATIVE SOLUTION: If changing the behavior of the existing color selector dockers would be undesirable, I would be happy to settle for a new docker meant for the express purpose of changing fill colors that could be used to replace the default advanced color selector docker in a custom workspace.
Couldn't figure out how to edit the OP, but noticed after I posted it that I uploaded an older version of the texture from before I got around to properly naming all the layers. So here is an updated version: https://mega.nz/#!cMMDjIIY!IF8lNtoH1mSqNw994QsJzj1JxI2QYfv_IbBo_Qf3Sao Just makes it a bit more clear what the colors/layers are being used for.
In my opinion a button that changes function depending on the layer you are on could generate confusion. However i see what you mean by the huge amount of clicks to get the color you need. This would need discussion as to how to implement it to reduce or eliminate clicks. Ideally (my idea) one would press a button that would popup a colorwheel, and changing the color wheel color would then change the color of the fill layer.
It shouldn't be a button toggle. Ideally the color selector dockers would just automatically respond to layer selections. Defaulting to brush color for all other layer types, and only switching to presenting fill color when a fill layer is selected. There appears to be code in place for the color selector dockers to be context sensitive to the type of layer selected. As it already switches to gray scale values any time you select a fill layer. So it should be a fairly minor change. Just requiring a way to tie the selected color to the fill layer color instead of the brush color when a fill layer is selected. I just suggested making it something that needs to be enabled in preferences in the OP as a way to minimize any adverse effects on those who actually take advantage of the current gray scale brush color selector setup for whatever reason. Not sure who they would be, since painting on a fill layer is best done with white and relying on brush opacity. The example file I posted above was done entirely with the brush color set to white as were the other dozen or so textures I've painted in this fashion previously.
I think would agree with Ian: it makes more sense to select the color for the fill layer than the level of grayness for the brush, given that opacity also works fine for editing the fill layer. I have to say, I have never seen anyone use fill layers like this, though :-) (As for how easy it is, the color selector reacts to the colorspace of the currently selected node, it's not exactly easy to override that, and then to make the active fill layer react to the color selector.)
(In reply to Boudewijn Rempt from comment #4) > I think would agree with Ian: it makes more sense to select the color for > the fill layer than the level of grayness for the brush, given that opacity > also works fine for editing the fill layer. > > I have to say, I have never seen anyone use fill layers like this, though :-) > > (As for how easy it is, the color selector reacts to the colorspace of the > currently selected node, it's not exactly easy to override that, and then to > make the active fill layer react to the color selector.) Heh, ya, I haven't seen anyone else doing this yet either, and it took me a while to realize that fill layers basically have built in transparency masks. It really blew my mind when I first figured that out and instantly got me thinking about trying out this method of basically pseudo-palettizing my textures! And I've been loving it since, with the exception of the clunky color changing which involves hitting f3, opening the color picker, selecting my color, hitting ok to accept it, and then closing the layer properties window. A while ago I tried to figure out how dockers work to possibly throw together a simple one for setting fill layer color, but I am way too unfamiliar with the code base and the GUI toolkit stuff to have any clue about where to even begin with that. But then the other day I found myself wishing I could just use the existing color selector dockers which have just been taking up space in the UI for me for a while now, which got me thinking I should throw the idea out here and see if it might gain any traction. Here is another example file of a practice wood grain texture I made a while back. Just added some layer groups to better organize it. It's a bit on the big side. https://mega.nz/#!YA1V1QhL!aSn4AAqMXsBD9FXOX70PcnqNzPzoucbBE9firgZki6M
(In reply to Halla Rempt from comment #4) > I think would agree with Ian: it makes more sense to select the color for > the fill layer than the level of grayness for the brush, given that opacity > also works fine for editing the fill layer. > > I have to say, I have never seen anyone use fill layers like this, though :-) I disagree. The color selector is supposed to select the color of the brush tool, and tools are supposed to work seamlessly regardless of layer type. If you select the gray color, you can make any paint layer gray, and any mask 50% alpha, and you can make a fill layer's mask 50% alpha. if you changed this only for fill layers, then you would need to create a custom brush to force 50% alpha just for fill layers. You wouldn't be able to use the same brush you use in a normal layer or in a transparency mask layer. The use cases are limited but I believe painting with a gray brush should make the alpha 50%. It's how it works in Fire Alpaca/Medibang, for example.
I found myself thinking about this some more, in particular about alternative approaches to get to the desired result of making it easier to change a fill layer's color. Since using a docker seems to complicate things to the point of this problem never being addressed, perhaps an easier alternative would be to just add an entry to the shortcuts options that would allow bringing up a color picker pop-up specifically for changing the currently selected fill layer's color. It can be left unassigned by default, something that has to be set manually by folks like me who want to exploit the fill layers to their full potential. I've been making it a point to leverage shortcuts a lot more recently, which got me thinking of this as a potential solution to this issue. It would fit well into my workflow and shouldn't need any big UI modifications. It could even potentially reuse the color picker pop-up that already exists, with the primary change to this version being that it targets the currently selected fill layer's color instead of the brush color. If a fill layer isn't selected it can just silently fail to open the popup. As to where to place it and what to name it in the Krita settings manager, I ultimately leave that up to the developers if this solution is even implemented, but my suggestion would be to put it under Krita > Layers in the shortcuts settings, and I'd probably name it something like Fill Layer Color Selector.