Establish Default Keyboard Shortcuts

enhancement
keyboard
interface
Tags: #<Tag:0x00007f991a88d618> #<Tag:0x00007f991a88d460> #<Tag:0x00007f991a88d320>

#1

Link to Keyboard Shortcut Spreadsheet Document

One thing that we can do as a community is establish default keyboard shortcuts to help ease the use of MyPaint and make it keyboard friendly. While transitioning to GTK3, we had to change the way we assigned keyboard shortcuts since the old way was removed. Also in the process, a lot of our default shortcuts became lost in the process as well. This is where you the community can help.

I have created a spreadsheet on my Google Drive account listing all of the available keyboard shortcuts from the Preferences Window in MyPaint in the link above. This will allow the us the Community to comment on the document to what shortcuts we should establish as default. Though the first four columns are protected from being edited, the community proposal columns and beyond are editable. So you can either make your suggestion in the community proposal columns or start your own column for your own keyboard layout since the layout will follow the keymap of QWERTY style keyboards.

You could also comment the Description wording and naming of the shortcuts as well to make them less confusing if they are right now, or for easier wording for translating.

I did mark the ones that do not need to be changed or do not need a shortcut in green such as the Developers options or file management shortcuts for example. The ones marked in Yellow are being removed so do not need a shortcut. The Cells marked in blue are what will be changed.

I’ve also added a section on the bottom for shortcuts we may need to add to MyPaint as well such as for our Inking tool and Docking the Panels in MyPaint.

I will also provide a copy of my accelmap.conf file if you want to test them out on your copy of MyPaint. I’ll be sure to keep it updated as the spreadsheet changes.

Also @achadwick informed me of hardware/secondary keymaps to be aware of in the MyPaint code:

These should be avoided for being used otherwise we end up overriding them.

A good goal that @achadwick mention is for our keyboard mapping to be compatible with GIMP/Krita/Inkscape in a way that doesn’t break experienced MyPaint users’ expectations. We also want to keep MyPaint as user friendly as possible.

To input your comment on for the default keybaord mapping, you can either comment on the spreadsheet itself, or just leave a comment below with your proposed changes. To leave a comment on the spreadsheet just right-click on the cell and select insert comment. It will be anonymous unless you sign in to your google account.

The plan is from now until the end of the month have this document open for comment. After which I can push changes to our resource file in the MyPaint code so that way it can be available in the next version of MyPaint. After it is all done, I will also this use this document and create a keyboard mapping vector image that we can host on our wiki documentation for those who need know which keys do what. I will also make it translator friendly as well.

Well that’s about all for now, if you have any questions. Just reply to this thread.


Making Keyboard Mapping Easier to Manage and Navigate
Add Support for Auto Detecting Keyboard Layouts and Non-Latin Keyboards
#2

Krita Version 2.8 Keyboard Map:
https://colorathis.wordpress.com/tag/cheatsheet/

Gimp Version 2.6 Keyboard Map:
https://jeffkayser.com/projects/cheatsheet-gimp/

Inkscape Version 0.91 Keyboard Map:
http://ridjam.deviantart.com/art/Inkscape-0-91-Keyboard-Advance-Shortcuts-518481672

Gnome HIG Guidelines - Keyboard Interactions
https://developer.gnome.org/hig-book/3.0/input-keyboard.html.en


#3

I really like keeping my left hand on ASDF and it is so nice to have R (color picker) within easy reach, and W too. Very well thought out. I think it is very useful to have buttons to adjust saturation and lightness as well, but these should work on-the-fly mid-stroke. Currently these are unmapped. I think mapping them to ASDF with a modifier would make sense, so that the left hand can modify size, opacity, sat, and light without moving. So, Mod+(A,S) would adjust saturation, and Mod+(D,F) would adjust lightness. Trouble is, we seem to have a shortage of modifiers. I tried Shift, but that interferes with Line mode (and you have to move your pinky). CTRL isn’t going to work (ctrl-s saves), and it seems like ALT is terrible too-- any time I press ALT and use the stylus, the whole window goes into MOVE mode (maybe an XFCE issue), not to mention it interferes with color picker mode. So I’ve resorted to SUPER (windows key?). Super+(A,S,D,F) works great. It’s not quite as comfortable as ALT, but definitely workable with your thumb.

The problem is this doesn’t work at all for the Windows platform, and maybe not all keyboards have Super? I just had a thought that maybe the Spacebar could be a modifier, but Mypaint won’t let me even try that one. Is there a reason Spacebar can’t be combined with other keys? Actually, a broader question-- can we have arbitrary modifiers or combinations of keys?


#4

I’ve used Dvorak all my life and I don’t want to see Mypaint go down the path of Blender which is very Qwerty-focused.


#5

Out of the preexisting ones, I use and want to keep X, Shift+C, R (palette and history are my two most used color choosers – I also usually have a HSV wheel showing) Delete, Shift+Delete, Control+Delete, H, K, J, O, I, U, Ctrl+N, Y, E, Shift+Ctrl+S, Ctrl+S

I also use, but they’re a bit cumbersomely placed on Dvorak: D and F. Or, huh, I guess they’re fine. Weird, I’ve been using MyPaint for seven years but I never noticed that they’re right above each other. That’s great! I rarely use them together, though. I’ll be zoomed in and think oh, I have to press D a bunch of times, or I’ll be zoomed out and push F a bunch of times.

I also use Shift+Ctrl+P and Shift+Ctrl+O a lot, but I often hit the old shortcuts P and O by mistake. Which is weird, because I’ve also come to rely on O for rings.
My usage with these aren’t to set a layer’s final opacity (for that I use the slider in the GUI) but to distinguish two layers that are close to each other when I’m editing on one of them.

I also use Tab and I miss, I miss, I miss it in non-fullscreen mode so much!!! It was a godsend w/ dynamic tiling.

My most used shortcuts are probably Undo, New Painting Layer (above), and go to layers below and above, but I’ve got those mapped to non-keyboard input devices.

This list was very interesting because it showed me functionality I thought MyPaint didn’t have (color blindness filters, paint modes) or had lost (Home, Show Layer Solo).

Let me add that I use , and . a lot and I wish GIMP, Alchemy and Inkscape would adopt them!


#6

Sadly it going to have to be QWERTY base since that is the market majority that people use. However, if you want to create a keyboard layout for DVORAK keyboards, you can create one for it. Then we could provide the configuration file on our Wiki Documentation for users to download. Maybe in the future we could add a setting in preferences to adjust for DVORAK keyboards, but one thing a time for now.


#7

Okay I have the cells in the spreadsheet that are changed marked in Blue if anybody is wondering.


#8

There’s no reason to be specific to either QWERTY or Dvorak. Just have keys with semantic letters like L for Layers etc.
Shift+Ctrl+Z for Redo is a hassle, I’d have to use two hands. It used to be Y, that was good.


#10

Single keys without modifiers are nicer for sure. All the major tools should use those IMO, and there should be some brush control too. My priority list for single press keystrokes, most important 1st:

  1. Emergency cancel current tool to default tool (Escape, but that’s hardwired!)
  2. View translation (cursor keys, also hardwired)
  3. Brush recall hotkeys (0 and 19)
  4. Show Layers Panel (currently L) (I’d almost like this as a popup, in a way!)
  5. Drawing tools, in the following order of priority:
    1. Freehand (P currently)
    2. Inking (no key right now)
    3. Circles and Ellipses (O currently)
    4. Fill (no current key)
    5. Lines and Curves (K currently)
    6. Connected Lines (J currently)
  6. Pop-up brush chooser. (B right now)
  7. Pop-up paint colour chooser (currently C for all, and V for the one-click subset - overkill?)
  8. Pick Color (R now)
  9. Eraser mode (E right now)
  10. Pick Brush (W now)
  11. Brush Size (currently D and F)
  12. Mirror Horizontally (currently I)
  13. Paint colour in HCY: luma (currently no keys)
  14. Paint colour in HCY: hue and chroma too (currently no keys)
  15. Brush Opacity (Currently A and S)

(Might not be complete)

Key 1 thru 9, and 0 are used for brush setting hotkeys. Those would be difficult to change.

There are positional elements like A,S,D,F and to a lesser extent J,K and C, V, B in the MyPaint keymap, but that’s almost a historic accident: those are sets in common between QWERTZ and QWERTY. I’m happy to stick with this for less important keys, noting that they tend to come in pairs that need to be closely positioned. BTW there is no globally good choice for “semantic” (initial?) letter coding either when you consider translations.

(To head off one line of thought: hotkeys probably should not be marked as translatable. That way lies a huge mess where every translator needs to make the decision we’re making right now for themself.)


#11

MyPaint can also distinguish between both the top number keys and the Numpad keys. So we could also assign some of the navigation functions to those keys as well. Kinda like how Blender works with it’s navigation, except for a 2D space instead of a 3D space.


#12

Okay, I’ve made some more changes to the proposed keyboard shortcuts. Let me know your guys thoughts on this since I did made a lot of changes. Plus I need suggestions on what keys to use for resting the mirror, rotation, and zoom. I thought about using the Numpad keys, but I don’t know.

Here is also copy of my accelmap.conf file if you want to test them out on your copy of MyPaint.

@Sandra my reasoning for changing the undo and redo was mainly the fact those two are basically hardwired to not only ctrl+Z and ctrl+Y, but also Shift+Ctrl+Z respectively. So in the end having Z and Y also do Undo and Redo is just redundant. The bright side it freed up space so I can assign the I for the inking tool and shift the mirror shortcut keys over one. The Z key I have no idea what to do with it yet since MyPaint has a different way of handling zoom.


Keyboard Shortcuts Part Deux (Modifiers) Testers Needed
#13
  • I don’t mind switching from Y to Ctrl-Y to redo (undo I’ve already mapped to right-click)
  • But I do mind the mirroring shortcuts “shifting over”; y isn’t adjacent to i nor u on my keyboard.
  • Also, I don’t have any way to send numpad signals. That’s a big hassle in Blender; where I’ve changed my config so that the view switching uses the regular keys and I have to click to do layer stuff.

For zooming, again, . and , are great.

Mypaint, as it is, is the most comfortable graphics program I have when it comes to keyboard shortcuts. So much better than Inkscape, Blender and Gimp, all three of which I also use. Some of these changes are a step in the wrong direction for me.


#14

I’ve went ahead and revert the change for the mirror keys and just assigned the inking tool to the Y key. Maybe an idea in the future would be to have a option in the preference window to switch different keyboard layout and adjust the shortcuts accordingly.

@Sandra If I give you edit status on the document, could you add your proposed shortcut keys for DEVORAK keyboards?


#15

Okay I found that I can protect ranges of cells on the spreadsheet. So I open the document to the public so people can type in their suggestions. So @Sandra you should be able put your keyboard suggestions for DVORAK keyboards.


#16

Disagree. Semantic letters are okay for some things, but for core things, the functions most accessed need to be all within reach of a single hand. For example, I have 1 as undo, 2 as redo, ` to cycle color history, A to zoom in and Z to zoom out, 6 and Y to make brush bigger/smaller
(Colemak layout)

In a sense any ‘default’ config has to be pretty bad (lowest common denominator) in order to match people’s expectations as novices; at least, for the most common functions.

@odysseywestra:
It’s ‘Dvorak’ (no e)
On the subject of corrections, ‘Preview’ is spelt ‘Preview’ but cells A109 + A110 spell it ‘Preveiw’

@all
Of the currently “locked in” set, the only one I find dubious is Shift+Ctrl+E for Export. To me, this [requiring a three-key chord) says ‘export is a dangerous or destructive operation that the user really shouldn’t be able to do accidentally’. Not true. Though I acknowledge the value of matching Inkscape and GIMP, I maintain that it was a poor choice for them too.

This is in stark contrast with ‘clear current layer content’, which -is- destructive but is on Delete. Shift+Ctrl+N for ‘convert to normal mode’ is a much better example of matching level of destructiveness with difficulty of execution.

I am also wondering whether 10 ‘brush presets’ are actually used by anybody? Personally, I have difficulty remembering more than 6. If nobody is using that many, perhaps we could reduce the number of slots that have shortcuts by default?
This might seem like a strict nerf (since there aren’t any functions that could map in an obvious way to the freed up numeric shortcuts), but IMO it would effectively reduce the amount that a person thinks they need to think about, which is definiitely good for a newbie.

I just edited ‘Propose shortcuts’ section with some shortcuts for Insert point, Simplify Points, Cull Points


#17

Thanks for listening to us about this.
I don’t have Google account :frowning:

A and Z are on the opposite side of Dvorak keyboard; not easy to do with one hand. The only keys that are the same on Dvorak and QWERTY are A and M, and, on some version of Dvorak, the numbers.

In summary, mypaint’s keyboard shortcuts were perfect (except that stuff was missing). I’m happy with Y becoming inking and Redo moving to Ctrl-Y.

Things are already pretty much on one hand, if I move the hand over to the middle of the keyboard. Putting the left index finger on h (QWERTY’s J), I can easily reach h, d,f,y,u,i etc. It’s not perfect but it’s a million times better than Blender, Inkscape and Gimp. Dvorak’s , and . are where QWERTY’s w and e are, so they’re on the left hand as well. Very good.
I use Blender a lot and it’s a pain, so hopelessly QWERTYfied.

Now, if all the world could switch to Dvorak… :stuck_out_tongue:

Now, Emacs I’ve never had a problem with (I started using Emacs in senior high, i.e. after I’ve already used Dvorak for a while). Because it’s all P for previous line, N for next line, B for back, F for forward etc. The problem is that it’s designed for two-hand use, where graphics programs necessarily need to be designed for one hand use. I have the pen in my right hand and the keyboard on the left.

What are left-ish keys on both? A, E, 12345… that’s pretty much it :frowning:


#18

And while this might sound as me being opposed to change for the sake of being opposed to change, I’m VERY used to hitting Ctrl+Shift+E for export and delete for delete. When I want to export, I’m zoomed out, taking a look at the image, relaxed, thinking in terms of filenames and such decisions. I can put my pinky on Ctrl and Shift, and hit E with my long finger. Delete on the other hand, I use all the time and in the quickness and graphical-thinking-mode of drawing. Love the whole Delete, Shift-Del, Ctrl-Del trifecta.


#19

Don’t change
I want to leave z and x as undo and redo in mypaint. I hate ctrl z. Mypaint must be simple, i don’t want to break my hand with ctrl z. Wow, why i have x as redo? Hmm… Ok, i think that z and x best for undo and redo.
Also i’m using d and f for size of the brush.
R for color picking.
I think that default keybindings in mypaint are good. i like them.

Can be changed
Mirroring - i’m using button on my tablet, so it will be good if key for this actions are same as in other programs.
I’m using - and + on the numpad for zoom in and zoom out. So i’m not using ‘,’ and ‘.’ keybinding.

P.S. There are my proposal for quick undo and redo. I changed undo to Z, redo to X. Leaved C and Shift+C to color change. And used V to color history. But now there are no layer visibility keybinding. Hmm…


#20

Is the possibility of remapping the keys possible to add?


#21

You can already change the keys in the preferences.