First off, let me just say that I've been a happy Krita user for about two years now. The program just gets better and better with features that completely make sense for an artist, most of the time replacing gimmicks other programs have with ingenious functionality and features. However, not everything is as fluid workflow-wise as it could be in some aspects.
Let me start with the small stuff first:
- I always found that the layer mode options, while very comprehensive and with options other programs don't have, is a bit too complex due to the several tree menus and the fact that the most used mode are hidden in submenus and some ways of navigating through the multiple modes (such as using your cursor keys), don't select everything. Also, returning to normal mode is also a chore, since said mode is hidden in yet another tree menu. Sure you have the favorites section, but that is also a tree menu. I wonder if it would be possible for a simplfied version of the layer mode thing be put as the drop down menu, with a more comprehensive one as either another docker or something else.
- I don't know if people have issues with this or not, but the brush overlay menu could be more customizable. It's a bit strange you can't change the type of color wheel it uses or change between foreground/background color or select between the two from it.
Now, the request(s):
I don't know about you, but I tend to rotate zoom and flip images a lot while I work on them. Problem is, this takes too long to do even with shortcuts and sometimes you can't get the sort of "granular" control you want, especially when rotating images. Since the overlay color wheel with up to 10 tools of your choice has proven (IMO) to be a success, I propose something similar with the pan/hand tool. So far, I've only seen one program with this feature, which is OpenCanvas.
Here's a mockup of a possible look for it:
This overlay would be activated upon panning (middle mouse press) and give you the following options:
A. This, which I will call "rotation dial" works by allowing you to rotate incrementally in real time in any direction. B. This will do the same, but for zooming. The '+' and '-' elements on each end could also be used for zooming in and the amount of increment could be configured somehow or be the same as the regular zooming shortcuts.
As for the numbered items. 1- Returns the canvas to its original state. 2- Rotates canvas 90º clockwise or to the right. Rotation state is reflected on the rotation dial. 3- Rotates canvas 90º counter clockwise or to the left. Same as above in regards to the rotation dial. 4- Rotates canvas 180º. Same as above in regards to the rotation dial.
1- Centers canvas on drawing area. 2- Flips canvas horizontally. 3- Flips canvas vertically. 4. Changes canvas zoom to 100%.
The main use for this would be allowing the artist to mostly concentrate on the drawing and do things like rotations and flipping faster and in a more accessible way, also in canvas mode. A similar overlay could be made for layers as well, so you don't have to leave canvas mode to do add layers or things like that.
One of the reasons for this feature is more to help people who have a limited screen real estate to make more use of the canvas, as the Krita UI has large buttons that can't be resized or, if they can, they still reside inside larger boxes that can only be resized so much, to the point that the UI limits how much space you have available for the canvas. Sure, the overlay may not be extremely necessary for cases where you don't need these tools, but they would be a click away when necessary and, a lot of times you do need those accessible faster.
Of course, the overlay is not without its issues. Much like the one inside OpenCanvas, hovering the cursor over it whilst panning can activate buttons of it and trigger a unwanted zoom or rotation (the latter more often than the former) and the relations between zooming using it and the regular zoom shortcuts are not clear, as in, should the slider reflect the amount of zoom or should it be centered in the current amount of zoom and what you get is just +/- X amount of zoom on either end of the slider?
This suggestion much came with the fact that Krita lacks a rotation tool and the shortcuts and option for rotation are hidden inside a submenu, on top of no easy "custom rotation" option being available. Sure, you do have a custom rotation option in the menu, but you have to enter the amount of rotation manually and, often, you have no idea how much you want to rotate anyways.
1. Still can't do the whole color changing thing, trade background for foreground, etc. 2. Would be nice to have stop points at 90, 180 and 270 degrees for 'rotate 90º left', 'rotate 90º right' and 'rotate 180º', which would replace vertical flip. 3. Still the same triangular color wheel and I don't see any options to change it. 4, 6. It's good to know that these will be there. 5. While a button to enter and exit canvas mode is nice, that could be maybe 'new raster layer' or something like that. Or a small pop up menu for layers.
1. Still can't do the whole color changing thing, trade background for foreground, etc. 2. Would be nice to have stop points at 90, 180 and 270 degrees for 'rotate 90º left', 'rotate 90º right' and 'rotate 180º', which would replace vertical flip. 3. Still the same triangular color wheel and I don't see any options to change it. 4, 6. It's good to know that these will be there. 5. While a button to enter and exit canvas mode is nice, that could be maybe 'new raster layer' or something like that. Or a small pop up menu for layers.
Just wait for Python to mature within krita and you will have templates for any type of popup you want... My "Color Pickin' Pro" is an app designed as a popup, and I probably will port it from wxPython to PySide/PyQt here soon, and make a few templates for users that want to customize things. Same can be done for the default pop-up, but you need to know that images are necessary to the creation of these things, and masking, they just dont make themselves. Layout planning is helpful, as portions of the mask are used for different things. It can get quite complex as you see.
Metallicow wrote:Just wait for Python to mature within krita and you will have templates for any type of popup you want... My "Color Pickin' Pro" is an app designed as a popup, and I probably will port it from wxPython to PySide/PyQt here soon, and make a few templates for users that want to customize things. Same can be done for the default pop-up, but you need to know that images are necessary to the creation of these things, and masking, they just dont make themselves. Layout planning is helpful, as portions of the mask are used for different things. It can get quite complex as you see.
That is both good and concerning at the same time. As it's not sure if "mature" in this case means "intuitive and easy to use and learn, even for a person who has never programmed before" or "so complex and intricate that most people, except ones with programming experience, can understand and use it", especially considering the latest change in the mission statement of the project.
There is an option to get the triangle changed, but it is hidden for now (You need to add popuppalette/usevisualcolorselector=true to the top of the kritarc), because the color selector that replaces the triangle is still a bit buggy.
the most used mode are hidden in submenus
We actually have the most used modes marked as favourites by default. If that is not the case on a new krita installation(with new kritarc), then we have a bug.
Regarding the pop up palette, I am almost starting to wonder if it is not better to have a handful of favourite actions and give people the ability to set those on the palette. It would need a lot of design though, the thing will otherwise start looking like a space ship interface
TheraHedwig wrote:Regarding the pop up palette, I am almost starting to wonder if it is not better to have a handful of favourite actions and give people the ability to set those on the palette. It would need a lot of design though, the thing will otherwise start looking like a space ship interface
Which is why I suggested those options to be on a separate pop-up instead, and associated with a shortcut that does an action related to what you're getting.
MR4Y wrote:That is both good and concerning at the same time. As it's not sure if "mature" in this case means "intuitive and easy to use and learn, even for a person who has never programmed before" or "so complex and intricate that most people, except ones with programming experience, can understand and use it", especially considering the latest change in the mission statement of the project.
I was suggesting "mature" more or less as the community in general. Python is still new with krita, so plugin developers will probably come across certain issues/limitations. Once most of the python developers get some plugins out, It will be a lot easier for someone new to programming to grasp the "idea" of what they want to do with the language. Python is by far considered the easiest "learning" language for beginners. The language is based on indentation and easy to read code, tho ugly code is possible. The interpreter is basically bullet-proof, but as with any programming language, it gives you the power to shoot yourself in the foot, so basic knowledge of python is a requirement. Also the GUI kit(PySide/PyQt) is a library/bindings for Qt for python programmers.
The majority of plugin writers will fall into two basic catagories. Automation of simple tasks exposed in pykrita api and those who prefer to write brand-new/custom tools. A project such as this popup is a blend of those two.
Of course, if you prefer to do the majority of the design work, masking and so forth from krita, many folks will help you with implementing the coding side or at least steer you in the right direction.
And I'm sure others will help in the community by writing tutorials also. I'd say give it 6 months to a year and there will be a good bit of code/plugins that will do various things. Your mockup/design is the first step to achieving your goal or spaceship thingamajig.
Porting of the default built-in popup would require you to know basic C++, so I would not recommend it for a beginner. Start with a basic circle with one function and work your way up from there.
Metallicow wrote:Porting of the default built-in popup would require you to know basic C++, so I would not recommend it for a beginner. Start with a basic circle with one function and work your way up from there.
Well, then I don't expect myself, nor the majority of non-tech savy artists to even take a look at the scripting system, since now you have to learn two programming languages.
Metallicow wrote:Porting of the default built-in popup would require you to know basic C++, so I would not recommend it for a beginner. Start with a basic circle with one function and work your way up from there.
Well, then I don't expect myself, nor the majority of non-tech savy artists to even take a look at the scripting system, since now you have to learn two programming languages.
No, that isn't what I mean't exactly. I'm trying to say that everyone has to start from somewhere. I started with Python, wrote a code editor, which gave me a lot of insight to different languages, and I decided on sticking with Python for the full run. It doesn't mean someone who learns another language cannot do the same thing. For example if you would like a complex task, you could port our interface from embroidermodder to a CAD layer that imports formats that even WilCom's $17000 software cannot, as the library is free for anyone to use under zlib. My brother started with the C family in before he ever started college, as a self learner, so am I, but I was a printer at the time and an indented book changed my views, so there are many ways to start out, I am just following the paths that where best brought to me at the times. So I do not try to push you away from trying.
If coding isn't your thing, that's ok. I once was like that. I'm just trying to help you see your request through... whether that be by just asking for it to be implemented or have someone else come along and help you do it or wait for a core dev to clean up the loose strings. We are all here to help one another.
Metallicow wrote:Porting of the default built-in popup would require you to know basic C++, so I would not recommend it for a beginner. Start with a basic circle with one function and work your way up from there.
Well, then I don't expect myself, nor the majority of non-tech savy artists to even take a look at the scripting system, since now you have to learn two programming languages.
No, that isn't what I mean't exactly. I'm trying to say that everyone has to start from somewhere. I started with Python, wrote a code editor, which gave me a lot of insight to different languages, and I decided on sticking with Python for the full run. It doesn't mean someone who learns another language cannot do the same thing. For example if you would like a complex task, you could port our interface from embroidermodder to a CAD layer that imports formats that even WilCom's $17000 software cannot, as the library is free for anyone to use under zlib. My brother started with the C family in before he ever started college, as a self learner, so am I, but I was a printer at the time and an indented book changed my views, so there are many ways to start out, I am just following the paths that where best brought to me at the times. So I do not try to push you away from trying.
If coding isn't your thing, that's ok. I once was like that. I'm just trying to help you see your request through... whether that be by just asking for it to be implemented or have someone else come along and help you do it or wait for a core dev to clean up the loose strings. We are all here to help one another.
My personal problem with scripting libraries in most free programs (GIMP, Blender, etc.) is that the documentation often is either too low level, outdated, non-existant or not comprehensive enough. And that's when it's not all at once.
But I'm talking more about your regular artist. Someone who just wants to do art. Maybe they're earning a living with art. They just happen to like Krita and start using it. Then they learn that the UI is customizable via scripting with a language that, in theory, is easy to learn. So they decide to invest a bit of their time (In which they are losing money on top of that) to learn it...only to find that they can't do certain custom things without having to learn another programming language that's harder, several levels of magnitude more complicated and requires considerably more time to learn.
Sure, many of the people who work on Krita code are artists. But not everyone that uses Krita as an artist is a coder.
MR4Y wrote:But I'm talking more about your regular artist. Someone who just wants to do art. Maybe they're earning a living with art. They just happen to like Krita and start using it. Then they learn that the UI is customizable via scripting with a language that, in theory, is easy to learn. So they decide to invest a bit of their time (In which they are losing money on top of that) to learn it...only to find that they can't do certain custom things without having to learn another programming language that's harder, several levels of magnitude more complicated and requires considerably more time to learn.
I would not say that they would be lossing money on an free education. If you follow thru you can make a decent wage(even part-time). Don't ever do contract work for less than $50 an hour because in six months you will be probably be looking for another job. Don't ever program full-time if you are committed to a another part-time job. Use your free education to its fullest, when submitting an resume(at least work on some projects) Don't underestimate the employer's requirements.
MR4Y wrote:Sure, many of the people who work on Krita code are artists. But not everyone that uses Krita as an artist is a coder.
That is fine also, depending on what your "co-workers" want, it may be some nice brush icons, a signature piece, or something totally custom. They get pay'd also(if they apply), so whatever your flavor is, there is usually a spot for a up-and-commer. I know play'in guitar don't serve my artistic needs, but it feeds my belly when I'm in a pinch. Whatever your "art" is... you have too sling it at times to get by, and open source is the way, sometimes you just need to ask. and ask again. The sidewalk goes both ways from here.
MR4Y wrote:But I'm talking more about your regular artist. Someone who just wants to do art. Maybe they're earning a living with art. They just happen to like Krita and start using it. Then they learn that the UI is customizable via scripting with a language that, in theory, is easy to learn. So they decide to invest a bit of their time (In which they are losing money on top of that) to learn it...only to find that they can't do certain custom things without having to learn another programming language that's harder, several levels of magnitude more complicated and requires considerably more time to learn.
I managed to do a few patches for krita with no C++ or Qt knowledge at all You will need to be real programmer if you need something complex that no one else tried to do yet. But you don't need to be one to customize some things. Wait some time, find plugins what does something close to your needs and try to use it as you want (I hope for it at least).
I'm not quite sure about "In which they are losing money on top of that". They are working 24/7? Why not treat is as a hobby. Or treat it as something that can save them a lot of time in future and\or seriously increase comfort. With such knowledge they can build program (or ui at least) perfect to their process and be happy to work in program that feel, look and behave exactly how they personally want. Imo it worth to invest some time into. Or just commission someone for plugins they need
radian wrote:Or just commission someone for plugins they need
Education is also needed, my dir sir. Python PyQt Krita Then you will need to make a decision of path... The dark side or the 'Pythonista' side or both. C++