[plugin] Pie Menu v0.4

Would you mind giving a try to this branch?

I messed up my git repos completely while moving the project and changing my infrastructure so to speak so I reworked the fix for the pen release. I’m leaving this here for now, I’m going to test back with linux tomorrow. I’m dead tired for the day but if you want to see for yourself feel free too.

I’ll continue with the fixes well tomorrow or days after xmas.

2 Likes

Thanks for the tip.
I went to ms website and was able to download iso for free…
It asked me a product key, that I don’t have and installation started without it :thinking:

So now, I have a windows 10 running in a VM, I can test plugins on W10 :slight_smile:
But performances are not very good…
It seems that as I don’t have product key, OS is limited to 1 CPU…

W10 on one CPU, it’s hard…
But better than nothing, as it’s just for testing plugins :wink:

@nickgeneratorfailed it’s late here so can’t do test on W10 now
Already made some on Kubuntu, but I need to sleep…
I’ll continue to check maybe tomorrow if I have some time, otherwise friday

Grum999

2 Likes

Yeah late here too, already almost asleep.

Hey 1 cpu still better than my wsl2 on win which doesn’t have graphical api yet so can’t even lunch krita in it through ubuntu :smiley:

I have some bugs in the event controller so I need to fix that, again… lost all my branches today. What a day. Should have stayed in bed hehe. good night.

1 Like

Now work but after some uses appear errors, and i cant copy the text because when i click the pie menu open so i cant copy.
Happy new year!





1 Like

Thank you, it works much better now - I can use the plugin both with mouse and stylus on Kubuntu.
It’s still very easy to crush it though if you release the keyboard button before releasing the stylus (mouse works fine).

But don’t care about that too much now. Merry Christmas :wink:

2 Likes

I know, I’m working on the fix but again I don’t think I’ll be able to let it get done today, xmas is a busy day.

I had the fix yesterday but well managed to break my own set up so I’ll have to redo it again but I know where the problem lies so don’t worry I’ll fix it pretty soon ;).

Merry Christmas to you and everyone too!

Thanks for letting me know.

I know about these issues and I had a fix for it but managed to break my own system so I had to revert the plugin back a bit. I’ll be fixing it soon.

Have a nice Christmas and thanks again for reporting the issues ;-).

3 Likes

Plugin looks amazing man ! Its similar to pie menu plugin for blender ( my favorite ! ) You should consider “selling it” . I will be more than happy to send you few $ to speedup development process :slight_smile:

features Ideas :

  • Add possibilities to create more than one pie menu ( each with different shortcuts ) so we can make menu with brush options , layers etec separately )
  • much more interesting ideas you could see in Blender pie menu addon , it will be very inspiring for you :slight_smile:
1 Like

Oh this plugin is pretty usefull! I will try it later today and im pretty excited to so as it will save me from hitting some keystrokes on my keyboard by assigning some actions on the pie menu! Just wondering is there any way to add custom shortkeys as actions?

1 Like

@GregP @screwdycrow

Hello guys. Thanks a lot!
Just for you information there are currently some issues which I’m currently fixing (some are already fixed) - I’ve updated the Known Issues section on github just yesterday so just know that you might have some troubles (especially on linux).

I’m more or less done with fixing most of it, I need some testing then I’ll push it here if others could possibly test it since I’m having some troubles with my tablet on linux unfortunately. Then if everything works fine I’ll merge it into the main branch. (but new year and xmas are a busy time so no promises for a few more days ;))

@GregP
You are not the only one who asked me about multiple pie menus. I might consider it but I want to focus on fixing the base functionality and making it work at least 90% well on all platforms first (stability fix was what I’m currently looking for).

Btw, what do you mean by ides from Blender pie menu? The only thing it does is popup with a key, you have options, you press key again and you are done there’s nothing more to pie menu in Blender or what exactly do you mean please?

@screwdycrow
Would you mind expanding on:

please?
Shortcuts in krita lead to actions in krita, that’s what I talk about in the video in the part about how to add new actions. Or do you mean something different?
I’d love to hear more but I don’t understand what you mean so please if you could describe a particular example I’d be grateful.

Any way, after the current fix updates I’ll be updating the plugin with new actions, there will be mroe to Layer section, a new section for Animation (since it’s completely missing).

And more but I need to fix the stability first to a decent degree at least so it’s better usable in general.

oh nevermind me! Truth to be told i didnt went through the whole video because lack of time, Ill isntall it and then come back with any suggestions.You may already have what i was talking about. I meant like assigning shorkeys like ctr+e, and yes those end up triggering actions. but again out of excitement i am guilty of asking questions without even testing the plugin first, or going through the video. Ignore what i said for the time being!

It’s ok. The vid is pretty long anyway ;0.

I’ll be changing the video too (it will be very short). With most info in the written guide or a split video to make it simpler to get started.

I didnt have in mind standard pie menu component in blender but a pie menu addon :slight_smile:

Its pie menu addont which can … hmm everything :smiley: check it out it will give you ide what you can archive in krita as well

For example you can make not only a “button” in pie segment but a list or box menu , with custom icons . And most important you can add there not only bassic tools etc but every , every action/option.( for example now we can put brush button , but it wil be awesome to put here every brush option which we use a lot ( jitter , spacting etc ) :slight_smile:

1 Like

You can already do all that with this plugin ;0.

For some of these options you need to create your own method though so some knowledge of python is needed for some of the parts you mentioned but the plugin is ready for it thus you don’t need to do any extra work just the part of code you create for you method nothing else ;0

But there will be more in the future I already have plans and some mockups I mentioned I have a big plan for layer functionality ;0

I’ll check hte blender plugin too, ty.

EDIT:
@GregP I forgot to initially mention it in my reply but in the video and the written instructions guide you can see that you can create submenus so instead of having multiple different shortcuts for multiple piemenus you can just use one shortcut and with just a quick motion open a submenu this way you have acces to up to 81 different sections so hopefully more than enough for anyone :wink:

This is a great plugin, and I think that with some more development, it will be one of my favorites. In fact, in one of my publications, I was interested in something like this:

If you read the comment, you will see that I am referring to Gnome-Pie, which works well for general use of shortcuts/actions.

However, I have installed Pie Menu and I can’t make it work properly, or maybe I don’t understand it well: After typing the shortcut, what should I do? The menu only appears when I click with the pen or the mouse, and if I select any of the actions, when I click again, the menu appears again, preventing me from doing anything else… until I manage to deactivate it, by touching some keys like Ctrl, Shift, etc (OS Manjaro and Windows 10. Krita 4.4.1)

I could use some help :sweat_smile:

Thanks for your work!

1 Like

Is it possible to like replace my keyboard layout with just this addon?

I would love to have like the A key trigger just selection actions and have the B key trigger all brush actions and so on and forth. Like could be neutral key input also be a trigger for something ? So I could B for brush or B+left for multibrush per example?

Sorry if it sounds too crazy.

1 Like

@Franciscoilustrador
I’m actually currently working on fixes which should hopefully deal with the issues you are having.
I had some issues when switching dev environment and managed to unfortunately get rid of some files so I had to quickly go back a bit.

I’ll be soon ready to post a test branch which should hopefully fix the issues for you. Sorry for the inconvenience.
I’m currently testing on windows 10 (this was my major platform and initial the plugin worked well there but after the accident something might have got a bit broken somewhere if you have the same issues as in Linux).
I hope you’ll give it a try again in the I believe a few days when I post the test branch to see if the issues disappear or not.
(currently it works just fine for me on Win 10 as well as Kubuntu).

You feel like it you can give this branch a try,
Can you go to resource folder (in Krita: Settings - Manage Resources - Open Resource Folder), here go to 2 directories:

  1. actions - delete file called “kritapluginpiemenu.action” (if there is one)
  2. pykrita - delete directory called “kritapluginpiemenu” and the file “kritapluginpiemenu.desktop”

It’s still in dev phase and some functionality might be missing or not working as in the video since i’m changing how the menu works a bit but would mind letting me know if this one works better for you?
(this branch triggers menu with the shortcut press right away, quitting menu is done through pressing the shortcut key again.

When it comes to Linux I’ll be honest with you, you need to use the appimage (currently stable for krita 4.4.1), but the performance is vastly different based on distro some distros don’t really have much problems or barely any and some - for I don’t know why yet - have the issues straight away.
(technically if you use the PPA with your own PyQt5 install in your distro you might be able to get over most of these issues right away too but no promises it really depends which linux you use, I can safely say that I tested on kubuntu and broke it right away while on fedora I spent hours with it without problems, …), working on this right now - hopefully I’ll get a decently stable version soon but there’s just too many linux versions that I can’t test everywhere ;0.

(would you mind letting me know which device you use and what drivers you use on each of the systems you mentioned, please?)

@EyeOdin
To the keyboard layout. Technically yeah it can be done even now (though I’d recommend using the fix branch eventually to get over several issues). But I don’t know if you really want to do it.
Overall there can be 81 entries in the pie menu right now that means 81 actions, I don’t know how many keys you use but I believe it’s probably less than 81 for your work in Krita.
But not all actions are currently available so you would have to add them on your own as seen in the video. I’ll be adding more soon but fixing the issues currently takes priority to get something of a stable menu first.
Adding more actions is a very simple job so that can be done very quickly in an update after.

Well, I mean it’s possible if the code got changed.
Do you mean you want more piemenus with different shortcuts while also keeping the shortcut itself as a trigger for an action or do you mean something else?

The current workflow for you example which was how I intended the menu to work would be like this:

  • Only one shortcut for pie menu (avoids having too many shortcuts very useful if you don’t use keyboard)
  • Opening a menu and quickly moving to one of the sections -> triggers base action
  • For farther tools you move through the submenu too.
    Workign example from above workflow:
  • Open pie menu with `
  • Move to side to get selection tool
    (Select and do your stuff in krita)
  • If needed more you can repeat the above but this time choose a different selection tool from the submenu
1 Like

Shortcut layouts for me always have been a hot topic for me because I find the current layout lacking. I am the type of guy that like can use 10 editor programs and I memorize the shortcuts for each one because I believe I should adapt to that software. However Krita’s layout has alienated me quite a lot since it is a bit weird to press so it is the only program I use that has it’s own custom keyboard shortcut layout to date.

I even made a display for my current layout to set up krita faster before I made my own *.shortcut file. However this file becomes dated as Krita evolves and names changed and things become missing since they are not refereed explicitly on the next version.

However the more I battled the organization of it the more I though a pie menu system to be a far better solution due to the lack of space on the keyboard and the duality of user shortcuts and system defined shortcuts which also influences how you may able to organize the keyboard.

So the idea I had in mind was to separate the toolbar in it’s own natural classes. If you scale the toolbar to the side you will see it organizing itself to it. I placed some example keys from A to G just for example sake not that those would be the best key for the job in question. on the Keyboard layout the colors show these tools classes better and how they are group for my own personal usage. This would sort the Shortcuts into 7 main keys or close and allow grouping of shortcuts by type of operations.

Considering your still fast in development I was not overly fond of tweaking your code as a new update would overwrite it so I thought in showing you the idea straightforward to see if it was worth while.

I should add that I am not too fond of sub-menus on pie menus and should be avoided given the ability to do so. regarding the main menu of the shortcut I favour 4 to 8 way options and 8 already slows down inputs greatly compared to 4. For massive sub menus might as well use the toolbar directly almost. That is why I was favoring multiple keys for several inputs. I have had that experience on Maya and it is really not very appealing as it replaces one menu for another entirely and it is so massive that it slowly defeats the purpose, blenders iteration of it in my mind is the best iteration of it that it makes the inputs easy to do even blind folded and then things become muscle memory as they are just context sensitive and not transversing a mini map from start to finish.

However a good thing I like from Maya’s pie menu is the line from the center to the mouse cursor that displays the angle to the user at which things are being directed to.

Maya overloaded examples


1 Like

Well, submenu eventually allows simple gesture manipulation which can eventually be used even with a finger while keeping the exactly same workflow as the pen. I on purpose only give option of one sublevel this way it can’t get convoluted. The other reason is well it’s fully customizable so if someone doesn’t like submenus no need to use it :wink:

But back to the subject. I guess you could simply make a copy of the plugin, change names and have it that way. I did the same thing with kanvas buddy when I wanted more floating menus.

Since you are not the only one asking about multiple pie menus, I’ll see what to do about it but not anytime soon, for now it’s on the maybe list but it’s possible as mentioned above even now without it being inside the plugin itself with a little bit of tinkering.

The cursor or something to let the user know is already on the list I mentioned it somewhere above ;0. Krita’s other cursors actually work just fine for example "small circle"so I’ll need to figure this part out eventually too hehe.

1 Like

oh no worries I know sometimes it is just not the right time to just do it. my shortcuts have been working despite my adventures with it.

but the line I am speaking of is not the cursor itself it is just:

def paintEvent(self, event):
    painter = QPainter()
    # Directional Line
    painter.setPen(QPen(QColor(self.gray_natural), 5, Qt.SolidLine, Qt.SquareCap, Qt.MiterJoin))
    painter.drawLine(center_x,center_y, event.x(),event.y())

center_x and center_y would be the center of the circle.

1 Like