Redesign Krita's default shortcuts
Open, WishlistPublic

Description

This task is intended to provide a hub where everyone can discuss what the standard keyboard shortcuts for Krita should be. In 3.0 we will design a system that ensures user shortcuts are not lost when the UI is upgraded. Since keyboard shortcuts will become much more stable, this is the best time to make major changes to the default layout. Please consider everything fair game. At the same time, keyboard configurations should be much easier to save, load and share, so don't worry about whether all the defaults are perfect.

Should we make a thread in the forums to have this discussion in parallel? Should we encourage people to log into Phab? Phab provides better organization facilities but the forums are more public. In any case I think public outreach can wait a little while longer.

Three design principles:

  • Simplicity for newcomers. Krita's shortcuts have long been an area of confusion for newcomers. Commands should be mnemonic in English whenever possible, in addition to following standard CUA-style bindings (C-x, C-v, and so on.) Krita already does the latter.
  • Effectiveness. Commands that are more common should be bound to letter keys and non-modifier keys. For example, mirror canvas horizontal should be M, because it is extremely common.
  • Full coverage. Every tool should have a default shortcut. Common menu commands should have default shortcuts. This is not to say Krita needs to "copy what Photoshop does," but Photoshop does a good job helping you speed your work by binding tons of commands to the keyboard by default. Each and every letter key has a command, most with alt and control variants, and several function keys are bound as well.

Relevant bug reports:

abrahams updated the task description. (Show Details)
abrahams raised the priority of this task from to Normal.
abrahams added a project: Krita.
abrahams added subscribers: woltherav, rempt, abrahams.

One thing photoshop does is that it cycles through the common tools in a tool group when we press Shift key with the tool group shortcut.
example 'G' is assigned for gradient but if you want paint bucket which is next in this tool group you have to press Shift + 'G' the same is done for brush and pencil tool by B and shift B and shift L for cycling between lasso tools like polygon lasso, freehand lasso etc. This comes in handy to use minimum keys to maximum tools as a combination of shift covers most of the tool in a particular tool group

I completely agree, I think that's a great feature. What do you think of this: make the default for 'B' be to switch to the brush tool if it's not selected, and cycle through tools if it is already selected? I always thought making 'B' and Shift+'B' different shortcuts in Photoshop was a bit unnecessary, since for most users who won't accidentally press the shortcut key twice, Shift+'B' is entirely just an improved version of 'B' shortcut. That frees us to use Shift+'B', Shift+'G' and so on for other things, if we want. (Of course we could still keep support for the other type of shortcuts.)

If we can cycle through shortcuts without pressing the modifier (Shift) then it is more convenient. I have set Shift B for straight line tool, Shift G to fill tool. Removing the extra key press will be good.

If i remember it correctly Photoshop lets you cycle through shortcut and it makes the single key shortcut default for whatever tool was last active. Suppose fill tool and gradient tool are grouped together, you press Shift + G to toggle gradient from the fill tool, now Photoshop remembers this and next time when I press 'G' it selects the gradient tool first so the last used tool in the tool group gets assigned the singular shortcut without the shift, until i again press shift + G and make fill tool the primary tool in that group.

The idea of cycling through shortcut with just one key is good , only concern is accidental repeated key press or some systems have higher rate of key repeat which may trigger the cycle inadvertently, having an additional modifier tackles this accidental thing and makes it more of a purposeful switch from one tool to other.

Awesome, I think that would be great. I believe we can disable auto-repeated keys for these shortcuts, so that they are only triggered after a new physical keypress. Remembering the last used tool in a group would be a natural part of this functionality I think.

One more area we need shortcuts is for dockers like color selector, overview docker, layer docker. (Pardon me for bringing up photoshop every now and then) Ps has shortcut to show hide layer panels ( dockers), some common docker shortcuts in photoshop are

  • Brushes - F5 ( We already have this it is F6 for brush presets and F5 for brush editor)
  • Color - F6 ( we have F6 for brush presets we can take different one)
  • Info - F8 ( we can set this to overview docker if not already used by anything else)
  • Layers - F7

The dockers are assigned function keys because they are used not too frequently, but the idea of showing or hiding a docker with key press is good and may help in de-cluttering the work-space by removing occasionally used dockers.

rempt added a comment.Oct 21 2015, 8:53 AM

I still don't want to group buttons together physically under one button with a fold-out, which might make the cycle feature less clear.

Adding more people to the cc-list.

@rempt, @kamathraghavendra: perhaps moving the small separators to visually group tools with the same shortcut? I think the tools could use a re-ordering anyway, since we're now free to change the old hardcoded KoTool "priority".

I am somewhat reminded of boud's "We were so stupid to refactor all of calligra during the QT4 port" :p

I think we need to make a list of things that need to be done and see which depends on what, and spread out these system redesigns over the coming few years.

Yes, I'm all in favor of that. I wanted to get it started here, but perhaps the Krita forums are a better place for a public discussion? The Wiki too?

Yes, I'm all in favor of that. I wanted to get it started here, but perhaps the Krita forums are a better place for a public discussion? The Wiki too?

Mailinglist might be best for these kind of discussions as it reaches all devs. Forums is a good second one, though it's more user-focussed. Wiki is hardly ever used for this due to log-in issues. We tend to go for finalised designs there.

woltherav moved this task from Backlog to Krita Frameworks on the Krita board.Oct 28 2015, 7:06 PM
Storm added a subscriber: Storm.Jan 31 2016, 6:03 PM

About the suggestion that B cycles without modifier key if Brush already selected: I don't like it, because it can be confusing. If you press B because you think you are not on brush yet, or accidentally double press it, you end up with something else than what you wanted.

I strongly believe a single keys should NEVER have more than one automatically changing (=without you using a modifier key) function, except on-off toggle like Eraser mode, Wraparound, etc. I believe consistency and reliability in the interface's reaction to your commands is just as important as ease of use and speed, because if you can't trust that given key will always do the exact same thing, then you have to stop and think, check what is the current state to make sure you get the result you want. All these break the flow and slow you down way more than having to press Shift does.

(The above is also the reason I suggested that the Transform shortcut should turn decoration and and put you in transform mode if the tool is already selected, instead of having to click on the canvas instead if it is selected, and pressing the shortcut if it is not selected. This is inconsistent, unreliable and confusing, breaking your flow.)

I'm stepping back with my contributions and I don't have a great desire to push forward with this any more. Unless someone else would like to take the lead on changing Krita's defaults in the near future I will close this task.

rempt added a comment.Feb 11 2016, 8:39 AM

It's not that easy to follow a discussion on phabricator... Where are we with this task now? We still have two shortcut systems, but at least shortcuts don't get lost anymore, right?

This particular task was related to changing the things in "Settings -> Configure Shortcuts." Right now there is a choice of default, paint tool sai, and photoshop. The idea was to add a reworked "krita 3.0 default" and change the current defaults to "classic." But since shortcuts can be shared now, perhaps it would be better to wait for users to redesign shortcuts on their own and start a discussion in the future.

Combining the two existing shortcut systems is separate thing which would be far more messy and unpleasant. (It would be another big refactoring of the XMLGUI code. I tried to start on it and got vertigo.) Instead of doing that, I think a more easily achievable design would be to simply move Krita's "Configure Shortcuts" dialog into a page in the "Configure Krita" menu.

Right. We would still need some kind of conflict checking then :-)

This particular task was related to changing the things in "Settings -> Configure Shortcuts." Right now there is a choice of default, paint tool sai, and photoshop. The idea was to add a reworked "krita 3.0 default" and change the current defaults to "classic." But since shortcuts can be shared now, perhaps it would be better to wait for users to redesign shortcuts on their own and start a discussion in the future.

Combining the two existing shortcut systems is separate thing which would be far more messy and unpleasant. (It would be another big refactoring of the XMLGUI code. I tried to start on it and got vertigo.) Instead of doing that, I think a more easily achievable design would be to simply move Krita's "Configure Shortcuts" dialog into a page in the "Configure Krita" menu.

Well, the reason why the 3.0 default stayed back is because this is really something that needs to be discussed with artists, live. Which means that we either would get it done at LGW or the big Krita Sprint. And I think we'll spent at the least 5 hours on it, even if we prepare.

abrahams lowered the priority of this task from Normal to Wishlist.Feb 11 2016, 7:26 PM

This particular task was related to changing the things in "Settings -> Configure Shortcuts." Right now there is a choice of default, paint tool sai, and photoshop. The idea was to add a reworked "krita 3.0 default" and change the current defaults to "classic." But since shortcuts can be shared now, perhaps it would be better to wait for users to redesign shortcuts on their own and start a discussion in the future.

Combining the two existing shortcut systems is separate thing which would be far more messy and unpleasant. (It would be another big refactoring of the XMLGUI code. I tried to start on it and got vertigo.) Instead of doing that, I think a more easily achievable design would be to simply move Krita's "Configure Shortcuts" dialog into a page in the "Configure Krita" menu.

Well, the reason why the 3.0 default stayed back is because this is really something that needs to be discussed with artists, live. Which means that we either would get it done at LGW or the big Krita Sprint. And I think we'll spent at the least 5 hours on it, even if we prepare.

Right, point is that it's a lot of work and I do not expect myself to take the lead on it. More pressing things like conflict checking can go in T946. I can move this to "wishlist" priority and set it to unblock T946, which leaves it as a todo item in Phab, so the discussion here won't be forgotten when someone does get around to changing up the defaults.

abrahams updated the task description. (Show Details)Feb 11 2016, 7:27 PM

Alright, I'll add it to a krita sprint column.

woltherav moved this task from Krita Frameworks to Backlog on the Krita board.Feb 11 2016, 7:41 PM
woltherav moved this task from Backlog to Krita Sprint Discussion Topics on the Krita board.

Well having shortcuts divided in 2 files does not help users manage them too. it takes alot of effort to setup your own custom layout and discover what are the keys are connected to exactly (shortcuts or canvas inputs).

regardless of how simple or hard it is to edit them the layout itself I made this shortcut layout for myself and I do recommend it (as I only press tool option button now and never the toolbox unless it is a more rare option):
https://pasteall.org/media/7/5/75871e65e19bffa4467465181e990aaf.png

another thing that could be nice to have for the shortcuts would be a keyboard display to see what is being used and by what class, but alas it is just an idea I had in the back of my mind:
https://pasteall.org/media/f/a/fa7cc269cea47a18dcd9f6ec3a739b6f.jpg

However I think radial shortcuts to make things much better than any layout you can possibly make.